array('login', 'callback'), 'users' => array('*') ), array('allow', 'users' => array('@') ), array('deny'), ); } /** * This is the default 'index' action that is invoked * when an action is not explicitly requested by users. */ public function actionIndex() { $this->render('index'); } /** * This is the action to handle external exceptions. */ public function actionError() { $error = Yii::app()->errorHandler->error; if ($error) { if (Yii::app()->request->isAjaxRequest) echo $error['message']; else { $this->layout = '/layouts/error'; $this->render('error_sistema', $error); } } } /** * Displays the login page */ public function actionLogin() { $formulario = new FormularioLogin; $resultado = array(); // if it is ajax validation request if (isset($_POST['ajax']) && $_POST['ajax'] === 'login-form') { $formulario->email = $_POST['FormularioLogin_email']; $formulario->password = $_POST['FormularioLogin_password']; if (!$formulario->validate()) { foreach ($formulario->getErrors() as $campo => $error) { $resultado[$campo] = $error; } echo function_exists('json_encode') ? json_encode($resultado) : CJSON::encode($resultado); Yii::app()->end(); } $identificacion = new IdentificacionUsuario($formulario->email, $formulario->password); $identificacion->authenticate(); if ($identificacion->errorCode != IdentificacionUsuario::ERROR_NONE) { $resultado['password'] = Yii::t('profind', 'Email o contraseƱa incorrectos'); echo function_exists('json_encode') ? json_encode($resultado) : CJSON::encode($resultado); Yii::app()->end(); } $duracion = 0; Yii::app()->user->login($identificacion, $duracion); Yii::app()->user->setReturnUrl($this->createUrl('usuario/modificar', array('id' => $identificacion->id))); $resultado['status'] = '200'; $resultado['redirect'] = Yii::app()->user->returnUrl; echo function_exists('json_encode') ? json_encode($resultado) : CJSON::encode($resultado); Yii::app()->end(); } $this->redirect(Yii::app()->params['frontpage']); } /** * Logs out the current user and redirect to homepage. */ public function actionLogout() { Yii::app()->user->logout(); $this->redirect(Yii::app()->homeUrl); } public function actionCallback() { Yii::app()->socialConnect->callback(); } }