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


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

主题:重开一贴,继续讨论角色授权的问题,请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老师继续改进和完善。
也希望狐爸出来说句话,我们都花了这么多脑细胞,也希望你出来说句权威的话吧!!!

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


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
wengfuyy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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表的角色二改为角色一,将角色一授予王五不就行了。设计角色授权方式时不能将几个矛盾的角色赋予用户。
你的说法是不对的。


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


加好友 发短信
等级:幼狐 帖子:125 积分:918 威望:0 精华:0 注册:2013/4/12 2:00:00
  发帖心情 Post By:2013/5/10 11:33:00 [显示全部帖子]

请问BIN老师,我下载后怎么用?为什么文件是.foxdb后缀?

对于使用角色作为权限管理的做法,是任何软件的通用做法。可以不用管我是怎么说的,只要能提供一个可用的就行了。谢谢。
[此贴子已经被作者于2013-5-10 11:35:19编辑过]

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


加好友 发短信
等级:幼狐 帖子:125 积分:918 威望:0 精华:0 注册:2013/4/12 2:00:00
  发帖心情 Post By:2013/5/10 11:38:00 [显示全部帖子]

我是下载的试用版:)准备做一个东西出来后,再购买开发版。
[此贴子已经被作者于2013-5-10 11:38:04编辑过]

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


加好友 发短信
等级:幼狐 帖子:125 积分:918 威望:0 精华:0 注册:2013/4/12 2:00:00
  发帖心情 Post By:2013/5/10 11:51:00 [显示全部帖子]

回BIN老师:
1、第一次打开的时间出个错误提示:

图片点击可在新窗口打开查看此主题相关图片如下:f10.png
图片点击可在新窗口打开查看

2、你可能确实没有理解我的意思,我把两行都改成”第二列“后上传了,请你看看。
谢谢。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


[此贴子已经被作者于2013-5-10 11:54:24编辑过]

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


加好友 发短信
等级:幼狐 帖子:125 积分:918 威望:0 精华:0 注册:2013/4/12 2:00:00
  发帖心情 Post By:2013/5/10 11:57:00 [显示全部帖子]

1、以开发者的角色进系统时,会出现上图的错误。
2、在该用户的两个角色都对同一列有权限限制时,这个代码就不行。我认为这不是有无意义的问题,这种情况是客观存在的。
[此贴子已经被作者于2013-5-10 11:59:00编辑过]

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


加好友 发短信
等级:幼狐 帖子:125 积分:918 威望:0 精华:0 注册:2013/4/12 2:00:00
  发帖心情 Post By:2013/5/10 12:14:00 [显示全部帖子]

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

1、为了便于说明我把”不可见”那儿改了一下,如下图:

图片点击可在新窗口打开查看此主题相关图片如下:f11.png
图片点击可在新窗口打开查看
应用场景:角色一为领导,可以看第二列,角色二是普通员工,不能看第二列。假设给某员工授予了领导权限,他应该可以看到第二列,但是如果用这段代码得到的结果是看不到第二列。

2、简化的设计思路:如果能保证每个用户登录时都使用一个角色(身份),当需要用另一角色时,切换用户,重新选择另一个角色进行系统。这样的代码就会很简单。但是需要在用户登录时判断是否具有多个角色,如果有,需要给出一个下拉选择。
[此贴子已经被作者于2013-5-10 12:17:22编辑过]

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


加好友 发短信
等级:幼狐 帖子:125 积分:918 威望:0 精华:0 注册:2013/4/12 2:00:00
  发帖心情 Post By:2013/5/10 12:15:00 [显示全部帖子]

谢谢BIN老师的热心支持。

 回到顶部
总数 16 1 2 下一页