- Revisión del código en general
- Tarea #1130 -> Configurar la conexión con Facebook git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_PROFIND_Web/trunk@58 3fe1ab16-cfe0-e34b-8c9f-7d8c168d430d
This commit is contained in:
parent
df138cf8bb
commit
d0a611733a
@ -58,8 +58,10 @@ $configSpecific = array(
|
||||
'providers' => array(
|
||||
'Facebook' => array(
|
||||
'enabled' => true,
|
||||
'keys' => array('id' => '', 'secret' => ''),
|
||||
'scope' => 'email,publish_stream',
|
||||
'keys' => array(
|
||||
'id' => '117346105085321',
|
||||
'secret' => '900236a3a011c06e43cdceec65acde52'),
|
||||
'scope' => 'email',
|
||||
),
|
||||
'Twitter' => array(
|
||||
'enabled' => true,
|
||||
@ -85,7 +87,7 @@ $configSpecific = array(
|
||||
// Save log messages on file
|
||||
array(
|
||||
'class' => 'CFileLogRoute',
|
||||
'levels' => 'error, warning, trace',
|
||||
'levels' => 'error, warning, trace, info',
|
||||
//'categories' => '*',
|
||||
),
|
||||
// Show log messages on web pages
|
||||
|
||||
@ -1,103 +0,0 @@
|
||||
<?php
|
||||
|
||||
class SeguridadUsuarioController extends Controller {
|
||||
|
||||
public $defaultAction = 'recuperar';
|
||||
|
||||
|
||||
/**
|
||||
* Cambiar la contraseña del usuario desde la página de entrada.
|
||||
* Este método es llamado por AJAX desde la página de entrada.
|
||||
* Envia un email de notificación al usuario.
|
||||
* @param integer ID del usuario
|
||||
*/
|
||||
public function actionCambiarPasswordExt() {
|
||||
$formulario = new FormularioExtCambiarPassword;
|
||||
$resultado = array();
|
||||
|
||||
if (isset($_POST['ajax']) && $_POST['ajax'] === 'cambiar-password-form-ext') {
|
||||
$formulario->key = $_POST['FormularioCambiarPassword_key'];
|
||||
$formulario->email = $_POST['FormularioCambiarPassword_email'];
|
||||
$formulario->password = $_POST['FormularioCambiarPassword_password'];
|
||||
$formulario->passwordRepetida = $_POST['FormularioCambiarPassword_password_repetida'];
|
||||
|
||||
if ($formulario->validate()) {
|
||||
$usuario = Usuario::model()->findByAttributes(array('email' => $formulario->email));
|
||||
if ($this->_cambiarPassword($usuario->id, $formulario->password)) {
|
||||
$resultado['status'] = '200';
|
||||
$resultado['titulo'] = Yii::t('profind', 'Password modificada');
|
||||
$resultado['texto'] = Yii::t('profind', 'Se ha modificado su password en PROFIND.');
|
||||
echo function_exists('json_encode') ? json_encode($resultado) : CJSON::encode($resultado);
|
||||
Yii::app()->end();
|
||||
} else {
|
||||
foreach ($formulario->getErrors() as $campo => $error) {
|
||||
$resultado[$campo] = $error;
|
||||
}
|
||||
echo function_exists('json_encode') ? json_encode($resultado) : CJSON::encode($resultado);
|
||||
Yii::app()->end();
|
||||
}
|
||||
} else {
|
||||
foreach ($formulario->getErrors() as $campo => $error) {
|
||||
$resultado[$campo] = $error;
|
||||
}
|
||||
echo function_exists('json_encode') ? json_encode($resultado) : CJSON::encode($resultado);
|
||||
Yii::app()->end();
|
||||
}
|
||||
}
|
||||
|
||||
$this->redirect(Yii::app()->params['frontpage']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Cambiar la contraseña del usuario desde el formulario de la aplicación.
|
||||
* Envia un email de notificación al usuario.
|
||||
* @param integer ID del usuario
|
||||
*/
|
||||
public function actionCambiarPassword($id) {
|
||||
if ($id != Yii::app()->user->id)
|
||||
throw new CHttpException(404, Yii::t('profind', 'La página solicitada no existe.'));
|
||||
|
||||
$formulario = new FormularioCambiarPassword;
|
||||
|
||||
if (isset($_POST['ajax']) && $_POST['ajax'] === 'cambiar-password-form') {
|
||||
echo CActiveForm::validate($formulario);
|
||||
Yii::app()->end();
|
||||
}
|
||||
|
||||
if (isset($_POST['FormularioCambiarPassword'])) {
|
||||
$formulario->attributes = $_POST['FormularioCambiarPassword'];
|
||||
if ($formulario->validate() && $this->_cambiarPassword($id, $formulario->password)) {
|
||||
Yii::app()->user->setFlash('success', Yii::t('profind', 'Se ha modificado la contraseña'));
|
||||
$this->redirect(array('usuario/modificar', 'id' => $id));
|
||||
} else {
|
||||
Yii::app()->user->setFlash('error', Yii::t('profind', 'No se ha podido modificar la contraseña'));
|
||||
Yii::app()->user->setFlash('error', CHtml::errorSummary($formulario));
|
||||
}
|
||||
}
|
||||
$this->render('cambiar_password', array('formulario' => $formulario));
|
||||
}
|
||||
|
||||
/**
|
||||
* Realiza el proceso interno de cambiar la contraseña a un usuario.
|
||||
* Envia un email de notificación al usuario.
|
||||
* Este método es privado y de uso interno al controlador.
|
||||
* @param integer ID del usuario
|
||||
* @param string nueva contraseña del usuario
|
||||
* @return boolean si se ha podido hacer o no el cambio
|
||||
*/
|
||||
private function _cambiarPassword($id, $nueva_password) {
|
||||
$usuario = Usuario::model()->findByPk($id);
|
||||
if (!isset($usuario))
|
||||
throw new CHttpException(404, Yii::t('profind', 'La página solicitada no existe.'));
|
||||
|
||||
$usuario->password = $usuario->encryptPassword($nueva_password);
|
||||
$usuario->clave_seguridad = $usuario->encryptSecureKey(microtime() . $usuario->password);
|
||||
if ($usuario->save()) {
|
||||
$this->enviarMailNotificacionCambioPassword($usuario);
|
||||
return true;
|
||||
} else
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -528,6 +528,7 @@ class UsuarioController extends Controller {
|
||||
* @param string $provider nombre de la red social a utilizar para rellenar los datos del usuario
|
||||
*/
|
||||
public function loadModelwithSocialData($id, $provider) {
|
||||
Yii::trace('Cargar el modelo con datos de redes sociales', 'application.controllers.UsuarioController');
|
||||
$usuario = $this->loadModel($id);
|
||||
|
||||
if (!Yii::app()->socialConnect->loadUserProfile($provider)) {
|
||||
@ -563,6 +564,7 @@ class UsuarioController extends Controller {
|
||||
* @param integer $id el ID del usuario a recuperar
|
||||
*/
|
||||
public function loadModel($id) {
|
||||
Yii::trace('Cargar el modelo', 'application.controllers.UsuarioController');
|
||||
$model = Usuario::model()->findByPk($id);
|
||||
if ($model === null)
|
||||
throw new CHttpException(404, Yii::t('profind', 'La página solicitada no existe.'));
|
||||
|
||||
@ -30,7 +30,7 @@
|
||||
<div class="span8">
|
||||
<p>Recoger datos desde la red:
|
||||
<?php echo CHtml::link('LinkedIn', Yii::app()->createUrl('empresa/modificar', array('id' => $model->id, 'provider' => 'LinkedIn'))); ?>,
|
||||
Facebook,
|
||||
<?php echo CHtml::link('Facebook', Yii::app()->createUrl('empresa/modificar', array('id' => $model->id, 'provider' => 'Facebook'))); ?>,
|
||||
<?php echo CHtml::link('Twitter', Yii::app()->createUrl('empresa/modificar', array('id' => $model->id, 'provider' => 'Twitter'))); ?>.
|
||||
</p>
|
||||
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><?php echo CHtml::encode(Yii::app()->user->name); ?> <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><?php echo CHtml::link(Yii::t('profind', 'Cambiar la password'), $this->createUrl('seguridadUsuario/cambiarPassword', array('id' => Yii::app()->user->id))); ?></li>
|
||||
<li><?php echo CHtml::link(Yii::t('profind', 'Cambiar la password'), $this->createUrl('usuario/cambiarPassword', array('id' => Yii::app()->user->id))); ?></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
|
||||
@ -47,7 +47,7 @@ Yii::app()->clientScript->registerScript(
|
||||
<fieldset>
|
||||
<p>Recoger datos desde la red:
|
||||
<?php echo CHtml::link('LinkedIn', Yii::app()->createUrl('usuario/modificar', array('id' => $model->id, 'provider' => 'LinkedIn'))); ?>,
|
||||
Facebook,
|
||||
<?php echo CHtml::link('Facebook', Yii::app()->createUrl('usuario/modificar', array('id' => $model->id, 'provider' => 'Facebook'))); ?>,
|
||||
<?php echo CHtml::link('Twitter', Yii::app()->createUrl('usuario/modificar', array('id' => $model->id, 'provider' => 'Twitter'))); ?>.
|
||||
</p>
|
||||
<?php if ($model->hasErrors()) { ?>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user