转:用户权限控制

简介: 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();//用户离开系统
};

相关文章
|
6月前
|
UED
路由权限登录后还保留上一个登录角色的权限,刷新一下就好了的解决方案
路由权限登录后还保留上一个登录角色的权限,刷新一下就好了的解决方案
31 0
|
6月前
|
资源调度 前端开发 数据库
权限 | 前端控制权限
啊,我们经常做权限控制,控制菜单,控制按钮功能等,但是在一些特殊情况下不能够由后端来做权限控制,那就只能前端来做啦。
|
10月前
|
设计模式 运维 监控
系统权限的主要设计
系统权限是我们日常都在用的,但是,你知道要怎么设计一个系统权限吗
118 0
|
中间件 数据安全/隐私保护
使用RoleBasedAuthorization实现基于用户角色的访问权限控制
本文将介绍如何通过 [Sang.AspNetCore.RoleBasedAuthorization](https://www.nuget.org/packages/Sang.AspNetCore.RoleBasedAuthorization) 库实现 RBAC 权限管理。
141 0
使用RoleBasedAuthorization实现基于用户角色的访问权限控制
|
存储 安全 算法
项目之用户登录和访问权限的控制(5)
项目之用户登录和访问权限的控制(5)
124 0
|
安全 Java 测试技术
项目之用户登录和访问权限的控制(6)
项目之用户登录和访问权限的控制(6)
236 0
|
弹性计算 监控 数据安全/隐私保护
权限细粒度设置
云产品权限细粒度设置
990 0