开发者社区> 五岳之巅> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

转:用户权限控制

简介: Table:UserINFOField:   UserID,UserName,Password,Email例如:1,John,5555,john@phpchina.comUserINFO用来存储用户的基本信息。
+关注继续查看
Table:UserINFO
Field:   UserID,UserName,Password,Email
例如:1,John,5555,john@phpchina.com

UserINFO用来存储用户的基本信息。例如登陆用户名,密码等。 用这些信息来验证用户的真实性。

Table:Role
Filed:RoleID,Rolename
Role是用户在系统中的各种角色(或职位)。 比方说送水工,清洁工,工程师,经理。
例如:4,送水工 表明公司内有一个角色是送水工。 我们为这个角色编号为4号。
        5,清洁工 表明公司内有一个角色是送水工。 我们为这个角色编号为5号。


Table:UserHasRoles
Field:  UserID,RoleID
UserHasRoles表是用来关联用户和角色,比方说,John,他既可以是送水的工人,也可以是公司的清洁工。那么我们需要插入两行记录
1,4         表明 John是送水的工人
1,5         表明 John是清洁工

Table:Entrance
Field:EntranceID,EntranceName
这个表用来记录(系统)公司所有的入口,例如
1,大门
8,饮用水库房
9,总经理办公室

Table:RoleCanEnter
Field:RoleID,EntranceID
这个表用来记录角色是否能够进入某个入口。例如:
4,1  表明清洁工可以进入大门
4,8  表明清洁工可以进入饮用水库房


这就是一个基本的RBAC系统。
class user{
      
        //用户登录后存储ID。
        private userID;
      
        //验证密码,登录用户
        public login(user_name,pwd){
         /*
                  .........
         */
         
       }
      
     //用户要进入某个入口
      public  enter($entrance){
              //以下的代码对用户的所有角色遍历,看他的角色是否可以进入指定的$entrance这个入口。
              /*
                ........
              */
      }
      
      // 用户登出系统
      public logout(){
          //.....
      }

}

初始化一个用户对象
$SysUser = new user();

//用户使用名称和密码登录
if($SysUser->login('John','5555')){
     $SysUser->enter('大门');    //用户想要进入大门  ---- 当然可以啦。。。
     $SysUser->enter('总经理办公室');  //用户想要进入总经理办公室', --不可以....
     $SysUser->logout();//用户离开系统
};

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
项目之用户登录和访问权限的控制(5)
项目之用户登录和访问权限的控制(5)
38 0
项目之用户登录和访问权限的控制(6)
项目之用户登录和访问权限的控制(6)
82 0
基于二进制控制系统权限
在数学和数字电路中指以2为基数的记数系统,以2为基数代表系统是二进位制的。这一系统中,通常用两个不同的数字0和1来表示。在计算机中,最常用的是二进制,因为组成计算机系统的逻辑电路通常只有开和关这两个状态,用0和1很好表示这两种状态。
1267 0
+关注
262
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载