有关权限设计问题。

joja 2003-03-27 05:00:39
各位大虾,我目前正开发一个工作日志模块。现在在权限设计上碰到点问题。也就是说:我希望老总级的人物能看到所有的文档,部门经理能看到本部门的所有文档,而普通员工只能看到自己的工作日志文档。如何实现希望大家能提供一些设计思路, 万分谢谢!
...全文
35 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
dbbdggdbbdgg 2003-07-20
  • 打赏
  • 举报
回复
http://www.peoplewarecn.com/xprogrammer/XProgrammer26.pdf
安全模型的一种模式语言
http://www.peoplewarecn.com/xprogrammer/XProgrammer25.pdf
基于角色访问控制的UML表示

供参考
joja 2003-03-31
  • 打赏
  • 举报
回复
具体需求也非常简单。部门肯定是要动态添加的,写死的话,维护量就相对比较大。能不能通过LS动态添加某个数据库的角色。如何实现呢?
cjxs 2003-03-31
  • 打赏
  • 举报
回复
可以动态设定角色的,方法如下:

'/以下例子是把当前用户设置为"[管理员]"角色:
dim session as new NotesSession
dim db as NotesDatabase
dim acl as NotesACL
dim aclentry as NotesACLEntry

set db=session.CurrentDatabase '/当前数据库
set acl=db.ACL '/当前数据库的ACL

set aclentry=acl.GetEntry(session.UserName) '/取当前用户在当前数据库的ACL权限
if aclentry is nothing then
msgbox "当前用户不包括在ACL列表中。"
else
call aclentry.EnableRole("[管理员]")
'/如果取消角色则:call aclentry.DisableRole("[管理员]")
end if


另外,如果希望权限维护方便可靠,建议多些使用“群组”。
cooler 2003-03-30
  • 打赏
  • 举报
回复
为个人确定群组我知道,那么请问如何为个人确定角色呢?
cjxs 2003-03-30
  • 打赏
  • 举报
回复
具体如何实现还需要好好的规划,请描述一下具体的需求。
如果真得要建立较多的角色,也总比直接加入个人姓名而好。

joja 2003-03-29
  • 打赏
  • 举报
回复
那也就是说公司有软件部、网络部、财务部的部门就要设置相应的不同角色,有几个就要加几个吧?这样岂不是要加很多的角色
能不能直接就添加一个[部门经理]的角色然后在文档打开的时候进行两重判断:当前用户必须拥有部门经理角色和必须是该部门的人员时才能阅览该文档呢?。
Apollojay 2003-03-28
  • 打赏
  • 举报
回复
用读者作者域,我觉得很好用!
alian1974 2003-03-28
  • 打赏
  • 举报
回复
用角色不控制不是更好.
joja 2003-03-28
  • 打赏
  • 举报
回复
to:all

多谢各位,现在已经有了思路。但在具体实施方面还会碰到不少的问题。希望大家多多指教!!!
cslion 2003-03-28
  • 打赏
  • 举报
回复
上面说的 已经能够满足了!不知joja (百事超人) 已经解决问题没有??
水煮蛙 2003-03-28
  • 打赏
  • 举报
回复
楼上说的 已经能够满足了!
cjxs 2003-03-28
  • 打赏
  • 举报
回复
确切如此,在读者域里可以使用角色。但角色名需要这样表示“[角色名]”。还需要注意的是一个库内最多好像只能使用50角色,所以如果你的权限分类特别多,这个也是不能满足的。
joja 2003-03-28
  • 打赏
  • 举报
回复
cjxs(cjxs)说的正是我现在碰到的问题,往文档读者域里写进用户比较容易实现,但是当部门人员有变的时候,文档的读者域不会自动更新。这样必需在设置部门人员的时候通过代码去刷新所有相关文档的读者域。而且所有的文档都必须在可编辑的状态下才能改变。

你说的面一种方法比较好。但是不是直接把角色名(群组名)添加加到读者域里就能自动任到拥有改角色(群组)中的人呢?
cjxs 2003-03-27
  • 打赏
  • 举报
回复
我也同意使用“读者域”来控制,事实也只有这样做也是最安全的。但是,这样做也会带来一些维护的工作量,就是出现人事调动时,可以需要通过一些程序来修改,读者域是单独存放在文档中的,如果文档数目很多,这样的处理显然是比较费资源的,权限维护起来不够方便。

我有一方法可供参考,就是引用“角色”+“读者域”,或者“群组用户”+“读者域”来控制。实现的时候只虽然在文档中的“读者域”中添加“角色名”或“群组名”就可以实现,维护的时候只简单地维护那些角色和群组即可。
jiaojianjj 2003-03-27
  • 打赏
  • 举报
回复
同意,读者域最好隐藏,如果需要修改,可以加写者域加以控制
flyeyer 2003-03-27
  • 打赏
  • 举报
回复
可以通过读者域进行控制,首先在表单中添加“读者域”,当文档被创建时,当前文档的创建人被自动写进读者域,然后根据当前用户的部门找到部门的经理写进读者域,最后找到公司老总(公司领导)将其写进读者域,这样就可以把权限控制住。

535

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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