OA中用户角色权限问题

你猜我猜不猜拉 2009-05-20 10:38:28
加精
一个用户进入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系统有三个功能,新闻发布,新闻查看,新闻管理,然后他根据不同的角色,比如说让总经理都有这些功能,让普通员工只有新闻查看的这个功能。虽然这样的做法在一定程度上解决了权限的问题,但是如果 “新闻管理”这个功能,所有角色都应该有这个功能,不同的是,不同角色看到的信息是不一样的,比如说总经理就看到所有人的,并且可以删,经理看到自己本部门的,员工只能看自己的。这个时候我就没法知道他到底是部门经理呢?还是什么呢?


希望高手能给我个思路,解决办法!谢谢各位咯!
...全文
7592 211 打赏 收藏 转发到动态 举报
写回复
用AI写文章
211 条回复
切换为时间正序
请发表友善的回复…
发表回复
sbc86 2011-05-02
  • 打赏
  • 举报
回复
哇,真是学到了不少知识啊,在这里,谢谢大家啊

http://www.zs760.net
prettymaiden 2011-04-30
  • 打赏
  • 举报
回复
怎么看不到前面的
xu_119 2010-11-01
  • 打赏
  • 举报
回复
to:wanhot
===========
哥很鄙视你啊,太装逼了你
shaluo520 2010-05-11
  • 打赏
  • 举报
回复
看看~~
gaodaweimeng 2010-05-11
  • 打赏
  • 举报
回复
五张表就行了,至于你说的不同部门的经理,肯定要添加不同的角色啦.不要想的太复杂了.
dj1990 2010-05-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jijunwu 的回复:]
5个表
权限表--关联表--角色表--关联表--用户表
treeview显示菜单
[/Quote]


同意,5张表就可以搞定,我做过OA的权限管理这块
shaluo520 2010-04-13
  • 打赏
  • 举报
回复
学习````
masky5310 2010-04-11
  • 打赏
  • 举报
回复
MARK
S314324153 2010-03-08
  • 打赏
  • 举报
回复
收藏
回复内容太短了!
planetike 2009-11-28
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 weihuaifa 的回复:]
可以参考一下
SQL codeuse OASystemgocreatetable Users(--用户UserIDintidentity(1,1)primarykey,
UserNamevarchar(30)notnull,
PassWordvarchar(30)notnull)gocreatetable Roles(--角色RoleIDintidentity(1,1)primarykey,
RoleNamevarchar(30)notnull,
RoleDescriptionvarchar(100))gocreatetable Modules(--菜单ModuleIDintidentity(1,1)primarykey,
ModuleNamevarchar(30)notnull,
ModuleUrlvarchar(200)null,
ParentIDintnotnull,
ModulePositionintnotnull,
ImageUrlvarchar(100))gocreatetable UserRoleRel(--用户和角色关联表IDintidentity(1,1)primarykey,
UserIDintnotnullreferences Users(UserID),
RoleIDintnotnullreferences Roles(RoleID))GOcreatetable RoleModuleRel(--角色和菜单功能关联表IDintidentity(1,1)primarykey,
RoleIDintnotnullreferences Roles(RoleID),
ModuleIDintnotnullreferences Modules(ModuleID))
[/Quote]

这个有点像通达OA的,我觉得很不错。
Andytuoye 2009-10-23
  • 打赏
  • 举报
回复
六个表
权限表--关联表--角色表--关联表--用户表
菜单表
  • 打赏
  • 举报
回复
up
hnsdwhl 2009-09-24
  • 打赏
  • 举报
回复
学习
浪哥不用桨 2009-09-23
  • 打赏
  • 举报
回复
搞技术的怎么也变得这么龌龊了呢?世风日下
xmmlanya 2009-09-04
  • 打赏
  • 举报
回复
学习中,顶上去
Xinney 2009-06-15
  • 打赏
  • 举报
回复
很不错的贴子,支持楼主!
鄙视看起不菜鸟的人!!!
mark620 2009-06-03
  • 打赏
  • 举报
回复
用户对应角色,角色对应功能权限。
我们系统都这样做的。
B/S&C/S均可。
  • 打赏
  • 举报
回复
用户表、角色表、用户角色表、角色权限表、权限菜单表
先给角色分配权限 然后给用户分配角色 我们系统基本都是这样的。百试不爽。
jye123 2009-06-03
  • 打赏
  • 举报
回复
收藏先,等以后遇到类似问题时再细看
jack-09-wong 2009-06-03
  • 打赏
  • 举报
回复
[Quote=引用 167 楼 renyanping 的回复:]
对于权限的控制,若要灵活,可采用设置用户组(即岗位)的方式,再给用户组定义相应的权限,比如:总经理、部门经理、普通员工,各用户组上设置需要的权限(也就是可访问的菜单模块),然后用户的管理也只是设置其属于那个用户组而已,属于某个用户组也就有该用户组上设置的所有权限(还有大型的更复杂灵活的一些软件中更是在设置了用户组的基础上,仍可自定义给该用户添加其他的模块访问权限);


对于数据权限…
[/Quote]

用一个类型表 以TreeView的形式 表达
加载更多回复(179)

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧