超级简单的权限类[结合CI和DWZ]

本文介绍了一个基于PHP实现的权限管理系统,该系统使用位运算来管理不同级别的权限,包括经理、平台、服务等,并提供了赋予权限、判断权限等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?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];                
        }
        
         
    }

?>

转载于:https://www.cnblogs.com/lost-1987/archive/2012/10/18/2729431.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值