简易php查询access,创建一个简单的权限判断Access类

class Access{

/**

* 类的唯一实例

*/

private static $instance;

/**

* 权限常量

*/

const SELECT = 0x1; //查询

const CREATE = 0x2; //添加

const EDIT    = 0x4; //修改

const DELETE = 0x8; //删除

/**

* 角色

*/

private $annoy = ''; //匿名用户

private $user   = ''; //注册用户

private $admin = ''; //管理用户

private $usertype = 'annoy';

private $hashtable = array(1=>'查询',2=>'添加',4=>'修改',8=>'删除');

/**

*

*/

public function __set($name,$value)

{

if ($name == 'usertype')

{

if ($value != '')

{

$this->usertype = $value;

}

}

}

/**

* 构造函数 给角色赋予权限

*/

private function __construct()

{

$this->annoy = self::SELECT;

$this->user = self::SELECT | self::CREATE;

$this->admin = self::SELECT | self::CREATE | self::EDIT | self::DELETE;

}

/**

* 获取类的唯一实例

*/

public static function getInstance()

{

if (self::$instance === null){

self::$instance = new Access();

}

return self::$instance;

}

/**

* 检查权限

*

* @param $usertype 角色

* @param $purview 权限

*/

public function check($purview)

{

if ($this->{$this->usertype} & $purview)

{

return true;

}

return false;

}

/**

* 给角色加权限

*/

public function addPur($purview)

{

$this->{$this->usertype} |= $purview;

}

/**

* 给角色减权限

*/

public function delPur($purview)

{

$this->{$this->usertype} ^= $purview;

}

/**

* 返回角色拥有的权限

*/

public function getPur()

{

$arr = array();

foreach ($this->hashtable as $k => $v)

{

if ($k & $this->{$this->usertype})

{

$arr[] = $v;

}

}

return $arr;

}

}

@session_start();

$_SESSION['role'] = 'user';

$pruview=Access::getInstance();

//获取权限类的实例

$pruview->usertype=$_SESSION['role'];

//设置角色

$pruview->usertype = $_SESSION['role'];

//获取该角色拥有的权限

$arr = $pruview->getpur();

echo '该用户的权限有:' . join(',', $arr) . "\n";

//判断执行的操作是否有权限

if (true === $pruview->check(Access::CREATE))

{

create(); //要执行的操作

}

else

{

exit("您没有权限!");

}

//去掉用户的添加权限

$pruview->delPur(Access::CREATE);

$arr = $pruview->getpur();

echo '
该用户的权限有:' . join(',', $arr) . "\n";

//执行添加操作

if (true === $pruview->check(Access::CREATE))

{

create(); //要执行的操作

}

else

{

echo "您没有权限!
" . "\n";

}

//加上用户的添加权限

$pruview->addPur(Access::EDIT);

$arr = $pruview->getpur();

echo '
该用户的权限有:' . join(',', $arr) . "\n";

//执行添加操作

if (true === $pruview->check(Access::EDIT))

{

edit(); //要执行的操作

}

else

{

echo "您没有权限!" . "\n";

}

//创建的方法

function create(){

echo "执行创建操作
"; //要执行的操作

}

//编辑的方法

function edit(){

echo "执行编辑操作
"; //要执行的操作

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值