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' => '수정되었습니다']); }
/** * 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; }