如何做权限控制?
这里只是我的项目用到的一种方法,欢迎大家探讨:
关于权限控制的问题,最近项目用到的一种方法,具体思路如下:
1、自动获取所有操作,写入数据库
2、为每个权限组添加操作,写入数据库
3、用户操作时需要判断是否有这样的操作就行。
这里有个问题,就是分配权限的时候不知道获取的操作是干什么的,都是英文字符串,所以还需要加一个函数注释:
那么以PHP为例,
主要是,获取所有类,及其所有函数;
类,大家可以自己指定,或者,用相关技术获得。
我主要介绍的是获取类的所有函数,及其操作注释。
以下这段代码,诠释了所有的操作,及其说明的获取,请粘贴使用,查看结果:
最后结果为:
代表: 操作 => 操作具体注释,关于注释的获取操作,请见另一篇文章
http://www.chenglin.name/php/blog/318.html
两篇文章结合起来理解更详细。
关于权限控制的问题,最近项目用到的一种方法,具体思路如下:
1、自动获取所有操作,写入数据库
2、为每个权限组添加操作,写入数据库
3、用户操作时需要判断是否有这样的操作就行。
这里有个问题,就是分配权限的时候不知道获取的操作是干什么的,都是英文字符串,所以还需要加一个函数注释:
那么以PHP为例,
主要是,获取所有类,及其所有函数;
类,大家可以自己指定,或者,用相关技术获得。
我主要介绍的是获取类的所有函数,及其操作注释。
以下这段代码,诠释了所有的操作,及其说明的获取,请粘贴使用,查看结果:
<?php
class test{
/**
* @cc add opreation
*/
public function add(){
echo 'add';
}
/**
* @cc delete opreation
*/
public function delete(){
echo 'delete';
}
/**
* @cc update opreation
*/
public function update(){
echo 'update';
}
/**
* @cc select opreation
*/
public function select(){
echo 'select';
}
}
echo "string";
// 获取某类的函数的注释
function cc_get_desc($module,$fc){
$act = new $module();
$func = new ReflectionMethod($act,$fc);
$tmp = $func->getDocComment();
$flag = preg_match_all('/@cc(.*?)\n/',$tmp,$tmp);
$tmp = trim($tmp[1][0]);
$tmp = $tmp !='' ? $tmp:'无';
return $tmp;
}
// 获取某类的所有函数 并执行获取函数的注释
function cc_get_all($classname){
$func = get_class_methods($classname);
foreach ($func as $key) {
$tmp[$key] = cc_get_desc('test','add');
}
var_dump($tmp);
}
// 输出 操作,及其注释;
cc_get_all('test');
?>
最后结果为:
array (size=4)
'add' => string 'add opreation' (length=13)
'delete' => string 'add opreation' (length=13)
'update' => string 'add opreation' (length=13)
'select' => string 'add opreation' (length=13)
代表: 操作 => 操作具体注释,关于注释的获取操作,请见另一篇文章
http://www.chenglin.name/php/blog/318.html
两篇文章结合起来理解更详细。