update() public method

필드: email, displayName, password, status, introduction, profileImgFile, groupId
public update ( Xpressengine\User\UserInterface $user, array $userData ) : Xpressengine\User\UserInterface
$user Xpressengine\User\UserInterface user
$userData array user data
return Xpressengine\User\UserInterface
 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]);
 }
Example #3
0
 /**
  * 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']]);
     }
 }
Example #5
0
 /**
  * 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' => '수정되었습니다.']);
 }