OA中用户角色权限问题
一个用户进入OA,我怎么知道他是普通员工,还是经理,还是总经理呢,然后对应用业务操作不同呢?比如说普通员工可以看到自己的数据,经理可以看到自己部门所有员工的,总经理不仅可以看到整个公司所有员工的,还可以对每位员工的数据进行删,改,查。
我现在又一个User表
UId UName DeptID(部门ID)
1 张三 1
2 李四 2
3 王五 2
4 赵六 3
5 赵七 3
部门表:Dept
DId DName DParentID(父节点ID)
1 总经办 0
2 销售部 0
3 人事部 0
最终的树形展示:
总经办
|________张三(总经理)
|
销售部
|________李四 (部门经理)
|
|________王五(普通员工)
|
销售部
|________赵六 (部门经理)
|
|________赵七(普通员工)
可能有人会说,我可以再添加一个角色表(Role)
RoleID RoleName
1 总经理
2 部门经理
3 普通员工
这样虽然有了个角色概念,用1,2,3代表不同的角色,那难道让我在程序里判断if(角色ID=="1")...那如果这个公司又增加了一个新的角色,比如说:秘书,用4表示,那我对应整套OA只要是设计的权限部门的都要再加一个判断,判断是否等于4吗?这些我觉得是不可行的。
可能是我的思路问题,但是我不知道像这样的系统,是怎么处理权限的问题的,根据不同的角色,进行不同权限的业务逻辑。
我看了,网上免费的OA系统,他好像是给Role分配功能权限,意思就是比如说这个OA系统有三个功能,新闻发布,新闻查看,新闻管理,然后他根据不同的角色,比如说让总经理都有这些功能,让普通员工只有新闻查看的这个功能。虽然这样的做法在一定程度上解决了权限的问题,但是如果 “新闻管理”这个功能,所有角色都应该有这个功能,不同的是,不同角色看到的信息是不一样的,比如说总经理就看到所有人的,并且可以删,经理看到自己本部门的,员工只能看自己的。这个时候我就没法知道他到底是部门经理呢?还是什么呢?
希望高手能给我个思路,解决办法!谢谢各位咯!