Ejemplo n.º 1
0
 public function actionResetpass()
 {
     //Instancia para validar el formulario
     $model = new FormResetPass();
     //Mensaje que será mostrado al usuario
     $msg = null;
     //Abrimos la sesión
     $session = new Session();
     $session->open();
     //Si no existen las variables de sesión requeridas lo expulsamos a la página de inicio
     if (empty($session["recover"]) || empty($session["id_recover"])) {
         return $this->redirect(["site/index"]);
     } else {
         $recover = $session["recover"];
         //El valor de esta variable de sesión la cargamos en el campo recover del formulario
         $model->recover = $recover;
         //Esta variable contiene el id del usuario que solicitó restablecer el password
         //La utilizaremos para realizar la consulta a la tabla users
         $id_recover = $session["id_recover"];
     }
     //Si el formulario es enviado para resetear el password
     if ($model->load(Yii::$app->request->post())) {
         if ($model->validate()) {
             //Si el valor de la variable de sesión recover es correcta
             if ($recover == $model->recover) {
                 //Preparamos la consulta para resetear el password, requerimos el email, el id
                 //del usuario que fue guardado en una variable de session y el código de verificación
                 //que fue enviado en el correo al usuario y que fue guardado en el registro
                 $table = Users::findOne(["email" => $model->email, "id" => $id_recover, "verification_code" => $model->verification_code]);
                 //Encriptar el password
                 $table->password = crypt($model->password, Yii::$app->params["salt"]);
                 //Si la actualización se lleva a cabo correctamente
                 if ($table->save()) {
                     //Destruir las variables de sesión
                     $session->destroy();
                     //Vaciar los campos del formulario
                     $model->email = null;
                     $model->password = null;
                     $model->password_repeat = null;
                     $model->recover = null;
                     $model->verification_code = null;
                     $msg = "Enhorabuena, password reseteado correctamente, redireccionando a la página de login ...";
                     $msg .= "<meta http-equiv='refresh' content='5; " . Url::toRoute("site/login") . "'>";
                 } else {
                     $msg = "Ha ocurrido un error";
                 }
             } else {
                 $model->getErrors();
             }
         }
     }
     return $this->render("resetpass", ["model" => $model, "msg" => $msg]);
 }
 public function actionMylogout()
 {
     $session = new Session();
     $session->open();
     $session->destroy();
     $this->redirect('index.php?r=loginregister/default/login');
 }
 public function actionDestroy()
 {
     $session = new Session();
     $session->open();
     $session->destroy();
 }
Ejemplo n.º 4
0
 public function destroy()
 {
     Yii::$app->response->cookies->add(new \yii\web\Cookie(['name' => 'OLDSESSID', 'value' => '']));
     parent::destroy();
 }