Foxtable(狐表)用户栏目专家坐堂 → [原创]权限问题(已解决!)


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

主题:[原创]权限问题(已解决!)

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


加好友 发短信
等级:小狐 帖子:352 积分:3192 威望:0 精华:0 注册:2008/9/1 9:38:00
[原创]权限问题(已解决!)  发帖心情 Post By:2011/7/21 10:56:00 [只看该作者]

设计了一个用户权限管理表,在项目事件中MainTableChanging写入以下代码,但在程序登录输入完成用户名和密码(成功登录后会给全局变量_username赋值用户名,这个用户名在用户权限表中也是存在的,也同时已分配打开表的权限)后会自动关闭程序进程退出,请教此段代码有问题吗?项目事件中MainTableChanging和登录窗口执行有冲突吗?怎样调整?

 

Dim dr As DataRow
dr=DataTables("用户权限").find("用户='" & _username & "' and 表名='" & e.newtablename & "' and 停用=0")
If dr IsNot Nothing Then
    Vars("QX_gridname")=dr("表名")
    Vars("QX_opengrid")=dr("打开表")
    If vars("QX_opengrid")=True The
        MainTable=Tables(vars("QX_gridname"))
        DataTables(vars("QX_gridname")).allowedit=Vars("QX_editgrid")
    Else
        e.cancel=True
        messagebox.show("您无权限打开所选表,请和系统管理员联系!","提示")
    End If
Else
    e.cancel=True
    messagebox.show("当前用户权限未分配,请检查权限分配表,和系统管理员联系!","提示")
End If
End If

 

设想是在切换表时,先读取用户权限表,然后判断能否打开程序和分配相应的权限。

[此贴子已经被作者于2011-7-21 16:05:23编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/21 11:01:00 [只看该作者]

为啥不直接在AfterOpenProject事件设置代码,隐藏禁止登录用户使用的表。

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


加好友 发短信
等级:小狐 帖子:352 积分:3192 威望:0 精华:0 注册:2008/9/1 9:38:00
  发帖心情 Post By:2011/7/21 11:06:00 [只看该作者]

想动态管理用户权限,还有很多权限没有列出来,比如打印,锁定行等共有20个单独权限和表相关,这20个单独权限每个表可以动态设置管理的。


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


加好友 发短信
等级:小狐 帖子:352 积分:3192 威望:0 精华:0 注册:2008/9/1 9:38:00
  发帖心情 Post By:2011/7/21 11:17:00 [只看该作者]

可能有几百个用户,有很多个分组,分组用户的权限采用基本配置,针对个别的用户可采取动态配置,所以需要这样的设计,请问这个问题如何解决,是什么原因引起报错?

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


加好友 发短信
等级:小狐 帖子:352 积分:3192 威望:0 精华:0 注册:2008/9/1 9:38:00
  发帖心情 Post By:2011/7/21 11:23:00 [只看该作者]

请教老大如何解决这个问题?


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/21 11:45:00 [只看该作者]

报错原因,要有例子才能知道。

建议这种禁止表的功能,还是设置在AfterOpenProject事件中为好。


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


加好友 发短信
等级:小狐 帖子:352 积分:3192 威望:0 精华:0 注册:2008/9/1 9:38:00
  发帖心情 Post By:2011/7/21 16:05:00 [只看该作者]

取消了在项目事件中的定义,通过自定义函数已实现获取权限!


 回到顶部