`
liyixing1
  • 浏览: 942311 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

公司系统中的菜单功能和权限功能

 
阅读更多
在到过几家公司上班,都有见到类似的菜单和权限的设计,先看图



这个是应用的界面图。这种设计和我以前的理念有很大区别,我对设计菜单和权限时候,会绝对的把菜单和权限看成是两个完全没有直接关系的模块,权限是权限,菜单是菜单。如,权限查看学生,只是一个表示STUDENT_VIEW,而这个权限具体到能干嘛,它本身不知道。然后它和角色关联起来后,那么属于这个角色的用户,就自然而然的拥有了STUDENT_VIEW这个权限了,但是这个时候,对于权限本身能完成那些工作,依然是未知的。

随后比如在一个实际的查看学生,搜索学生等等功能,都会验证当前用户是否具有这个权限。

而菜单实际上和权限之间是隔离的,基本上不需要知道权限。当然有个特殊的情况就是菜单要求不具备执行该功能的权限,那么就不显示,那这也只是在显示菜单之前,做一次验证是否有某个权限,然后绝对要不要显示而已。

而对于这类设计,则很是迷惑。通过不断查看这类设计的代码,算了明白了怎么回事了。

以在北京某家公司的设计为例(其他公司的应该也类似),具有一张表permission(权限ID,应用ID【应用ID的作用将会在我理解了应用管理之后,发表新的文章解释】以及一个链接字段URL),这里可以看到的是,权限实际上就已经是某个链接了。

然后是菜单(要理解这种理念,就必须要先理解权限,然后是菜单,最后才是角色),菜单的基本属性之类的则不解释了,关键在于这种设计中,菜单的链接是无法设置的,是通过菜单把权限关联起来(在功能使用的时候,是通过导入应用入口的功能来和实际的某条permission联系起来),通过权限,来得到URL。

角色,这个时候菜单才是角色所具有的权限(上面说的permission表并不是角色所直接拥有的权限关系了)。

第一种理念个人更加推荐使用,举个两种理念的区别:
查看某个学生详细信息和搜索学生记录,都需要具有STUDEN_VIEW权限
那么第一种理念就更加易于使用

而第二张实际上链接才是真正的权限,那么查看某个学生详细信息和搜索学生记录实际上是两个URL,这个角色就必须同时具有这两个链接的菜单的权限。而第一种理念也更加符合单一原则和RBAC(Role-Based Access Control,基于角色的访问控制)的设计方式。
  • 大小: 8 KB
分享到:
评论
1 楼 weituotian 2016-10-10  
说的不好,没人看的

相关推荐

    ASP.NET Core3.0版 权限管理系统源码

    菜单管理:配置系统菜单,操作权限,按钮权限标识 通用字典:系统里动态改变的数据,用字典进行维护,不变的数据,可以用枚举 行政区划:全国的省市县三级数据,展示树形数据的使用 系统日志(登录日志、操作...

    Winner权限管理系统 新一代web系统开发利器

    Winner权限管理系统(又称:胜利者权限管理系统)是一款基于PHP+Mysql开发的web基础系统,系统内置用户管理、组别管理、部门管理,同时系统还能动态开启子公司,当您的公司有多家分公司时,这个功能可方便您的操作。...

    WEB通用权限管理系统源码

    9.角色分级,集团和分公司的关系 10.权限 横向就是业务部分,具体负责哪块业务,纵向是级别 11.动态报表设置,并且可以导出Excel 12.登陆日记,操作日记,异常日记 13.海量批量删除数据库,调用公共存储过程,参数,...

    基于.NET Core Web开发的权限管理系统源码,代码易读易懂、界面简洁美观

    菜单管理:配置系统菜单,操作权限,按钮权限标识 通用字典:系统里动态改变的数据,像文章类型,用字典进行维护,不变的数据,可以用枚举 行政区划:全国的省市县三级数据,展示树形数据的使用 系统日志(登录日志...

    基于 SpringBoot、Spring Security、JWT 的前后端分离的通用权限管理系统,个人学习,快速搭建模板

    - 菜单管理:配置系统菜单,操作权限,按钮权限标识等。 - 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 - 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 - 参数管理:对系统...

    基于SpringBoot、mybatis、Shiro的权限管理系统

    菜单管理:配置系统菜单,操作权限,按钮权限标识等。 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 参数管理:对系统动态配置...

    基于经典领域驱动设计的权限管理系统 .zip

    菜单权限 经理和业务员登陆系统拥有的功能菜单是不一样的 按钮权限 经理能够审批,而业务员不可以 数据权限 A业务员看不到B业务员的单据 字段权限 某些人查询客户信息时看不到客户的手机号或其它字段 用户...

    基于SpringBoot的前后端分离权限管理系统源码(附数据库+项目说明).zip

    菜单管理:配置系统菜单,操作权限,按钮权限标识等。 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 参数管理:对系统动态配置...

    基于 SpringBoot2.0 的部门权限管理系统.zip

    菜单管理:配置系统菜单,操作权限,按钮权限标识等。 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 参数管理:对系统动态配置...

    SpringBoot管理后台项目源码

    菜单管理:配置系统菜单,操作权限,按钮权限标识等。 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 参数管理:对系统动态...

    SpringBoot 权限管理系统 适合毕业设计

    菜单管理:配置系统菜单,操作权限,按钮权限标识等。 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 参数管理:对系统动态配置...

    梦赢开源权限管理系统 v2.0.zip

    Winner权限管理系统(又称:胜利者权限管理系统)是一款基于PHP Mysql开发的web基础系统,系统内置用户管理、组别管理、部门管理,同时系统还能动态开启子公司,当您的公司有多家分公司时,这个功能可方便您的操作。...

    基于SpringBoot+Vue前后端分离的健身房系统源码.zip

    菜单管理:配置系统菜单,操作权限,按钮权限标识等。 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 参数管理:对系统动态配置...

    ASP.NET权限管理系统源码

    菜单管理:配置系统菜单,操作权限,按钮权限标识 通用字典:系统里动态改变的数据,用字典进行维护,不变的数据,可以用枚举 行政区划:全国的省市县三级数据,展示树形数据的使用 系统日志(登录日志、操作...

    梦赢开源权限管理系统 v2.0.rar

    Winner权限管理系统(又称:胜利者权限管理系统)是一款基于PHP Mysql开发的web基础系统,系统内置用户管理、组别管理、部门管理,同时系统还能动态开启子公司,当您的公司有多家分公司时,这个功能可方便您的操作。...

    基于Vue+ SpringBoot的企业级在线办公系统源码+数据库,集成flowable,通过钉钉小程序访问部分功能

    菜单管理:配置系统菜单,操作权限,按钮权限标识等。 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 参数管理:对系统动态配置...

    基于Django-Vue-Admin毕业设计-企业级后端管理系统

    菜单管理:配置系统菜单,操作权限,按钮权限标识、后端接口权限等。 部门管理:配置系统组织机构(公司、部门、角色)。 角色管理:角色菜单权限分配、数据权限分配、设置角色按部门进行数据范围权限划分。 权限...

    Winner权限管理系统2.0正式版

    Winner权限管理系统(又称:胜利者权限管理系统)是一款基于PHP+Mysql开发的web基础系统,系统内置用户管理、组别管理、部门管理,同时系统还能动态开启子公司,当您的公司有多家分公司时,这个功能可方便您的操作。...

    基于RuoYi-VUE版本开发开源OA协同办公系统源码 集成Flowable流程引擎 可自由选择提交的流程

    4.菜单管理:配置系统菜单,操作权限,按钮权限标识等。 5.角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 6.字典管理:对系统中经常使用的一些较为固定的数据进行维护。 7.参数管理:对系统...

    react实现菜单权限控制的方法

    通常公司的后台管理系统都需要权限控制,即不同的角色用户看到不同的菜单,如下图: 下面,通过react实现这样的后台管理系统(脚手架),功能简介: 1.顶部的菜单项根据用户的角色动态生成。 2.侧边测菜单项根据已...

Global site tag (gtag.js) - Google Analytics