回 帖 发 新 帖 刷新版面

主题:带用户权限的菜单控制程式,谁可以提供代码讨论

新人报到

想问一下谁有带用户权限控制的菜单程式?即可以根据不同用户权限显示或者使用不同的菜单。这里有两个功能是需要的(一是用户权限的设置,二是菜单的显示--是灰掉不可用,还是根本不显示出来)。不知可有高手提供代码供讨论,谢谢!

回复列表 (共3个回复)

沙发

如果 我遇到这个问题,是这样做的 

编辑两个菜单,一个菜单功能全,是权限高的 sysmenu
             另一个是权限低是,功能就少  menu

在主程序里,用户登录时,判断用户权限后 调用 相应的 菜单

在登录表单 的 unload 里

if 用户权限 = '高级管理员'
    do sysmenu.mpr
else
    do menu.mpr
endif



方法二:
在菜单的选项,跳过里,输入一个逻辑变量。来控制此项是否可用,不可用时呈灰色

板凳

非常感谢 homayzh 的回复
能继续讨论下去吗?

也许是我表述的不足够详细

再补充一些资料。假如说我的全功能菜单共有100项,有30个用户使用系统,但这30个用户权限大小不完全相同,比如:有的使用销售,有的使用采购,有的使用会计……,就算是都使用销售功能,其中也有更详细的权限控制,如是否可以看单价,查看成本等

因此,我觉得最少需要有功能就是:用户权限分配,可以随时改变的;
第二,才说到菜单如何显示。使用你说的第二种方案是否会影响速度?我还没试过。因为要写一个UDF来判断某菜单是否显示,而这个UDF会读取用户权限表
   如果使用大小菜单表的方式,则每个用户需要生成一个临时菜单表。

就我目前使用的系统来说,都是使用临时菜单表的方式。但我的同事也有使用过“灰菜单”的办法
想听听大家的见解

3 楼


我的是这样的,将软件所有的功能需要控制的菜单放在一个表格中,字段名即为功能菜单名,然后记录是每一个用户的记录。结构如下:
用户名  备份 恢复 删除  添加  ……
admin   T     T    T    T     ……
guest   T     F    F    T     ……
然后再自编一个函数,在菜单里的跳过项调用刚写的函数来判断登录的账户是否能用。

我来回复

您尚未登录,请登录后再回复。点此登录或注册