开放获取OA赋予用户的权限有哪些

如题所述

第1个回答  2022-01-06
可以通过不同划分管理权限:分组进行权限管理,根据角色权限管理,根据用户权限管理。

权限中定义的是用户和事情之间的关系,并没有涉及到角色。所以,如果不使用角色也可以实现成员资格管理。但是,角色作为某些用户的集合,这样对制定规格是更为方便、合理,也更符合业务逻辑的客观存在形式。 即:通过角色对用户进行权限管理。

权限管理系统功能分为:授权与认证

4、授权,指将权限授予角色或用户
a) 如果用户A拥有角色B、角色C,那么,缺省的情况下,用户A将拥有被分配给角色A和角色C的所有权限(即默认情况下,用户A继承其拥有的角色所具有的所有权限)
b) 如果用户拥有多个角色,那么用户的权限是这些角色权限的合集
c) 如果用户拥有多个角色,而且角色之间的授权有冲突(比如对同一个资源的同一个操作,一个角色为“允许”,另外一个角色为“不允许”),将以优先级别高的角色为准(所谓优先级别,也就是对于这个用户所拥有的角色而言,是有顺序的,同一个角色在不同的用户那里可能拥有不同的优先级)
5. 认证,指用户访问资源的某些操作时,根据授权,判断是否允许用户的访问
a)在用户访问的时候,需要进行即时的判断(是否有权访问)

员工职位=角色-》设置权限。权限有树形结构

为角色分配权限-》分配子权限,角色也就有父权限。

一、权限有哪些功能:控制哪些用户可以使用哪些功能。
1,初始化权限:
向数据库插入所有的权限数据,这个操作只在安装做一次。ps:权限没有增删改(因为功能已经开发完)
插入一个超级管理员用户,这个用户有所有的权限,并且他的权限不可以被修改与删除。
2,分配权限:
指定哪些用户有哪些权限(某权限就是使用某功能的许可,也就是某URL的访问许可)。
是给Role分配权限(用户的权限就是用户所有角色的权限的合集)。
3,使用权限:
1,用户登录后才能使用OA中的功能(登录、注销)。
2,左侧的菜单是根据权限显示的。
3,右侧页面中的链接是根据权限显示的。
4,验证每一个请求的权限,有权限才能访问。
权限= 操作+资源
控制权限---》控制url

二、整体思路
某权限就是使用某功能的许可,
一个功能就是一个多个URL(在ItcastOA中有两种情况):
1,一个功能对应1个URL,例:删除用户功能对应的URL是userAction_delete。
2,一个功能对应2个URL,例:添加用户功能对应的URL是userAction_addUI(添加页面的显示)与uesrAction_add。
功能的使用许可,也就是某URL的访问许可。
分配权限就是指定用户可以访问哪些URL(白名单)。
每个功能应对应一个唯一的名称,以便用户分配权限时看到的是名称,最终关联的还是URL。

--------- 举例 --------
资源:用户
操作:增、删、改、查、初始化密码
资源+操作 = 权限

用户增 userAction_addUI, userAction_add
用户删 userAction_delete
用户改 userAction_editUI, userAction_edit
用户查 userAction_list
用户初始化密码 userAction_initPassword
-----------------------

三、设计实体
权限分为三级:顶级菜单、二级菜单、右侧页面中的链接。
选中一个权限时,应同时选中所有直系上级的权限。
取消一个权限时,应同时取消他所有的下级权限(所有子孙权限)。
取消同级的所有权限时,就同时取消他们的上一级权限。

开发思路:

1)用户登录,登录成功后将登录用户放入Session,并将用户对应的角色和角色对应的权限立即查询
2)左侧菜单数据从数据库中获取
* 通过一个监听器,项目启动时加载权限数据,放入application作用域
* 用户登录成功之后,直接从application作用域中获取权限数据展示
3)左侧菜单按照登录人的权限展示
<s:if test="#session.loginUser.hasPrivilegeByName(name)">
4)在数据库中加入超级管理员,在程序中判断如果当前登录用户是超级管理员,就直接显示所有权限菜单
5)右侧连接和按钮按照权限显示

6)编写自定义拦截器,拦截用户的所有针对Action的请求

1,初始化权限:安装时:执行一次--》完成权限数据库的初始化,分配超级管理员

(用户通过批处理文件进行初始化权限数据表文件)

2,权限数据:即菜单栏的显示----》* 通过一个监听器,项目启动时加载所有权限数据,放入application作用域
* 用户登录成功之后,直接从application作用域中获取权限数据展示

监听器实现:

再web.xml中配置监听器

页面处理:从Session中获取登录用户,根据用户的角色最终获取对应的权限,判断用户的权限是否和当前循环出的权限是否一致,如果一致就显示

3,右侧连接和按钮按照权限显示
————————————————
版权声明:本文为CSDN博主「jongsuk_sun」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jongsuk_sun/article/details/93081424
相似回答