关于三楼楼长提供的OA系统问题
大家好,我现在正在看由三楼楼长提供的OA源代码,觉得非常不错.目前的主要问题是对其权限设计虽然看过了里面的文档资料,但还是一知半解,特别是数据库中的数据看不明白,特向大家请教.
比如:
uds_staff_in_role表
staff_id role_id
3 1
38 12
42 44
......
其中"1,12,44..."究竟代表什么意思?
又如:
uds_poistion表
Position_ID Super_Position_ID Position_Name Position_Description Department_ID
1 1 总裁 saf 0
2 80 销售总监 0
6 4 产品经理 0
......
其中"1,80,4"究竟代表什么意思?最后一个字段中的"0"代表什么意思?
或者请知道的兄弟说说树的权限究竟是如何确定的
问题点数:100、回复次数:40Top
1 楼skytear()回复于 2005-04-29 18:31:19 得分 5
三楼楼长的那个东西见过,每研究过,不过要控制树的权限,应该有很多方法啊。
主要就是控制节点的啊。生成树的时候检查其权限就好Top
2 楼RuimeiSoft(RuimeiSoft)回复于 2005-04-29 18:44:02 得分 20
role_id是角色
估计他使用的是基于数据库的角色认证
我认为这是一个很好的解决方案
你需要一个功能表,一个角色表,一个角色对应几个功能
同样一个人也可以对应几个角色
这样为不同的员工赋予不同的角色,又可以为不同的角色赋予不同的功能
这种权限管理符合很好的管理和拓展,也和.net framework的验证机理相吻合Top
3 楼RuimeiSoft(RuimeiSoft)回复于 2005-04-29 18:45:27 得分 5
当然你可能对功能进行枚举,当然也可以写入配置文件Top
4 楼loveyzy(菌哥)回复于 2005-04-29 19:05:52 得分 0
三楼楼长哪去了,来看看啊Top
5 楼onlytiancai(谁染枫林醉)回复于 2005-04-29 19:07:49 得分 20
这个问题确实值得讨论,其实用位域枚举我感觉不如用字符串来表示的好,我是这样想的
我这样设计的权限
[users]表 用户表
user_name 用户名
role_name 角色ID,对应role表的role_name
flag 权限字符串,对应flag表的flag_value,多个权限用逗号分隔开,如果启用自定义权限,这里讲起作用
dept_name 部门字段,对应dept表的dept_name
is_role_flag 是否使用默认的role权限,0表示使用默认role权限,1表示使用自定义权限
[role]表 角色表
role_id 角色ID
role_name 角色名称
flag 角色权限,对应flag表的flag_value,多个权限用逗号分隔开
[dept]表 部门表
dept_name 部门名称
dept_id 部门ID
[flag]表 权限表
flag_name 权限名称
flag_value 权限的值
这里比较有意思的是flag表,其实flag_name就对应程序中的各种用例,flag_value的编码要保持唯一并且带有一定意义,比如说你的系统里有新闻类(class news),日志类(class log),有邮件类(class mail),然后各个类里有好多方法,我们可以用一个4位的字符串来定义flag_value,前两位表示类,后两位表示方法,比如说我们定义news的代码为01,log的代码为02,mail的代码为03,然后可以这样
news.add 0101
news.edit 0102
news.del 0103
log.add 0201
log.del 0203
......
比如说role是新闻管理员,你可以让role_news_manage 的flag="0101,0102,0103",这样凡是属于role_news_manage的user都可以管理新闻了,然后可以启用自定义权限,你可以让一个人只能addnews,不能delnews,然后就设置user的flag比让is_role_flag为1
在用户登陆的时候把用户的flag存到session里,在指定某个方法的时候判断是否有权限
当然还有好多种情况,比如说user1属于role1,又属于role2,role1允许addnews,role2不允许addnews,这时候user1可不可以addnews
还有比如说新添加了一个用例,怎么分配flag_value,如何让所有的用户分配权限
Top
6 楼loveyzy(菌哥)回复于 2005-04-29 19:16:37 得分 0
楼上哥们说得不错,如果谁还没有这套OA系统的,我可以发,共同讨论Top
7 楼saintqiqi(钻石星辰(www.saintzone.net))回复于 2005-04-29 19:39:19 得分 20
最近也在做一个OA系统的权限
思路差不多,用了6个表
userbaseinfo 用户基本信息
role 角色表
function
basefunction 功能模块表 用了两个表,产生一个伸缩的二级菜单
感觉可以只用一个,懒得去改
userroles 用户角色分配表 一对多
rolerights 角色权限表 可以将权限细化到增,删,改 用的字符串标记
一个用户可以拥有多种角色,但登陆时只能选择一种角色进入
系统根据角色权限生成树型菜单Top
8 楼saintqiqi(钻石星辰(www.saintzone.net))回复于 2005-04-29 19:46:50 得分 0
不过我下载的三楼楼主提供的OA系统里
那个备份数据库还原时老是错误!
楼主可不可以把数据库发给我
saintqiqi@163.comTop
9 楼loveyzy(菌哥)回复于 2005-04-29 20:00:28 得分 0
好的,我现在就发,我还要告诉你,在你还原的时候就在选上"强制还原",就可以了
Top
10 楼saintqiqi(钻石星辰(www.saintzone.net))回复于 2005-04-29 20:25:50 得分 0
谢谢!Top
11 楼chenji9231(独哭E语:不是我不帮你,其实我也不知道)回复于 2005-04-29 21:22:19 得分 5
不好意思,这个系统我很熟了。
可以共同探讨。
QQ:376069358Top
12 楼wqjch(阿泥)回复于 2005-04-29 22:08:05 得分 0
楼主转发一份给我研究一下,
先谢谢,wqjch@163.comTop
13 楼xuwenzhuo(约定好了!我们会撑着那把油纸伞风雨同路、不分不离、吃到老玩到老。)回复于 2005-04-29 22:20:30 得分 0
随便发一分给我 winjer2001@163.comTop
14 楼fluxayxxx(阿茂)回复于 2005-04-29 22:37:46 得分 0
给我一份7758love7758@163.comTop
15 楼cuwlk(杜青)回复于 2005-04-29 23:08:47 得分 0
cuwlk@163.com
给我发一份.
Top
16 楼icd(骆驼)回复于 2005-04-29 23:45:47 得分 0
caogang@56.com
给我发一份研究一下.谢谢Top
17 楼netter2003(我知道错了,以后我会及时结贴。)回复于 2005-04-29 23:58:25 得分 0
我是用处理字符串实现的权限限分配
可以一对多
了可以一对一
Top
18 楼shasi(煞思病毒)回复于 2005-04-30 05:17:50 得分 0
给我看一份学习!谢谢Top
19 楼shasi(煞思病毒)回复于 2005-04-30 05:18:33 得分 0
shasibingdu@163.com
忘了地址Top
20 楼netstray()回复于 2005-04-30 07:56:50 得分 0
楼主能给我发一份学习学习吗?
gl.guan@gmail.comTop
21 楼wood_c()回复于 2005-04-30 08:08:54 得分 0
楼主给我发一份吧
mailclub@sina.comTop
22 楼onlytiancai(谁染枫林醉)回复于 2005-04-30 09:00:40 得分 0
分情况讨论吧,其实.net自带的认证和授权的相关类很好用了,可以自定义身份验证,自定义授权等,就是继承几个类就可以了,拿windows的权限系统来说吧
用户(user)可以属于用户组(role),文件 (file)可以属于文件夹(dir),文件夹(dir)还可以属于父文件夹(dir),然后可以给一个文件夹设置权限,然后这个文件夹下的子文件和子文件夹就都继承了这个文件夹的权限,文件夹可以针对用户组设置权限,也可以针对用户设置权限,而用户的子文件夹和子文件也可以针对用户和用户组设置权限,如果权限冲突的话,权限合并的规则是拒绝大于允许.
因为每个file或者dir可以设置的权限有好多种,有read,write,edit等,他是把这些权限以位域枚举的形式保存的,如果OA里要模拟这么复杂的权限系统的话,确实很复杂,我感觉难点在于.
1.权限的继承,如何设置一个类的访问权限,而继承自这个类的子类顺便继承它的权限
2.权限的细分,一个类可能有好多个方法,每个方法应该都可以设置访问许可,而各个类的成员不可能都一样,所以许可标识不能一概而论,这个比windows的文件夹权限负责,因为windows的权限就那规定的几种,读,写,修,删,追加等,程序里就比这个多样化了,有审批什么的.
3.权限的计算,比如说这个类允许role1访问,没有显式设置role2允许访问,而显式拒绝了role3的访问,而允许user1访问,但是user1又同时食欲role1,role2,role3三种角色,这时候权限如何叠加,如何换算,要有一套约定俗成的规则,类似的情况还可以列举好多种,要考虑到所有可能的情况才行.
4.关于特殊资源的访问授权,比如说我们要保护一些实体文件,可以控制他们的访问,在程序里如何控制,比如说office文档,图片文件,邮件等保存在硬盘上的东西,我们如何用程序控制让那些用户访问,而不让那些人访问呢?
5.新加功能的权限设置,比如说你的OA新增加了一个功能或者新引入了一个类,肯定得设置新的权限标识,难道要给所有的用户都重新设置一下权限,以便让某些人能用这个功能,某些人不能用吗?
好多呢,其实做一个坚实而又灵活有扩展性的权限系统不是很容易的事Top
23 楼aimcy(Debian)回复于 2005-04-30 09:18:36 得分 0
哪位大哥能把OA系统发一份给我
aimcy@163.comTop
24 楼chinawn(动性忍心)回复于 2005-04-30 09:26:04 得分 0
呵呵~大家一起学习Top
25 楼loveyzy(菌哥)回复于 2005-04-30 10:30:04 得分 0
如果熟悉这套系统的,能留下QQ吗?Top
26 楼xm0592(帮派体系)回复于 2005-04-30 10:44:28 得分 0
楼主给我发一份吧, 谢谢!
xm_0592@yahoo.com.cnTop
27 楼coolsundy(我向上飞。。决不后退。。)回复于 2005-04-30 11:09:58 得分 0
coolsundy@163.com
老大,发一份给我吧.我很需要的.谢谢.Top
28 楼loveyzy(菌哥)回复于 2005-04-30 11:24:32 得分 0
除了最后的两位,别的都发了,收到了吗
Top
29 楼hedonister(冰戈)回复于 2005-04-30 11:37:38 得分 0
UDS OA 下载
http://www.eading.com/download/oa.rar
自己下载去Top
30 楼wangasp(小虾一个)回复于 2005-04-30 12:15:10 得分 0
我下了,慢慢看看,和大家一起讨论!Top
31 楼wangasp(小虾一个)回复于 2005-04-30 12:15:32 得分 0
我靠,怎么这么大啊!Top
32 楼singlepine(小山)回复于 2005-04-30 12:37:31 得分 0
singlepine@sina.com
给我一份,谢谢Top
33 楼top1000(天天向上)回复于 2005-04-30 12:51:42 得分 0
一起学习!Top
34 楼jenycheng(听,雪的声音)回复于 2005-04-30 13:13:03 得分 5
to : hedonister(冰戈V2.0) ( ) 信誉:75
多谢 朋友 提供下载
谢谢Top
35 楼loveyzy(菌哥)回复于 2005-04-30 14:24:07 得分 0
等了这么长时间,就是没有等到完全了解uds oa的人,郁闷...Top
36 楼fanweiwei(黑暗凝聚力量,堕落方能自由)回复于 2005-04-30 14:48:35 得分 0
路过Top
37 楼aimcy(Debian)回复于 2005-04-30 14:56:26 得分 0
怎么登录不进去啊,提交以后就把页面关掉了????Top
38 楼chenji9231(独哭E语:不是我不帮你,其实我也不知道)回复于 2005-05-04 09:14:01 得分 0
To: aimcy()
因为你的浏览器把弹出窗口屏蔽掉了,所以不能打开程序窗口。
大家继续,我想我应该能好好和大家研究一下的。Top
39 楼chenji9231(独哭E语:不是我不帮你,其实我也不知道)回复于 2005-05-04 09:18:34 得分 20
To: loveyzy (菌哥)
答复:其中"1,80,4"究竟代表什么意思?最后一个字段中的"0"代表什么意思?
1,80,4 代表上级职位的ID号,最后一个字段的0是部门号,但是这个系统在我研究的时候还没有实现部门管理,所以都是默认的值0。
五一加班不能陪女朋友,郁闷!!!Top
40 楼therainman(一只郁闷的猪)回复于 2005-05-04 10:00:02 得分 0
强烈关注~~~~~~~~Top




