/**
  * Persist the changes.
  *
  * @param Password       $password
  * @param PasswordFolder $folder
  *
  * @return bool
  */
 public function persist(Password $password, PasswordFolder $folder)
 {
     $password->folder_id = $folder->id;
     $password->title = $this->input('title', $password->title);
     $password->website = $this->input('website', $password->website);
     $password->username = $this->input('username', $password->username);
     $password->password = $this->input('password', $password->password);
     $password->notes = $this->input('notes', $password->notes);
     return $password->save();
 }
 public function resetPassword(User $user)
 {
     $token = sha1(mt_rand());
     $password = new Password();
     $password->email = $user->email;
     $password->token = $token;
     $password->created_at = Carbon::now();
     $password->save();
     $data = ['first_name' => $user->first_name, 'token' => $token, 'subject' => 'Password Reset Link', 'email' => $user->email];
     $this->userMailer->passwordReset($user->email, $data);
 }
 /**
  * Reset the given user's password.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function reset(Request $request)
 {
     $this->validate($request, ['token' => 'required', 'password' => 'required|min:6']);
     $credentials = $request->only('password', 'token');
     $credentials['password_confirmation'] = $credentials['password'];
     $credentials['email'] = PasswordModel::select('email')->where('token', $credentials['token'])->first();
     $response = Password::reset($credentials, function ($user, $password) {
         $this->resetPassword($user, $password);
     });
     switch ($response) {
         case Password::PASSWORD_RESET:
             return $this->getResetSuccessResponse($response);
         default:
             return $this->getResetFailureResponse($request, $response);
     }
 }
 public function postPasswordResetForm($token)
 {
     $rules = ['password' => 'required|min:6|max:20', 'password_confirmation' => 'required|same:password'];
     $validator = Validator::make(Input::all(), $rules);
     if ($validator->fails()) {
         return redirect()->back()->withErrors($validator);
     }
     $password = Password::where('token', '=', $token)->first();
     if (empty($password)) {
         return view('pages.status')->with('error', 'Reset token is invalid');
     }
     $user = User::where('email', '=', $password->email)->first();
     $user->password = Hash::make(Input::get('password'));
     $user->save();
     $password->delete();
     return redirect()->route('auth.login')->with('status', 'success')->with('message', 'Password changed successfully!');
 }
 public function actionPassword($code = null)
 {
     $message = null;
     $model = null;
     $user = $code ? User::findOne(['code' => $code]) : Yii::$app->user->identity;
     if ($user) {
         $model = new Password(['scenario' => $code ? 'reset' : 'default', 'user' => $user]);
         if ($model->load(Yii::$app->request->post()) && $model->validate()) {
             if ($code) {
                 $user->code = null;
                 if (!$user->auth) {
                     $user->generateAuthKey();
                 }
                 $user->setPassword($model->new_password);
                 if ($user->save()) {
                     return $this->redirect(['user/login']);
                 } else {
                     $message = 'User validation error';
                 }
             } else {
                 if ($user->validatePassword($model->password)) {
                     $user->setPassword($model->new_password);
                     if ($user->save()) {
                         return $this->redirect(['user/view', 'name' => $user->name]);
                     } else {
                         $message = 'User validation error';
                     }
                 } else {
                     $model->addError('password', Yii::t('app', 'Invalid password'));
                 }
             }
         }
     } else {
         $message = Yii::t('app', 'Invalid code');
     }
     return $this->render('password', ['model' => $model, 'message' => $message]);
 }
 public function actionReset($id, $hash)
 {
     $ep = User::getEmailAndPassById($id);
     $email = $ep['email'];
     $pass = $ep['password_hash'];
     $hash1 = $email;
     for ($i = 0; $i < 13; ++$i) {
         $hash1 = sha1(md5($hash1) . $email . $pass . sha1($email));
     }
     if ($hash == $hash1) {
         $model = new Password();
         if ($model->load(Yii::$app->request->post()) && $model->validate()) {
             $model1 = User::findOne($id);
             $model1->setPassword($model->password);
             $model1->save();
             Yii::$app->user->login($model1);
             // @ todo пререкласти
             \Yii::$app->session->setFlash('notify', Yii::t('yii', 'Пароль успешно изменен'));
             return $this->redirect("/id" . $id);
         }
         return $this->render('reset', ['model' => $model]);
     } else {
         return $this->redirect('/');
     }
 }
 /**
  * Remove the specified resource from storage.
  * DELETE /passwords/{id}
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     $this->password->find($id)->delete();
     return Response::json(array('message' => 'deleted'));
 }
 public function actionPassword($id)
 {
     if (!\Yii::$app->user->isGuest) {
         $modeluser = $this->findModeluser($id);
         if (Yii::$app->user->identity->id == $id) {
             $modelpassword = new Password();
             $modelpassword->username = $modeluser->username;
             if ($modelpassword->load(Yii::$app->request->post())) {
                 if ($modelpassword->validate()) {
                     $modeluser->setPassword($modelpassword->new_password);
                     if ($modeluser->save()) {
                         Yii::$app->session->setFlash('info', 'Новый парль сохранен.');
                         return $this->refresh();
                     } else {
                         Yii::$app->session->setFlash('error', 'Новый парль не сохранен.');
                         return $this->refresh();
                     }
                 }
             }
             return $this->render('password', ['model' => $modelpassword]);
         } else {
             Yii::$app->session->setFlash('error', 'У вас не прав доступа к этому разделу сайта.');
             return $this->redirect(['index']);
         }
     } else {
         return $this->redirect(['login']);
     }
 }
 public function actionPassword($code = null, $name = null)
 {
     /** @var User $user */
     $message = null;
     $model = null;
     if (isset($_POST['name'])) {
         $name = $_POST['name'];
     }
     if ($name) {
         if (Yii::$app->user->identity->isAdmin() || $name == Yii::$app->user->identity->name) {
             $user = User::findOne(['name' => $name]);
         } else {
             throw new ForbiddenHttpException();
         }
     } else {
         $user = $code ? User::findOne(['code' => $code]) : Yii::$app->user->identity;
     }
     if ($user) {
         $model = new Password(['scenario' => $code || $name ? 'reset' : 'default', 'user' => $user]);
         if ($model->load(Yii::$app->request->post()) && $model->validate()) {
             if ('reset' == $model->scenario) {
                 $user->code = null;
                 if (!$user->auth) {
                     $user->generateAuthKey();
                 }
                 $user->setPassword($model->new_password);
                 if ($user->save()) {
                     Yii::$app->session->addFlash('success', Yii::t('app', 'Password saved'));
                     return Yii::$app->user->isGuest ? $this->redirect(['user/login']) : $this->redirect(['user/view', 'name' => $user->name]);
                 } else {
                     $message = json_encode($user->errors, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
                 }
             } else {
                 if ($user->validatePassword($model->password)) {
                     $user->setPassword($model->new_password);
                     if ($user->save()) {
                         Yii::$app->session->addFlash('success', Yii::t('app', 'Password saved'));
                         return $this->redirect(['user/view', 'name' => $user->name]);
                     } else {
                         $message = json_encode($user->errors, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
                     }
                 } else {
                     $model->addError('password', Yii::t('app', 'Invalid password'));
                 }
             }
         }
     } else {
         $message = Yii::t('app', 'Invalid code');
     }
     return $this->render('password', ['model' => $model, 'message' => $message]);
 }