用户-角色-资源 后台逻辑简单关联实现

前提: 

       客户端界面上显示的所有元素 ,创建时绑定 自定义的ID -- 资源ID

表设计:

角色表:

int 角色码 role_id

资源表:

int 资源码id res_id      , int 角色码复合码 role_id

用户表:

int 用户码id user_id  ,int 角色码复合码 role_id

 

核心: role_id 的位运算

 

例子: 

当前用户存在角色 A role_id = 1 ;  B role_id  = 2 ; C role_id  = 4

   计算系统全局 可用角色 总数 :    1+2+4 = 7

当前登陆用户拥有权限 : 5 , 分解-> 1 + 4 -> 拥有角色A ,C 

 

代码实现登陆流程:

 //模拟 资源与角色 关系表
            List<Res> list = new ArrayList<>();
                list.add(new Res(1,"首页菜单1"));
                list.add(new Res(2,"用户信息模块2"));
                list.add(new Res(4,"公告栏3"));
                list.add(new Res(2,"标题多选框4"));
                list.add(new Res(5,"点击按钮5"));

                // 1 2 4
            int roleAll = 7;

            int rid = 5;
            //判断当前用户有效权限
            int accessRid =  rid & roleAll;

            System.out.println( "当前用户有效角色总数:" + accessRid );

            List<Res> alist = new ArrayList<>();

            //根据角色抓取资源
            for (Res res : list){
                if (( res.rid & accessRid ) > 0){
                    alist.add(res);
                }
            }

            if (alist.size()>0) {
                System.out.println("登陆成功"+ alist);
            }

            else System.out.println("登陆失败");

模拟结果:

当前用户有效角色总数:5
登陆成功[
{rid=1, resId='首页菜单1'}, 
{rid=4, resId='公告栏3'}, 
{rid=5, resId='点击按钮5'}]

优点:

1. 动态添加资源与角色的关系

2.全局控制用户

3.动态绑定用户与资源的关系

4.自行体会

 

 缺点:  系统最多可设置63个角色后 需要关联二级角色表 

 

灵感来源liunx权限管理

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1:集成最新,最流行,,最成熟悉的技术框架 springMVC4.1.4,spring4.1.4,mybaits3.2.8,MySQL5.6 2:前端界面采用当前最流行的响应式布局设计 bootstrap3,html5,CSS3,JQueryAjax 特点: 1:基于mybaits插件完成对于基本的增,删,改,查的功能,不需要写任何SQL语句,代码一键调用即可.具有很好的灵活性,方便性,快速性.这样就大大减少代码开发时间,提高开发效率,为企业或个人有效率地节约人力资源的成本! 2:对JAVA的封装,多态,继承特性做了充分的运用,其中也用到了JAVA的一个重要机制--反射机制! 3:对于简单业务的单表增,删,改,查只需要一个entity,不需要写任何的controller,service,mapper等代码,也不需要任何的sql语句,让程序员更专注于前端 4:具有安全,可靠能快速,方便,高效地进行开发 5:系统具有可扩展性,可控性,通用性强的基础 6:基础的业务性不强的列表界面采取直接配置方式,不需要写任何代码,直接生成界面,具有快捷,快速,方便地查看实时功能效果 7:集成监控功能,随时监控系统内存,CPU,磁盘的最新变化 8:新增告警邮件触发功能,让用户随时了解服务器状况 目标: 1:提升开发效率,规范开发标准 2:提高质量,降低复杂度 3:打造一个开发简单.效率快..性能好.. 易上手的框架 兼容性: 1:设备:兼容IPAD,手机,电脑,笔记本等等 2:界面:兼容IE8+,firefox,google等等 3:数据库:兼容MySQL,oracel,sqlserver2008 通用性: 让项目只注重业务,为企业或个人有效率地节约人力资源的成本! 1:系统具有最基本的用户角色资源,权限管理,日志管理等通用性功能,企业或个人可直接在此基础上进行开发,扩展,添加各自的需求和业务功能!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值