您的位置:首页 > 其它

办公系统中经常遇到的权限管理问题 (一)解决方案

2015-03-26 14:27 501 查看
近期做系统开发的时候研究了一下简单的用户授权功能,针对问题作出如下设计

A 用户所领导 ,A有审批 某项经费的权利 , A出差期间不方便进行经费审批,所以这个过程中需要将自己的这项权限委托给相关人员,这个委托过程,尽量的少泄露不必要的用户个人信息。所以便有了 ,A用户针对系统中某一项审批功能授权给 B用户,这个授权有时间期限,开始时间,结束时间,过期后系统会自动收回授权。这个回收授权的过程需要保存历史记录,以供后期查询。

表名称:sys_user_delegate 用户设置代理用户角色关系表

字段名称
数据类型
长度
描述
主键(是/否)
非空(是/否)
备注
ID
Varchar
64
主键


User_id
varchar
64
授权人ID


Delegate_uid
Varchar
64
代理者ID


被授权人
Start_time
Datetime
授权开始时间
End_time
Datetime
授权结束时间
Role_id
Varchar
64
授权的角色ID
Is_validate
Char
1
是否激活
是否激活0,激活;1未激活
Is_history
Char
1
是否进入历史

是否进入历史,0,否;1,是;
Create_by
Varchar
64
创建者
Create_date
Datetime
创建时间
Update_by
Varchar
64
修改者
Update_date
Datetime
修改时间
Remarks
Varchar
255
备注信息
Delete_flag
Char
1
删除标记

表名称:sys_user_delegate_log 代理用户 操作 资源 日志表

字段名称
数据类型
长度
描述
主键(是/否)
非空(是/否)
备注
ID
Varchar
64
主键


Delegate_instance_id

Varchar
64
关联sys_user_delegate
的ID
Operation_resource
Varchar
200
用户操作资源主业务对象信息
Operation_resource_id
Varchar
64
用户操作资源的ID
Operation_time
Datetime
用户操作时间
Create_by
Varchar
64
创建者
Create_date
Datetime
创建时间
Update_by
Varchar
64
修改者
Update_date
Datetime
修改时间
Remarks
Varchar
255
备注信息
Delete_flag
Char
1
删除标记

系统的基本架构 user 表,user_role 表 ,role 表 , role_menue表

系统先期设计的时候需要考虑,将role 划分为可以被授权的角色,和不可以授权的角色,因为不是所有的角色都需要被授权。切这个授权不能传递,就是说A将某项权限赋予给B,B不能再讲某项权限授予C。 这个设计过程中默认的采用的是授权只能授予本部门的人员,不能跨部门授权,因为这个跨部门授权的过程可能更加复杂。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐