public function update($userId, Request $request) { // basic validation $this->validate($request, ['displayName' => 'required']); // member validation /** @var UserInterface $user */ $user = $this->handler->users()->find($userId); if ($user === null) { throw new UserNotFoundException(); } $displayName = $request->get('displayName'); $introduction = $request->get('introduction'); // displayName validation if ($user->getDisplayName() !== trim($displayName)) { $this->handler->validateDisplayName($displayName); } XeDB::beginTransaction(); try { // resolve profile file if ($profileFile = $request->file('profileImgFile')) { /** @var UserImageHandler $imageHandler */ $imageHandler = app('xe.user.image'); $user->profileImageId = $imageHandler->updateUserProfileImage($user, $profileFile); } $this->handler->update($user, compact('displayName', 'introduction')); } catch (\Exception $e) { XeDB::rollback(); throw $e; } XeDB::commit(); return redirect()->route('member.profile', [$user->getId()])->with('alert', ['type' => 'success', 'message' => '변경되었습니다.']); }
public function updateAdditionField(Request $request, $field) { $inputs = $request->except('_token'); $user = $this->user; $user = $this->handler->update($user, $inputs); $showUrl = route('user.settings.additions.show', ['field' => $field]); return XePresenter::makeApi(['type' => 'success', 'message' => 'success', 'field' => $field, 'showUrl' => $showUrl]); }
/** * update DisplayName * * @param Request $request * * @return \Xpressengine\Presenter\RendererInterface */ public function updateDisplayName(Request $request) { $displayName = $request->get('name'); $displayName = str_replace(' ', ' ', trim($displayName)); $user = $this->user; XeDB::beginTransaction(); try { $user = $this->handler->update($user, compact('displayName')); } catch (\Exception $e) { XeDB::rollback(); throw $e; } XeDB::commit(); return XePresenter::makeApi(['type' => 'success', 'message' => 'success', 'displayName' => $displayName]); }
/** * 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) { $password = bcrypt($password); $this->handler->update($user, compact('password')); $this->auth->login($user); }); switch ($response) { case PasswordBroker::PASSWORD_RESET: return redirect('/')->with('status', $response); default: // password configuration $passwordConfig = app('config')->get('xe.user.password'); $passwordLevel = array_get($passwordConfig['levels'], $passwordConfig['default']); return redirect()->back()->withInput($request->only('email'))->with('alert', ['type' => 'danger', 'message' => $passwordLevel['description']]); } }
/** * update user * * @param $id * @param Request $request * * @return \Illuminate\Http\RedirectResponse * @throws Exception */ public function update($id, Request $request) { /** @var UserInterface $user */ $user = $this->handler->users()->with('groups', 'emails', 'accounts')->find($id); if ($user === null) { $e = new InvalidArgumentHttpException(); $e->setMessage('존재하지 않는 회원입니다.'); throw $e; } // default validation $this->validate($request, ['email' => 'email', 'displayName' => 'required', 'rating' => 'required', 'status' => 'required', 'password' => 'password']); $userData = $request->except('_token'); XeDB::beginTransaction(); try { $this->handler->update($user, $userData); } catch (\Exception $e) { XeDB::rollback(); throw $e; } XeDB::commit(); return redirect()->back()->with('alert', ['type' => 'success', 'message' => '수정되었습니다.']); }