一个OA系统的权限设计
2008-02-27 15:05
393 查看
最近研究一个OA系统的代码,来说说它权限设计的这部分吧。
数据库中与之相关的包含九个表,Action(动作表),Department(部门表),Employee(职工表),Function(模块表),Role(角色表),Purview(权限表),此外还有EmpDep(确定职工与部门的联系),FuncAct(确定模块与操作的联系),EmpRole(职工与角色的联系)。
简单来说就是每个职工(Employee)有相应的工作部门(Department)以及角色(Role),而每一个模块也有相应的操作(Action)。下面来看看Purview表的结构:
因此,一个职工在某一模块有没有操作权限只要看他在purview表中存不存在Role_ID,Func_ID,Act_ID与这个职工的一样即可。
存储过程如下:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER procedure [dbo].[CheckPurview]
@Role_ID bigint,
@Func_Name nvarchar(50),
@Act_Name nvarchar(50),
@Succeed bit output
as
if exists(select * from purview
where role_id=@Role_ID
and func_id in(select func_id from [function] where func_name=@Func_Name)
and act_id in(select act_id from [Action] where act_name=@Act_Name)
)
begin
set @Succeed=1
end
else
begin
set @Succeed=0
end
数据库中与之相关的包含九个表,Action(动作表),Department(部门表),Employee(职工表),Function(模块表),Role(角色表),Purview(权限表),此外还有EmpDep(确定职工与部门的联系),FuncAct(确定模块与操作的联系),EmpRole(职工与角色的联系)。
简单来说就是每个职工(Employee)有相应的工作部门(Department)以及角色(Role),而每一个模块也有相应的操作(Action)。下面来看看Purview表的结构:
Gu_ID | 主键 |
Role_ID | 外键(role) |
Func_ID | 外键(Function) |
Act_ID | 外键(Action) |
存储过程如下:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER procedure [dbo].[CheckPurview]
@Role_ID bigint,
@Func_Name nvarchar(50),
@Act_Name nvarchar(50),
@Succeed bit output
as
if exists(select * from purview
where role_id=@Role_ID
and func_id in(select func_id from [function] where func_name=@Func_Name)
and act_id in(select act_id from [Action] where act_name=@Act_Name)
)
begin
set @Succeed=1
end
else
begin
set @Succeed=0
end
相关文章推荐
- 如何给多个子系统设计一个简单通用的权限管理方案?(详细讲解及源代码下载)
- OA系统之流程权限设计
- 以一个权限系统来告别WebForm —(一)项目整休架构设计与数据库设计
- 设计OA系统的用户-角色-权限分配
- OA系统 权限管理的设计流程
- 如何在自己的信息管理系统里集成第三方权限控制组件 - 设计一个漂亮的WEB界面
- OA系统权限模型设计
- 一个Web系统OA界面设计和开发
- [转]一个Web系统OA界面设计和开发
- OA系统权限管理设计方案
- OA系统权限管理设计方案
- 一个权限管理系统如何设计
- oa系统设计---如何设计权限
- OA系统权限管理设计(转载)
- OA系统权限管理设计方案
- OA系统权限管理设计(转载)
- (转)OA系统权限管理设计方案
- 一个Web系统OA界面设计和开发
- 跟着汤阳光同志做一个OA系统(六):系统管理、实体映射、类图设计
- 我设计的一个基于RBAC模型的通用权限管理系统的域模型类图