[转]轻松搞定权限设计1-页面按钮控制(精确到某个用户和某个按钮)
2017-06-16 00:03
344 查看
每个系统都离不开权限控制,这里来说说页面上控制到按钮的思路,仅提供思路:
使用 角色 + 资源(菜单和菜单对应页面上的按钮)+ 授权的方式。
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,有一个按钮 <input type='button' id='saveBtn' ......这里 btn_code 就存 saveBtn。
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);
ok 已经完成了,这里只给了思路,具体的要看自己的实现,这个很简单,也不知道有没有说清楚
题外话: 正常的开发里面,应该是页面做完之后,进入资源管理,录入菜单,按钮信息,然后再进行授权工作。
对于菜单,应该还有个功能页面之说,其不在菜单栏显示,作为一种服务,比如某个页面弹出的新页面,这个页面是不显示在菜单栏的,但是他和菜单又很像,暂且叫功能,上文为了简单没有说这个。
第一次写博客,完全不知所云,欢迎板砖,错误的地方恳请各位指正。
文章转载http://blog.csdn.net/chen42955/article/details/47423501
使用 角色 + 资源(菜单和菜单对应页面上的按钮)+ 授权的方式。
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,有一个按钮 <input type='button' id='saveBtn' ......这里 btn_code 就存 saveBtn。
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);
ok 已经完成了,这里只给了思路,具体的要看自己的实现,这个很简单,也不知道有没有说清楚
题外话: 正常的开发里面,应该是页面做完之后,进入资源管理,录入菜单,按钮信息,然后再进行授权工作。
对于菜单,应该还有个功能页面之说,其不在菜单栏显示,作为一种服务,比如某个页面弹出的新页面,这个页面是不显示在菜单栏的,但是他和菜单又很像,暂且叫功能,上文为了简单没有说这个。
第一次写博客,完全不知所云,欢迎板砖,错误的地方恳请各位指正。
文章转载http://blog.csdn.net/chen42955/article/details/47423501
相关文章推荐
- 轻松搞定权限设计1-页面按钮控制(精确到某个用户和某个按钮)
- Asp.net 权限控制 利用用户控件include到页面
- 权限管理系统 页面权限粒度控制设计 GUID在数据库系统的应用
- 基于RESTful API 怎么设计用户权限控制?
- 【微服务】之七:轻松搞定SpringCloud微服务-API权限控制
- web JSP页面按钮权限控制(tld标签标签类实现BodyTagSupport)
- 韩顺平_轻松搞定网页设计(html+css+javascript)_第22讲_js三大流程控制(顺序流程、分支控制、循环控制)_学习笔记_源代码图解_PPT文档整理
- 使用angular 实现简单 用户-角色-菜单-按钮权限控制
- 权限系统--通过shiro进行按钮及页面访问url的权限控制
- 韩顺平_轻松搞定网页设计(html+css+javascript)_第23讲_js三大流程控制(顺序流程、分支控制、循环控制)_js调式技巧_学习笔记_源代码图解_PPT文档整理
- 解决页面包含两个用户控制且都有Form提交的时按钮验证事件混乱
- 用户权限指派,权限控制页面访问
- SharePoint【用户访问控制】-- sharepoint 判断当前用户在当前页面是否有某项权限
- 《Spring Security3》第五章第二部分翻译下(实现授权精确控制的方法——页面级权限)
- Spring MVC+FreeMarker实现页面按钮权限控制1
- 基于RESTful API 设计用户权限控制
- 基于RESTful API 怎么设计用户权限控制?