无聊写的权限控制类
时间:2007-11-30
来源:互联网
类文件:
PHP代码:
<?php
/**
* Displays : 权限控制类
* Author : phpox
* Date : Fri Nov 30 13:13:48 CST 2007
*/
class include_purview
{
/**
* 类的唯一实例
*/
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 include_purview();
}
return self::$instance;
}
/**
* 检查权限
*/
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;
}
}
PHP代码:
/*** 示例
*/
//在session中读用户组
@session_start();
$_SESSION['role'] = 'user';
//获取权限类的实例
$pruview = include_purview::getInstance();
//设置角色
$pruview->usertype = $_SESSION['role'];
//获取该角色拥有的权限
$arr = $pruview->getpur();
echo '该用户的权限有:'.join(',',$arr)."\n";
//判断执行的操作是否有权限
if (true === $pruview->check(include_purview::CREATE ))
{
create(); //要执行的操作
}
else
{
exit('您没有权限!');
}
//去掉用户的添加权限
$pruview->delPur(include_purview::CREATE );
$arr = $pruview->getpur();
echo '该用户的权限有:'.join(',',$arr)."\n";
//执行添加操作
if (true === $pruview->check(include_purview::CREATE ))
{
create(); //要执行的操作
}
else
{
echo '您没有权限!'."\n";
}
//加上用户的添加权限
$pruview->addPur(include_purview::CREATE );
$arr = $pruview->getpur();
echo '该用户的权限有:'.join(',',$arr)."\n";
//执行添加操作
if (true === $pruview->check(include_purview::CREATE ))
{
create(); //要执行的操作
}
else
{
exit('您没有权限!');
}
//具体的操作
function create()
{
echo '执行了添加操作'."\n";
}
该用户的权限有:查询,添加
执行了添加操作
该用户的权限有:查询
您没有权限!
该用户的权限有:查询,添加
执行了添加操作
作者: niohe 发布时间: 2007-11-30

作者: PHPChina 发布时间: 2007-12-01
作者: utfqvfhpyygy 发布时间: 2007-12-01
作者: forweike 发布时间: 2007-12-17

作者: T.T.R 发布时间: 2007-12-18
作者: luzhou 发布时间: 2007-12-18
作者: dzjzmj 发布时间: 2007-12-18


作者: forest 发布时间: 2007-12-18
PHP代码:
/*** 给角色减权限
*/
public function delPur($purview)
{
$this->{$this->usertype} ^= $purview;
}
作者: chyoqin 发布时间: 2007-12-18
作者: sunfall 发布时间: 2007-12-21
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28