B
bsense
Unregistered / Unconfirmed
GUEST, unregistred user!
我们经常要做权限的管理,做法不外乎,保存一个权限表,在代码里面取出,判断。
如果要在所有的form里面放入这样的代码,似乎很麻烦.
有一个简单点的方法
actionlist ,就是做一个 基类 姑且叫做 Baseform ,放一个actionlist 控制,数据库表 t_grants
字段 userid,action_tag,is_enabled,is_visible
application 给一个全局的 record array名字 ar_grants ,登录时从 t_grants load 相关数据
baseform.onshow 里面处理做
for i := 0 to actionlist.count -1do
begin
actionlist.actions.isenabled :=
is_enabled(actionlist.actions);
//自定义函数,查找ar_grants 里面 相关 tag 是否enable
end
以上是伪代码,但方法简单易懂,当然你也可以不使用tag 而使用 form name 和 action name 组合进行查找(优点是直观).
然后所有的需要权限控制的form从此form继承
如果要在所有的form里面放入这样的代码,似乎很麻烦.
有一个简单点的方法
actionlist ,就是做一个 基类 姑且叫做 Baseform ,放一个actionlist 控制,数据库表 t_grants
字段 userid,action_tag,is_enabled,is_visible
application 给一个全局的 record array名字 ar_grants ,登录时从 t_grants load 相关数据
baseform.onshow 里面处理做
for i := 0 to actionlist.count -1do
begin
actionlist.actions.isenabled :=
is_enabled(actionlist.actions);
//自定义函数,查找ar_grants 里面 相关 tag 是否enable
end
以上是伪代码,但方法简单易懂,当然你也可以不使用tag 而使用 form name 和 action name 组合进行查找(优点是直观).
然后所有的需要权限控制的form从此form继承