用户权限分配--网络参考资料收集

用户权限分配之我见

在稍微大点的网站中都有用户管理系统,不仅可以添加、修改、删除用户而且可以管理用户的的权限,创建新的用户组(角色),给新的用户组分配权限! 就这一个用户管理系统的设计实现发表下我自己的想法,如果有不好的地方请大家拍砖指正! 首先建立3个表分别是用户表test_user,用户组表test_usergroup,权限表test_purview test_user id:主键 usertype :用户组IDuserid:用户IDpwd :密码 等…… test_usergroup id 主键 rank 用户组IDtypename 用户组名 is_system 是否是系统用户组(1 or 0)purviews 权限(保存一个序列化后数组) test_purview id 主键 ename 英文名 cname中文名 model_id 所属模块idcreate_time 创建时间 那么怎样才能创建不同的用户组(角色)呢? test_purview表里存的是系统所有的权限 ename 字段内容是在程序里判断用的,cname主要是对应ename的权限中文名称,model_Id是这个权限是属于哪个模块(一般系统有好几个模块组成比如:内容管理、栏目管理、用户管理等)。 id ename cname model_id create_time 1 add_user 添加用户 1 12121212 …… 在添加新用户组的时候把这些用户权限先都列出来,用户选择了一些权限之后呢,把所选择的ename弄成一个数组之后序列化。之后在test_usergroup里insert一条新数据rank、typename 都是用户在后台填写只要不要和已有数据冲突就可以,is_system肯定为0了,purviews就是序列化后的字符串 id rank typename is_system purviews 1 5 审批员 0 序列化后的字符串 好了这样在需要的地方加一个检查权限的函数 check_purview($need_right) $need_right--需要的权限比如"add_user" check_purview里检查登录用户所在用户组所有的权限 test_purview 表中的purviews字段,之后反序列化一下,得到一个数组假设为$a_mypurview, 之后 in_array($need_right, $a_mypurview)如果返回为true就说明有用户有权限,否则就没有权限 大概就是这样,也不知道我说清楚没有! 呵呵!!!
三个表. 类似这样
users 用户表 user_id username
roles 角色表 role_id rolename
users_roles 用户角色 user_id role_id
判断他的属组啊。 groupId != 管理组 ? "提示错误":"执行操作";
//myself rbac
$thispageRBAC='M'; if(!ishave($thispageRBAC,$userRBACintfo[])) { echo"不存在编辑的权限!"; exit(); }
阅读更多

没有更多推荐了,返回首页