Esempio n. 1
0
File: Acl.php Progetto: pfdtk/bmsys
 /**
  * 取得当前登录的用户的权限角色对应表中的信息。
  *
  * @param object $userObj
  * @param int $userOrGroup
  * @access public
  * @return array|null
  */
 public function getUserAccessPermission($userObj, $userOrGroup = false)
 {
     $permission = new Permission();
     $access = new Access();
     //如果是超级管理员或者创始人登陆,那么返回所有的权限
     if ($userObj->group_id == self::ADMIN_ROLE_ID or $userObj->id == self::ADMIN_ID) {
         return $permission->getAllAccessPermission();
     }
     //如果需要对比用户和用户组的权限或者返回用户的权限
     if ($userOrGroup == self::AP_USER or !$userOrGroup) {
         $userAccessPermissionInfo = $access->getUserAccessPermission($userObj->id);
     }
     //如果用户的权限数据为空或者指定了需要查询的权限的类型为用户组,或者需要对比用户和用户组的权限
     if ($userOrGroup == self::AP_GROUP or !$userAccessPermissionInfo or !$userOrGroup) {
         $groupAccessPermissionInfo = $access->getGroupAccessPermission($userObj->group_id);
     }
     //根据条件返回权限信息,注意的是用户的权限会覆盖用户组的权限
     return $userOrGroup == self::AP_USER ? $userAccessPermissionInfo : ($userOrGroup == self::AP_GROUP ? $groupAccessPermissionInfo : ($userAccessPermissionInfo ? $userAccessPermissionInfo : $groupAccessPermissionInfo));
 }
Esempio n. 2
0
 /**
  * 删除用户组
  * 
  * @param string $data
  * @access public
  * @return boolean true|false
  */
 public function detele($ids)
 {
     if (!is_array($ids)) {
         return false;
     }
     foreach ($ids as $key => $value) {
         if (!$this->acl->checkGroupLevelPermission($value, Acl::GROUP_LEVEL_TYPE_GROUP)) {
             return $this->setErrorMsg(Lang::get('common.account_level_deny'));
         }
     }
     if ($this->groupModel->deleteGroup($ids) !== false) {
         $accessModel = new AccessModel();
         $result = $accessModel->deleteInfo(['type' => AccessModel::AP_GROUP, 'role_id' => $ids]);
         return true;
     }
     return $this->setErrorMsg(Lang::get('common.action_error'));
 }