在到过几家公司上班,都有见到类似的菜单和权限的设计,先看图
这个是应用的界面图。这种设计和我以前的理念有很大区别,我对设计菜单和权限时候,会绝对的把菜单和权限看成是两个完全没有直接关系的模块,权限是权限,菜单是菜单。如,权限查看学生,只是一个表示STUDENT_VIEW,而这个权限具体到能干嘛,它本身不知道。然后它和角色关联起来后,那么属于这个角色的用户,就自然而然的拥有了STUDENT_VIEW这个权限了,但是这个时候,对于权限本身能完成那些工作,依然是未知的。
随后比如在一个实际的查看学生,搜索学生等等功能,都会验证当前用户是否具有这个权限。
而菜单实际上和权限之间是隔离的,基本上不需要知道权限。当然有个特殊的情况就是菜单要求不具备执行该功能的权限,那么就不显示,那这也只是在显示菜单之前,做一次验证是否有某个权限,然后绝对要不要显示而已。
而对于这类设计,则很是迷惑。通过不断查看这类设计的代码,算了明白了怎么回事了。
以在北京某家公司的设计为例(其他公司的应该也类似),具有一张表permission(权限ID,应用ID【应用ID的作用将会在我理解了应用管理之后,发表新的文章解释】以及一个链接字段URL),这里可以看到的是,权限实际上就已经是某个链接了。
然后是菜单(要理解这种理念,就必须要先理解权限,然后是菜单,最后才是角色),菜单的基本属性之类的则不解释了,关键在于这种设计中,菜单的链接是无法设置的,是通过菜单把权限关联起来(在功能使用的时候,是通过导入应用入口的功能来和实际的某条permission联系起来),通过权限,来得到URL。
角色,这个时候菜单才是角色所具有的权限(上面说的permission表并不是角色所直接拥有的权限关系了)。
第一种理念个人更加推荐使用,举个两种理念的区别:
查看某个学生详细信息和搜索学生记录,都需要具有STUDEN_VIEW权限
那么第一种理念就更加易于使用
而第二张实际上链接才是真正的权限,那么查看某个学生详细信息和搜索学生记录实际上是两个URL,这个角色就必须同时具有这两个链接的菜单的权限。而第一种理念也更加符合单一原则和RBAC(Role-Based Access Control,基于角色的访问控制)的设计方式。
- 大小: 8 KB
分享到:
相关推荐
但在本系统中,菜单会根据用户的角色和权限进行动态生成。系统在用户登录后,根据数据库中用户的角色信息,查询对应的权限,然后根据这些权限生成用户可见的菜单。这种方式极大地提高了用户体验,同时也加强了系统的...
在企业级应用中,权限菜单是至关重要的,它控制着不同用户或角色对系统功能的访问,确保数据安全和操作合规性。这里的“多用户的菜单的权限设置例子”表明这是一个示例项目,演示了如何在PowerBuilder环境中为多个...
在业务系统中,通常有两种权限管理类型:功能权限管理和资源权限管理。功能权限指的是用户可以使用的系统功能,这种权限在不同系统间可以复用;而资源权限涉及具体的数据访问,如读取、修改特定文件或记录,这类权限...
在IT行业中,权限管理系统是构建复杂应用程序不可或缺的一部分,特别是在企业级应用中,它确保了数据安全性和用户访问控制。本示例"StudentSystem权限"是一个基于C#开发的权限管理系统,着重展示了如何实现动态加载...
在IT领域,权限管理是系统设计中的重要环节,特别是在企业级应用中,权限菜单树是一种常见且有效的解决方案。本文将详细解析"权限菜单树"这一主题,以及与之相关的EXT库和JavaScript菜单树的实现。 首先,让我们...
这个压缩包主要包含登录模块和权限控制相关的实现,对于开发者来说,这是一个很好的学习和参考资源,可以帮助理解如何在VB.NET环境中构建安全、有控制权的系统。 系统架构在软件开发中扮演着核心角色,它定义了系统...
菜单管理:配置系统菜单,操作权限,按钮权限标识 通用字典:系统里动态改变的数据,用字典进行维护,不变的数据,可以用枚举 行政区划:全国的省市县三级数据,展示树形数据的使用 系统日志(登录日志、操作...
菜单管理:配置系统菜单,操作权限,按钮权限标识 通用字典:系统里动态改变的数据,像文章类型,用字典进行维护,不变的数据,可以用枚举 行政区划:全国的省市县三级数据,展示树形数据的使用 系统日志(登录日志...
权限点管理系统是指对权限点的管理,包括菜单的权限、功能点的权限等。权限点可以从操作维度细拆,还可以拆成读权限(R)和写权限(W)。 (2)用户管理系统 用户管理系统是指对用户的管理,包括给谁分配什么权限...
总结来说,这个Java权限管理系统是一个结合了Struts2、Spring和Hibernate技术的Web应用,实现了用户权限和菜单权限的管理,同时具备公司办公自动化功能。这样的系统为企业的信息安全管理提供了有效支撑,确保了不同...
4. 添加内容区:使用Bootstrap的栅格系统(Grid System)或其他容器类来组织和布局后台的主要功能区域。 5. 交互与动态效果:利用jQuery和Bootstrap的JavaScript插件实现菜单的展开与折叠、模态对话框的弹出等交互...
Winner权限管理系统(又称:胜利者权限管理系统)是一款基于PHP+Mysql开发的web基础系统,系统内置用户管理、组别管理、部门管理,同时系统还能动态开启子公司,当您的公司有多家分公司时,这个功能可方便您的操作。...
资源包中包含的开发说明文档是开发者理解系统架构和实现的关键,它详细介绍了系统的设计理念、功能实现以及开发过程中的注意事项。源代码的提供则使得用户可以根据自身需求进行二次开发或定制,增强了系统的适应性。...
9.角色分级,集团和分公司的关系 10.权限 横向就是业务部分,具体负责哪块业务,纵向是级别 11.动态报表设置,并且可以导出Excel 12.登陆日记,操作日记,异常日记 13.海量批量删除数据库,调用公共存储过程,参数,...
Abis权限管理系统源码的出现,为开发者提供了一套完整的解决方案,特别适合快速搭建和开发具有严谨权限控制功能的应用。本文将深入探讨该系统的架构、主要功能模块及其在实际开发中的应用。 一、系统架构 Abis权限...
该系统涵盖了多个关键模块,包括登录功能、会议管理、客户管理、权限菜单管理、邮件管理、公司论坛以及会议室管理等。下面将详细阐述这些模块的功能与重要性。 1. 登录功能:这是任何系统的入口,通常包含用户验证...
在"大型EASYUI权限系统"中,EASYUI被用来构建用户友好的界面,通过直观的操作,实现对权限的管理和分配。 权限系统的核心在于角色与权限的管理。在本系统中,角色扮演了权限集合的角色,可以赋予不同的用户或用户组...
在本设计中,C#被用来实现权限控制和菜单功能。 4. **SQL Server数据库技术**:SQL Server是微软公司提供的关系型数据库管理系统,用于存储和管理数据。在设计中,SQL Server可能用于存储用户信息、角色定义和权限...