Foxtable(狐表)用户栏目专家坐堂 → 权限控制的困惑?


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

主题:权限控制的困惑?

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


加好友 发短信
等级:童狐 帖子:252 积分:2193 威望:0 精华:0 注册:2011/6/28 16:50:00
权限控制的困惑?  发帖心情 Post By:2012/5/6 10:50:00 [只看该作者]

在 项目开发时,想采用自定义的用户权限表,来控制加载不同的外部数据表和不同的字段,但在具体实现中,发生了困惑,主要原因为:

1、打开自定义登录界面,是发生在AfterOpenProject事件中的,而在这之前,已完成BeforeLoadInnerTableBeforeLoadOuterTable等事件,故根本没有办法利用BeforeLoadOuterTable事件来控制不同DataTable的加载与否,及加载哪些字段。

 

2、当然我们可以利用BeforeLoadOuterTable事件不加载任何外部数据表,但由于各业务表的业务逻辑代码,必须放到了各业务表的相关事件中,若不加载外部数据表,就不能构造相应的DataTable,更无从放置该DataTable的各种事件代码。

 

综上所述,本人认为最理想的方法是:

1、1、 利用BeforeOpenProject事件检查是否已有实例运行。(只能运行一个实例)

2、2、利用BeforeConnectOuterDataSource事件检查外部数据源的情况并保证连接正确。

3、3、利用???事件生成登录界面,确定登录用户身份并获得该用户的权限记录。

4、4、利用BeforeLoadOuterTable事件,配合权限加载不同的表,不同的字段,不同的记录。

 

我 我的困惑就是第3点如何实现?请狐爸和高手们赐教。谢谢!!!!!

 

 

[此贴子已经被作者于2012-5-6 10:57:06编辑过]

 回到顶部
帅哥,在线噢!
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/5/6 11:02:00 [只看该作者]

目前没有办法,自定义用户管理只能控制数据加载,不能空直接结构(也就是加载那些字段)。

也许以后会改进吧。


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


加好友 发短信
等级:童狐 帖子:252 积分:2193 威望:0 精华:0 注册:2011/6/28 16:50:00
  发帖心情 Post By:2012/5/6 11:17:00 [只看该作者]

其实狐爸是有办法的,只要在BeforeConnectOuterDataSource和BeforeLoadOuterTable事件之间,再开放一个事件就行(不管叫什么名字)。我只是想让代码能更理想,能更行云流水。

 回到顶部
帅哥哟,离线,有人找我吗?
涛声依旧5666
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:252 积分:2193 威望:0 精华:0 注册:2011/6/28 16:50:00
  发帖心情 Post By:2012/5/6 12:36:00 [只看该作者]

经过试验,项目打开时,项目事件执行的次序是:

1、BeforeOpenProject

2、BeforeConnectOuterDataSource

3、BeforeLoadInnerTable

4、BeforeLoadOuterTable

5、Initialize

6、LoadUserSetting

7、AfterOpenProject

若能在1-2事件之间再增加一个可以打开自定义登录界面的事件接口,可能就能解决问题。

 

狐爸,你看行不?!


 回到顶部
帅哥,在线噢!
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/5/6 19:18:00 [只看该作者]

这是没办法的

 回到顶部