<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');


    Class CI_Permission{
        
        const MANAGER = 64;
        const PLATFORM =32;
        const SERVICES = 16;
        const USER = 8;
        const PAY = 4;
        const ADMANAGER =2 ;
        const ADCACULATE = 1;
        
        
        /**
         * 赋予权限
         * @param array popes 权限
         * @return int 权值
         */
        public function give($permissions){
            
            if(!is_array($permissions)){
                exit("params must be array");
            }
            $value = 0;
            foreach($permissions as $k => $v){
                $value |= $v;
            }
            return $value;
        }
        
        
        /**
         * 判断是否有权限
         * @param int user_pope
         * @param int module_pope
         * return boolean
         */
        public function hasPermission($user_permission,$module_permission){
            if(!empty($user_permission)
               && !empty($module_permission)
               && $user_permission != 0 
               && $module_permission != 0
              )
            {
                  if($user_permission & $module_permission){
                      return TRUE;
                  }
            }
              
              return FALSE;
        }
        
        /**
         * 检查权限
         */
        public function checkPermssion($user_permission,$module_permission){
                  if(!($user_permission & $module_permission) || $user_permission == 0 || $module_permission == 0){
                      die( json_encode(array('statusCode'=>'300', 'message'=>'没有权限', 'callbackType'=>'forward')) );
                  }
        }
        
        /**
         * 得到权限
         * @return INT / ARRAY
         */
        public function getPermissions($key=''){
            $r = new ReflectionClass($this);
            $p = $r -> getConstants();
            if($key == '')return $p;
            return $p[$key];                
        }
        
         
    }

?>

相关文章:

  • 2022-01-22
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-29
  • 2021-04-04
  • 2022-12-23
  • 2021-06-28
猜你喜欢
  • 2022-12-23
  • 2021-09-28
  • 2022-12-23
  • 2021-07-30
  • 2021-06-08
  • 2021-09-04
相关资源
相似解决方案