Foxtable(狐表)用户栏目专家坐堂 → 重开一贴,继续讨论角色授权的问题,请BIN老师、狐爸进来指点下!


  共有7902人关注过本帖树形打印复制链接

主题:重开一贴,继续讨论角色授权的问题,请BIN老师、狐爸进来指点下!

帅哥哟,离线,有人找我吗?
wengfuyy
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:125 积分:918 威望:0 精华:0 注册:2013/4/12 2:00:00
重开一贴,继续讨论角色授权的问题,请BIN老师、狐爸进来指点下!  发帖心情 Post By:2013/5/9 21:44:00 [只看该作者]

我想继续对角色授权与用户授权的区别作以下分析,以此证明用户授权的代码是不适用于角色授权的。
我先申明,对于每个用户都只属于一个角色的情况,BIN老师的代码是可行的。
下面主要想分析下一个用户属于两个角色时权限叠加的情况。
还是先说用户授权方式吧,如下图:

图片点击可在新窗口打开查看此主题相关图片如下:f08.png
图片点击可在新窗口打开查看
王五同时拥有图中两个权限时,得到的最终的权限是:王五看不到表A的第三列,不能编辑表A的第八列。
再看角色授权方式的情况,如下图:

图片点击可在新窗口打开查看此主题相关图片如下:f07.png
图片点击可在新窗口打开查看
现在的情况是王五同时拥有“角色一”和“角色二”两个权限。对于表A的第三列而言,虽然角色一是不可见,但是由于对角色二是可见的,所以叠加后的权限王五来说是可见的;再看表A的第八列,对于角色一是可以编辑的,对于角色二是不可编辑的,叠加后权限王五来说是可编辑的。
所以,得到的最终结果是:表A的对王五是无任何限制的,是即可见,又可编辑的。
这与第一个图所说的用户授权区别是非常大的。所以,对于角色授权来说,代码肯定是要重新编写的。
希望BIN老师继续改进和完善。
也希望狐爸出来说句话,我们都花了这么多脑细胞,也希望你出来说句权威的话吧!!!

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40608 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/5/9 21:52:00 [只看该作者]

将角色保存在用户管理中,多个角色用分隔符隔开,授权时循环根据角色调用,您的问题将会迎刃而解!

 回到顶部
帅哥哟,离线,有人找我吗?
wengfuyy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:125 积分:918 威望:0 精华:0 注册:2013/4/12 2:00:00
  发帖心情 Post By:2013/5/9 22:53:00 [只看该作者]

回程老师:目前BIN老师的方案就应该你说的这样的,但是不行。
我认为你们还是没有仔细分析过角色授权的细节。

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40608 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/5/9 23:34:00 [只看该作者]

呵呵,那您就自己分析吧!

 回到顶部
帅哥哟,离线,有人找我吗?
实话实说
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2013/5/10 0:18:00 [只看该作者]

将第2表的角色二改为角色一,将角色一授予王五不就行了。设计角色授权方式时不能将几个矛盾的角色赋予用户。

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40608 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/5/10 2:49:00 [只看该作者]

用户管理表:

 

用户ID  用户姓名   用户角色

001       张三         角色1,角色2

002       李四         角色2  

003       王五         角色1,角色3

……       ……         ……

 

角色设置表:

角色名称  表名称     列名称    编辑     可视

角色1       表A       第一列    true     true

角色1       表A       第二列    false     true

角色2       表A       第三列    false     true

角色3       表B       第一列     false    true

角色3       表B       第二列     true    true

 

授权表:

用户ID     用户姓名     用户角色     表       列          编辑   可视

  001         张三          角色1       表A   第一列       true   true

  001         张三          角色1       表A   第二列       false   true

  001         张三          角色2       表A   第三列       false   true

  002         李四          角色2       表A   第三列       false   true

  003         王五          角色1       表A   第一列       true    true

  003         王五          角色1       表A   第二列       false   true

  003         王五          角色3       表B   第一列       false    true

  003         王五          角色3       表B   第二列        true    true

…… …… ……

 

摆弄好上面三张表,权限校验时find该用户授权表中符合条件的行,找到即通过,找不到则没有权限,其他的不用我再多说!

 

现在您在回过来看我是不是没经过研究只管给您说大白话!

 

 

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40608 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/5/10 2:51:00 [只看该作者]

这样做,您甚至可以指定角色,同时添加多个非固定角色的其他独立授权,应用起来更加灵活多变!

 回到顶部
帅哥哟,离线,有人找我吗?
wengfuyy
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:125 积分:918 威望:0 精华:0 注册:2013/4/12 2:00:00
  发帖心情 Post By:2013/5/10 11:04:00 [只看该作者]

谢谢!
是的,我认为程版主目前的分析是对的,这也证明我之前的说法:角色授权的复杂性要远远高于用户授权,不能套用原来的代码,甚至授权表都要重新规划。程版主的方案中,将原来“不可见、不可编辑”改成了“可视、编辑”,便是证明。
但是,我认为程版主的第三张“授权表”应该是前两张表通过代码生成的,如果再手工去维护这张表,就冗余了。
下面,我抛砖引玉,阐述下我对后续的设计思路,可能还不成熟,不对之处请指正:
一、不能使用原来用户授权中逐条引用授权表里的内容去逐条进行权限设置的思路,借用上面的表格,稍作修改,分析如下:

授权表:

用户ID     用户姓名     用户角色     表       列          编辑   可视

  001         张三          角色1       表A   第一列       true    true

  001         张三          角色2       表A   第一列       false   true

如果采用逐条设置权限的方法,最后的结果是:张三对表A的第一列是没有编辑权限的,但实际上,这两权限叠加的结果是:他应该是有这个权限的。


二、设计思路:要将该用户对同一表,或者同一列的权限进行逻辑”或“运算后,将得到的结果一次性设置。就拿上表来说吧:

张三在角色1中对表A第一列的编辑权是true(1),在角色2中对应的权限是false(0),那么:根据 0+1 = 1,所以张三对表A第一列的最终权限是true(1),根据这个结果进行设设置即可。


三、希望狐表公司能拿出最终的解决方案和代码,让用户能够稍加修改就使用,而不是在这里进行学术交流。

再次谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
wengfuyy
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:125 积分:918 威望:0 精华:0 注册:2013/4/12 2:00:00
  发帖心情 Post By:2013/5/10 11:12:00 [只看该作者]

以下是引用实话实说在2013-5-10 0:18:00的发言:
将第2表的角色二改为角色一,将角色一授予王五不就行了。设计角色授权方式时不能将几个矛盾的角色赋予用户。
你的说法是不对的。


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/5/10 11:22:00 [只看该作者]

 .
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目8.foxdb


可能我没明白你想表达的情况,根据你图片的的情况.是不会冲突的.

 回到顶部
总数 35 1 2 3 4 下一页