Exemplo n.º 1
1
 /**
  * {@inheritDoc}
  */
 public function updatePassword(array $data)
 {
     $user = $this->auth->authenticate($data);
     // Setup validation rules.
     $this->rules = ['new_password' => 'required|confirmed', 'new_password_confirmation' => 'required'];
     // Run validation.
     $this->validate($data);
     // Setup new password.
     $updatedData = ['password' => $data['new_password']];
     // Update user.
     Sentinel::update($user, $updatedData);
     return;
 }
Exemplo n.º 2
0
 /**
  * Registers and authenticates a user by the specified credentials.
  *
  * @param array $credentials
  *
  * @return \Illuminate\Http\RedirectResponse
  */
 private function registerAndAuthenticateUser(array $credentials)
 {
     $model = Sentinel::createModel();
     // See if the LDAP user already has an account first
     $user = $model->where('email', $credentials['email'])->first();
     if ($user) {
         // Update the user
         Sentinel::update($user, $credentials);
         // Log them in
         Sentinel::login($user);
         $message = 'Successfully logged in.';
         return redirect()->intended('/')->withSuccess($message);
     } else {
         $user = Sentinel::registerAndActivate($credentials);
         if ($user) {
             $user->username = $credentials['username'];
             $user->save();
             Sentinel::login($user);
             $message = 'Successfully logged in.';
             return redirect()->intended('/')->withSuccess($message);
         }
     }
     $message = 'There was an issue creating your active directory account. Please try again.';
     return redirect()->route('maintenance.login.index')->withErrors($message);
 }
Exemplo n.º 3
0
 public function postPassword(Request $request)
 {
     $this->validate($request, ['current_password' => 'required', 'new_password' => 'required|confirmed'], ['current_password.required' => '当前密码不能为空', 'new_password.required' => '新密码不能为空', 'new_password.confirmed' => '新密码和重复新密码必须一致']);
     // 验证当前密码
     $credentials = ['email' => Sentinel::getUser()->email, 'password' => $request->get('current_password')];
     $user = Sentinel::authenticate($credentials);
     if (!$user) {
         return redirect()->back()->withErrors(['current_password' => '当前密码错误']);
     }
     // 修改新密码
     Sentinel::update($user, ['password' => $request->get('new_password')]);
     return redirect()->back()->with('message', '修改成功');
 }
Exemplo n.º 4
0
 public function updateAccount(Request $request, $id = FALSE, $action = FALSE)
 {
     $response['status'] = 'error';
     $response['message'] = trans('user_notifications.user_info_not_updated');
     if (!empty($request) && !empty($id) && !empty($action)) {
         if ($action == 'personal_info') {
             $user_data['first_name'] = !empty(Input::get('first_name')) ? Input::get('first_name') : '';
             $user_data['last_name'] = !empty(Input::get('last_name')) ? Input::get('last_name') : '';
             $user_data['phone'] = !empty(Input::get('phone')) ? Input::get('phone') : '';
             $user_data['address'] = !empty(Input::get('address')) ? Input::get('address') : '';
             $user_data['city'] = !empty(Input::get('city')) ? Input::get('city') : '';
             $user_data['state'] = !empty(Input::get('state')) ? Input::get('state') : '';
             $user_data['post_code'] = !empty(Input::get('postcode')) ? Input::get('postcode') : '';
             //				$user_data['country']    = ( ! empty(Input::get('country'))) ? Input::get('country') : '';
             if (Model_Users::updateUserInfo($id, $user_data) === TRUE) {
                 $response['status'] = 'success';
                 $response['message'] = trans('user_notifications.personal_info_updated');
             } else {
                 $response['message'] = trans('user_notifications.personal_info_not_updated');
             }
         } elseif ($action == 'change_password') {
             $user_data['password'] = !empty(Input::get('password')) ? Input::get('password') : '';
             $user_data['new_password'] = !empty(Input::get('new_password')) ? Input::get('new_password') : '';
             $user_data['re_new_password'] = !empty(Input::get('re_new_password')) ? Input::get('re_new_password') : '';
             if (!empty($user_data['password']) && !empty($user_data['new_password']) && !empty($user_data['re_new_password'])) {
                 $user = Model_Users::getSentinelUserByID($id);
                 $hasher = Sentinel::getHasher();
                 if (!Sentinel::validateCredentials($user, ['email' => $user->email, 'password' => $user_data['password']])) {
                     $response['message'] = trans('user_notifications.old_password_do_not_match');
                 } elseif ($hasher->check($user_data['password'], $user_data['new_password']) || $user_data['new_password'] != $user_data['re_new_password']) {
                     $response['message'] = trans('user_notifications.new_passwords_do_not_match');
                 } elseif (mb_strlen($user_data['new_password']) < 8) {
                     $response['status'] = 'warning';
                     $response['message'] = trans('user_notifications.password_length');
                 } else {
                     if (Sentinel::update($user, ['password' => $user_data['new_password']])) {
                         $response['status'] = 'success';
                         $response['message'] = trans('user_notifications.password_changed');
                     }
                 }
             }
         }
     }
     echo json_encode($response);
 }
Exemplo n.º 5
0
 protected function resetPassword($user, $password)
 {
     $user = Sentinel::findById($user->id);
     $user = Sentinel::update($user, ['password' => $password]);
     Sentinel::login($user);
 }
 /**
  * 重置帐户密码 - 业务逻辑
  *
  * @param $user_id
  * @param string $route_success
  * @param string $route_failed
  * @return \Illuminate\Http\RedirectResponse
  */
 public function password_man_logic($user_id, $route_success = 'account_list_get', $route_failed = 'account_list_get')
 {
     $user_info = Sentinel::findById($user_id);
     if (!$user_info) {
         return redirect()->route($route_failed);
     }
     $update_data = ['password' => $user_info['email']];
     if (Sentinel::update($user_info, $update_data)) {
         //            dump('重置成功');
         return redirect()->route($route_success);
     } else {
         //            dump('重置失败');
         return redirect()->route($route_failed);
     }
 }
Exemplo n.º 7
0
 public function postActivation(RegisterRequest $request)
 {
     $email = $request->input('email');
     $user = Sentinel::findByCredentials(['email' => $email]);
     // 设置用户名和密码
     Sentinel::update($user, array('first_name' => $request->input('username'), 'password' => $request->input('password')));
     // 激活用户账号
     $status = Activation::complete($user, $request->input('code'));
     if (!$status) {
         return redirect('auth/register')->withErrors(array('邮件链接过期,请重新注册'));
     }
     if (Session::has(self::OAUTH_USER)) {
         $oauthInfo = Session::get(self::OAUTH_USER);
         $provider = $oauthInfo['provider'];
         $oauthUser = $oauthInfo['user'];
         $uid = OAuthAccount::where('oauth_id', $oauthUser->getId())->where('oauth_type', $provider)->pluck('uid');
         if (!$uid) {
             // 绑定账号
             $oAuthAccount = new OAuthAccount();
             $oAuthAccount->uid = $user->id;
             $oAuthAccount->oauth_id = $oauthUser->getId();
             $oAuthAccount->oauth_type = $provider;
             $oAuthAccount->created_at = time();
             $oAuthAccount->save();
         }
     }
     // 登录
     Sentinel::login($user);
     return redirect($this->redirectPath());
 }