예제 #1
0
 /**
  * @param $contest_id
  *
  * @return array
  */
 public static function member_of_contest($contest_id)
 {
     $filter = array('rightstr' => 'c' . $contest_id, 'defunct' => self::DEFUNCT_NO);
     $result = array();
     foreach (Model_Privilege::find($filter, 0, 0) as $item) {
         array_push($result, $item->user_id);
     }
     return $result;
 }
예제 #2
0
 /**
  * proxy for permissions
  *
  * @return array
  */
 public static function permission_list()
 {
     return Model_Privilege::permission_list();
 }
예제 #3
0
 /**
  * 判断用户是否有某项权限
  *
  * @param      $permission
  * @param bool $needit
  *
  * @return array|bool|Model_Privilege
  */
 public function has_permission($permission, $needit = false)
 {
     if (!$this->permission_list) {
         $this->permission_list = Model_Privilege::permission_of_user($this->user_id);
     }
     foreach ($this->permission_list as $p) {
         if ($p->rightstr == $permission) {
             if ($needit) {
                 return $p;
             }
             if ($p->is_defunct()) {
                 return false;
             }
             return true;
         }
     }
     return false;
 }
예제 #4
0
 /**
  * @param $user_id
  */
 public function remove_member($user_id)
 {
     $filter = array('user_id' => $user_id, 'rightstr' => 'c' . $this->contest_id);
     $perm = Model_Privilege::find($filter);
     foreach ($perm as $item) {
         $item->defunct = 1;
         $item->destroy();
     }
 }