/** * {@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; }
/** * 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); }
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', '修改成功'); }
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); }
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); } }
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()); }