Author: XE Developers (developers@xpressengine.com)
コード例 #1
0
ファイル: Policy.php プロジェクト: xpressengine/xpressengine
 /**
  * User 가 권한이 있는 등급인지 판별
  *
  * @param UserInterface $user      user instance
  * @param string        $criterion user rating keyword
  * @return bool
  */
 protected function ratingInspect(UserInterface $user, $criterion)
 {
     if (Rating::compare($this->userRating($user), $criterion) == -1) {
         return false;
     }
     return true;
 }
コード例 #2
0
 /**
  * @expectedException \Xpressengine\User\Exceptions\UnknownCriterionException
  */
 public function testCampareThrowException()
 {
     Rating::compare(Rating::MEMBER, 'foo');
 }
コード例 #3
0
 /**
  * show user editing page
  *
  * @param $id
  *
  * @return \Xpressengine\Presenter\RendererInterface
  */
 public function edit($id)
 {
     $user = $this->handler->users()->with('groups', 'emails', 'accounts')->find($id);
     if ($user === null) {
         $e = new InvalidArgumentHttpException();
         $e->setMessage('존재하지 않는 회원입니다.');
         throw $e;
     }
     $ratings = Rating::getUsableAll();
     $ratingNames = ['member' => xe_trans('xe::memberRatingNormal'), 'manager' => xe_trans('xe::memberRatingManager'), 'super' => xe_trans('xe::memberRatingAdministrator')];
     foreach ($ratings as $key => $rating) {
         $ratings[$key] = ['value' => $rating, 'text' => $ratingNames[$rating]];
         if ($rating === $user->rating) {
             $ratings[$key]['selected'] = 'selected';
         }
     }
     $groupList = $this->handler->groups()->all();
     $groups = $this->getGroupInfo($groupList);
     foreach ($user->groups as $group) {
         $groups[$group->id]['checked'] = 'checked';
     }
     $status = [\XeUser::STATUS_ACTIVATED => ['value' => \XeUser::STATUS_ACTIVATED, 'text' => xe_trans('xe::permitted')], \XeUser::STATUS_DENIED => ['value' => \XeUser::STATUS_DENIED, 'text' => xe_trans('xe::rejected')]];
     $status[$user->status]['selected'] = 'selected';
     // profileImage config
     $profileImgSize = config('xe.user.profileImage.size');
     // dynamic field
     $dynamicField = app('xe.dynamicField');
     $fieldTypes = $dynamicField->gets('user');
     $defaultAccount = null;
     if (isset($user->accounts)) {
         foreach ($user->accounts as $account) {
             if ($account->provider === \XeUser::PROVIDER_DEFAULT) {
                 $defaultAccount = $account;
             }
         }
     }
     return XePresenter::make('member.settings.member.edit', compact('user', 'ratings', 'groups', 'status', 'defaultAccount', 'fieldTypes', 'profileImgSize'));
 }
コード例 #4
0
 /**
  * getGrant
  *
  * @param $user
  *
  * @return array
  */
 protected function getGrant($user)
 {
     $logged = Auth::user();
     $grant = ['modify' => false, 'manage' => false];
     if ($logged->getId() === $user->getId()) {
         $grant['modify'] = true;
     }
     if (Rating::compare($logged->getRating(), Rating::MANAGER) >= 0) {
         $grant['manage'] = true;
         $grant['modify'] = true;
         return $grant;
     }
     return $grant;
 }
コード例 #5
0
ファイル: User.php プロジェクト: pokev25/xpressengine
 /**
  * Finds whether user has manager or super rating.
  *
  * @return boolean
  */
 public function isManager()
 {
     return Rating::compare($this->getRating(), Rating::MANAGER) >= 0;
 }