- 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:
David Arranz 2012-10-09 13:27:52 +00:00
parent df138cf8bb
commit d0a611733a
6 changed files with 10 additions and 109 deletions

View File

@ -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

View File

@ -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;
}
}

View File

@ -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.'));

View File

@ -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>

View File

@ -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>

View File

@ -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()) { ?>