public function update($memberId, Request $request) { // basic validation $validate = Validator::make($request->all(), ['displayName' => 'required']); if ($validate->fails()) { $message = $validate->messages()->first(); $e = new InvalidArgumentException(); $e->setMessage($message); throw $e; } // member validation /** @var MemberEntityInterface $member */ $member = $this->handler->findMember($memberId); if ($member === null) { throw new MemberNotFoundException(); } $displayName = $request->get('displayName'); $introduction = $request->get('introduction'); // displayName validation if ($member->getDisplayName() !== trim($displayName)) { $this->handler->validateDisplayName($displayName); } // apply updated $member->displayName = $displayName; if ($introduction !== null) { $member->introduction = $introduction; } XeDB::beginTransaction(); try { // resolve profile file if ($profileFile = $request->file('profileImgFile')) { /** @var MemberImageHandler $imageHandler */ $imageHandler = app('xe.member.image'); $member->profileImageId = $imageHandler->updateMemberProfileImage($member, $profileFile); } $this->handler->update($member); } catch (\Exception $e) { XeDB::rollback(); throw $e; } XeDB::commit(); return redirect()->route('member.profile', [$member->getId()])->with('alert', ['type' => 'success', 'message' => '변경되었습니다.']); }
/** * Reset the given user's password. * * @param Request $request * @return Response */ public function postPassword(Request $request) { $this->validate($request, ['token' => 'required', 'email' => 'required|email', 'password' => 'required|confirmed']); $credentials = $request->only('email', 'password', 'password_confirmation', 'token'); $response = $this->passwords->reset($credentials, function ($user, $password) { $user->password = bcrypt($password); $this->handler->update($user); $this->auth->login($user); }); switch ($response) { case PasswordBroker::PASSWORD_RESET: return redirect('/')->with('status', $response); default: // password configuration $passwordConfig = app('config')->get('xe.member.password'); $passwordLevel = array_get($passwordConfig['levels'], $passwordConfig['default']); return redirect()->back()->withInput($request->only('email'))->with('alert', ['type' => 'danger', 'message' => $passwordLevel['description']]); } }