public function updateMainMail(Request $request)
 {
     $address = $request->get('address');
     if ($this->member->email === $address) {
         $e = new InvalidArgumentException();
         $e->setMessage('기존 대표 이메일과 동일합니다.');
         throw $e;
     }
     $selected = null;
     foreach ($this->member->mails as $mail) {
         if ($mail->address === $address) {
             $selected = $mail;
             break;
         }
     }
     // 해당회원이 가진 이메일이 아닐 경우 예외처리한다.
     if ($selected === null) {
         $e = new InvalidArgumentException();
         $e->setMessage('존재하지 않는 이메일입니다.');
         throw $e;
     }
     $this->member->email = $address;
     XeDB::beginTransaction();
     try {
         $this->members->update($this->member);
     } catch (\Exception $e) {
         XeDB::rollback();
     }
     XeDB::commit();
     \Session::flash('alert', ['type' => 'success', 'message' => '수정되었습니다.']);
     return Presenter::makeApi(['message' => '수정되었습니다']);
 }
Exemple #2
0
 /**
  * get document
  *
  * @param string $id         document id
  * @param string $instanceId instance id
  * @return ItemEntity
  */
 public function get($id, $instanceId = null)
 {
     $doc = $this->document->get($id, $instanceId);
     if ($doc->userId === '') {
         $doc->setAuthor($this->auth->makeGuest());
     } else {
         $doc->setAuthor($this->member->find($doc->getUserId()));
     }
     $entity = $this->makeItem($doc);
     $this->shortIdGenerator->associate($entity);
     $this->slug->associate($entity);
     return $entity;
 }
 /**
  * searchMember
  *
  * @param MemberRepositoryInterface $memberRepo
  * @param null                      $keyword
  *
  * @return \Xpressengine\Presenter\RendererInterface
  */
 public function searchMember(MemberRepositoryInterface $memberRepo, $keyword = null)
 {
     if ($keyword === null) {
         return Presenter::makeApi($memberRepo->all());
     }
     $matchedMemberList = $memberRepo->search(['displayName' => $keyword])->items();
     return Presenter::makeApi($matchedMemberList);
 }
 /**
  * getItemAccessPermission
  *
  * @param MenuItem $item to find permission target item object
  *
  * @return \Xpressengine\Permission\Permission
  * @throws \Xpressengine\Permission\Exceptions\WrongInstanceException
  */
 public function getItemAccessPermission(MenuItem $item)
 {
     $registered = $this->permission->findRegistered($this->permissionType, $item->getBreadCrumbsKeyString());
     $pureGrant = $registered->pure(Action::ACCESS);
     $mode = $pureGrant === null ? "inherit" : "manual";
     $menuAccessGrant = $registered->offsetGet(Action::ACCESS);
     $groups = $this->groupRepo->findAll($menuAccessGrant['group']);
     $users = $this->memberRepo->findAll($menuAccessGrant['user']);
     $excepts = $this->memberRepo->findAll($menuAccessGrant['except']);
     return ['mode' => $mode, 'rating' => $menuAccessGrant['rating'], 'group' => $groups, 'user' => $users, 'except' => $excepts];
 }
 /**
  * get User instance list
  *
  * @param string $targetId target id
  * @param int    $limit    limit
  * @return array
  */
 public function getUsers($targetId, $limit = 5)
 {
     $users = [];
     foreach ($this->getUserIds($targetId, $limit) as $userId) {
         $users[] = $this->member->find($userId);
     }
     return $users;
 }