示例#1
0
 /**
  * Check parameters
  *
  * @param array $args action arguments (URL, GET, POST)
  *
  * @return boolean success flag
  */
 function prepare($args)
 {
     if (!parent::prepare($args)) {
         return false;
     }
     $this->role = $this->arg('role');
     if (!Profile_role::isValid($this->role)) {
         // TRANS: Client error displayed when trying to revoke an invalid role.
         $this->clientError(_('Invalid role.'));
     }
     if (!Profile_role::isSettable($this->role)) {
         // TRANS: Client error displayed when trying to revoke a reserved role.
         $this->clientError(_('This role is reserved and cannot be set.'));
     }
     $cur = common_current_user();
     assert(!empty($cur));
     // checked by parent
     if (!$cur->hasRight(Right::REVOKEROLE)) {
         // TRANS: Client error displayed when trying to revoke a role without having the right to do that.
         $this->clientError(_('You cannot revoke user roles on this site.'));
     }
     assert(!empty($this->profile));
     // checked by parent
     if (!$this->profile->hasRole($this->role)) {
         // TRANS: Client error displayed when trying to revoke a role that is not set.
         $this->clientError(_('User does not have this role.'));
     }
     return true;
 }
示例#2
0
 /**
  * Check parameters
  *
  * @param array $args action arguments (URL, GET, POST)
  *
  * @return boolean success flag
  */
 function prepare($args)
 {
     if (!parent::prepare($args)) {
         return false;
     }
     $this->role = $this->arg('role');
     if (!Profile_role::isValid($this->role)) {
         $this->clientError(_('Invalid role.'));
         return false;
     }
     if (!Profile_role::isSettable($this->role)) {
         $this->clientError(_('This role is reserved and cannot be set.'));
         return false;
     }
     $cur = common_current_user();
     assert(!empty($cur));
     // checked by parent
     if (!$cur->hasRight(Right::REVOKEROLE)) {
         $this->clientError(_('You cannot revoke user roles on this site.'));
         return false;
     }
     assert(!empty($this->profile));
     // checked by parent
     if (!$this->profile->hasRole($this->role)) {
         $this->clientError(_("User doesn't have this role."));
         return false;
     }
     return true;
 }
示例#3
0
 /**
  * Check parameters
  *
  * @param array $args action arguments (URL, GET, POST)
  *
  * @return boolean success flag
  */
 function prepare($args)
 {
     if (!parent::prepare($args)) {
         return false;
     }
     $this->role = $this->arg('role');
     if (!Profile_role::isValid($this->role)) {
         // TRANS: Client error displayed when trying to assign an invalid role to a user.
         $this->clientError(_('Invalid role.'));
         return false;
     }
     if (!Profile_role::isSettable($this->role)) {
         // TRANS: Client error displayed when trying to assign an reserved role to a user.
         $this->clientError(_('This role is reserved and cannot be set.'));
         return false;
     }
     $cur = common_current_user();
     assert(!empty($cur));
     // checked by parent
     if (!$cur->hasRight(Right::GRANTROLE)) {
         // TRANS: Client error displayed when trying to assign a role to a user while not being allowed to set roles.
         $this->clientError(_('You cannot grant user roles on this site.'));
         return false;
     }
     assert(!empty($this->profile));
     // checked by parent
     if ($this->profile->hasRole($this->role)) {
         // TRANS: Client error displayed when trying to assign a role to a user that already has that role.
         $this->clientError(_('User already has this role.'));
         return false;
     }
     return true;
 }