每个系统都离不开权限控制,这里来说说页面上控制到按钮的思路,仅提供思路:

使用 角色 + 资源(菜单和菜单对应页面上的按钮)+ 授权的方式。

1  定义角色与用户;

假定这里我们只控制到角色这一层次,一个用户一个角色,设计如下:

角色表: role(role_id, role_name)

用户表: user(user_id, username, role_id),其中role_id是角色表的外键。

2  定义资源

这里假定把菜单、按钮都看成是一种资源,一个菜单上面有多个按钮。

菜单表: menu(menu_id, nemu_name, menu_url)

按钮表: operation(btn_id, btn_code, btn_name, btn_title, menu_id)  btn_title 为提示

按钮表,其中menu_id 区分这个按钮是属于那一个页面,btn_code 存这个按钮在页面上的组件ID,这个在一个页面下应该是唯一的,方便后续页面定位她。比如我的HTML页面A,有一个按钮

3 录入资源

录入菜单与对应按钮到菜单表和按钮表,数据根据开发的页面而来。

假如我有2个页面

a.html (页面有2个按钮,保存 id: saveBtn,删除 id: deleteBtn );

b.html (页面有2个按钮,新增 id: addBtn,提交 id: submitBtn );

那么我录入的数据应该是:

菜单表:

(1,a页面, /a.html)菜单ID假设是1

(2,b页面, /b.html)菜单ID假设是2

按钮表:

(1, saveBtn, 保存, 保存按钮,1)

(2, deleteBtn, 删除, 删除按钮,1)

(3, addBtn, 新增, 新增按钮,2)

(4, submitBtn, 提交, 提交按钮,2)

4 设计授权表

配置角色对资源的访问权限,角色与资源多对多,设计如下:

权限表: author(id, role_id, resource_id, resource_type)    注释: id, 角色ID,资源ID, 资源类型(菜单还是按钮)

5 录入授权数据

录入角色与资源的权限关系,此时某个角色能够访问的资源数据已经有了,包括菜单和按钮。

进入页面控制:

进入页面之前,根据用户拿到角色,根据当前访问的菜单,拿到有权限的按钮;

页面初始化完成后(比如jQuery.ready()),根据按钮ID,有权限的按钮显示,没权限的按钮隐藏(所以之前按钮要保存页面的组件ID);

java权限精确到按钮_搞定权限设计1-页面按钮控制(精确到某个用户和某个按钮)...相关推荐

  1. 韩顺平轻松搞定网页设计(html+css+js),韩顺平轻松搞定网页设计方案(html+css+js)之javascript现场授课笔记(完整版).doc...

    2011韩顺平轻松搞定网页设计(html+css+js)之 javascript现场授课笔记(完整版) 视频18整和19的前半部分不用看 Javascript的基本介绍 JS是用于WEB开发的脚本语言 ...

  2. html百度首页制作视频,韩顺平 轻松搞定网页设计 html+css+js

    韩顺平老师的教程影响着一代又一代的学子们,他的视频教程确实做的很经典,不论是java.php还是网页设计,都有出彩的地方.这里,小编给大家分享韩顺平老师的轻松搞定网页设计教程,绝对完整,全部存于百度网 ...

  3. APP设计师拿到APP产品原型开始,七步搞定APP设计

    转载:http://www.25xt.com/appdesign/9670.html 任何一款成功的APP都需要以坚实的产品概念作为基础,因为概念决定了产品最终完成的潜力. 一般情况下,交到app设计 ...

  4. 汇道科技传授5个排版技巧,帮你轻松搞定UI设计

    文字排版不只是从下拉选单选择字型和点数而已,文字排版是一项流传数世纪的技艺,自木制和金属的活版印刷便开始,而且它不只历史悠久,还很实用,大部分的人只要掌握一些实用的诀窍,就可以将之活用在诸如履历表.电 ...

  5. java 接口权限控制_手把手教你搞定权限管理,结合Spring Security实现接口的动态权限控制!...

    SpringBoot实战电商项目mall(30k+star)地址:github.com/macrozheng/- 摘要 权限控管理作为后台管理系统中必要的功能,mall项目中结合Spring Secu ...

  6. android 权限作用说明书,AndroidAcp 一句话搞定,简化 Android 6.0 系统复杂的权限操作 @codeKK Android开源站...

    Acp 为 Android check permission 缩写,此库简化 Android 6.0 系统复杂的权限操作而编写. 特点 支持批量权限申请,不需要重写 onRequestPermissi ...

  7. word分页保存_搞定office丨Word快捷技巧第3弹!

    #快捷技巧 效率UP# 大家好~欢迎来到第6期搞定Word~ 这期依然是快捷提效主题--Word快捷技巧第3弹! 01 自动生成文字 首先,和大家说一下怎么自动生成文字,可以用此进行操作练习哦~ 在W ...

  8. 大学生职业生涯规划书性格特征_搞定职业生涯规划书,看这里!

    搞定职业生涯规划书,看这里! 作为大学生 就业是我们即将要面对的问题 那我们是否应提前规划自己理想的职业前景. 找到自己的职业方向呢? 答案是肯定的 只有提前做好准备 才能更好迎接来自社会的挑战 努力 ...

  9. 数据库本地的sa有个叉号_搞定sql数据库出错,做自己的大神!

    原标题:搞定sql数据库出错,做自己的大神! 怎么办? ERP出现登录不了,异常提示:数据库服务未开启或连接失败等,但实际上服务是开启的,软件安装目录下测试连接加密狗数据库也正常.最后发现sql数据库 ...

最新文章

  1. java socket wex5_WeX5集成ActiveMQ+WebSocket实现消息推送
  2. hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (背包问题)
  3. 优化Image设置Tiled类型产生过多的三角形顶点
  4. hadoop hive 2.1.1 将Hive启动为服务
  5. 前端学习(3032):vue+element今日头条管理-反馈
  6. 华为云GaussDB:发挥生态优势,培养应用型DBA
  7. HNU 实验五松雅的旅馆
  8. 动态改变eachers图表高_动态Excel图表,让数据说话
  9. Improving Opencv10 More Morphology Transformations
  10. django mysql处理_利用Django去操作数据库并完成简易的登录及编辑功能
  11. 《Linux私房菜》——一、linux基础整理
  12. c语言嵌入式学习,学习嵌入式C语言的秘诀
  13. 用低代码+BPM赋能知识文档管理系统
  14. KY RD9700_USB网卡驱动
  15. 【面试题 - mysql】进阶篇 - 索引
  16. HarmonyOS/OpenHarmony 双击返回与退出App
  17. 红帽 Red Hat Linux相关产品iso镜像下载【百度云】【更新7.6】
  18. 比较99^100与100^99大小
  19. 2020网易游戏测试一面面经(春招上海)
  20. 嵌入式新手学习路线,嵌入式课程学习

热门文章

  1. UITextField 文字垂直居中
  2. python之argmax
  3. C#之Unix时间和北京时间互转
  4. educoder MongoDB 数据库基本操作
  5. oracle没有正常启动,Oracledbstart无法正常启动处理办法
  6. python代替mathematica_在 Mathematica 里与 Python 交互
  7. flex布局怎么设置子元素大小_Web前端(三):前端布局
  8. 模仿笔迹最好的软件_模仿签名代写签字行业进入战国时代,乱战模式开启!
  9. 企业微信小程序可用存储空间不足_微信小程序为什么能帮助企业商家引流?
  10. 解决每次git pull、git push都需要输入账号和密码的问题