有几个问题想请教一下各位:
1.权限怎样实施到具体的按钮等,比如对A模块的权限有 读,新建,和删除,那么怎样把"编辑"按钮设为不可用呢?就是说,怎样把相应的权限应用到窗体上的每一个按钮和功能上.
2.打印功能应不应该另外独立一个权限?(即,是否该有打印权限?还是只要有了"读"权限就有了打印权限)?
谢谢.
1.权限怎样实施到具体的按钮等,比如对A模块的权限有 读,新建,和删除,那么怎样把"编辑"按钮设为不可用呢?就是说,怎样把相应的权限应用到窗体上的每一个按钮和功能上.
2.打印功能应不应该另外独立一个权限?(即,是否该有打印权限?还是只要有了"读"权限就有了打印权限)?
谢谢.
解决方案 »
- 请教该用什么类型的钩子
- 等不及了,百元求例子:tcp 和udp内网和外网的通信问题
- 各位大侠帮帮忙delphi6 mysql2000;
- 请问用FastReport怎么控制POS机的打印,详细内容请进
- 请教:Dephi 中将程序最小化为任务栏中的图标,但我不知道如何加入图标右(或左)键菜单,请高手指点
- 关于屏幕分辩率?
- ==用TRegistryIniFile能对HKEY_LOCAL_MACHINE操作吗?===
- 用DELPHI 操作EXCEL
- 下面这些C++的话怎样翻译成delphi的
- 急!!!日期比较的问题!!!
- Richedit是否存在bug?
- 如何在StringGird中的格子中加入图像??
好像应该在ActionList里创建一系列的Action,然后把控件的Action属性和这些关联起来,然后控制ActionList就行了
在点相应按钮时调作
1、怎么样在软件中实现权限的控制功能
2、在软件中应该怎么分配组合权限
我个人觉的这两个问题都很好解决:
第一个的解决方法有很简单,比如:利用菜单和按钮有有显示和隐藏的功能,只显示给用户有权限的菜单或按钮; 又或是将不可用或是权限不到的按钮变灰
第二个的解决方法是,同用户做好调研工作,确定权限需要分成几级 对于权限的分配一般有两种,比如:设置管理员库,分层管理,一级,二级,三级:上一级包含有下一级的全部功能 又或是:设置平级管理:a级,b级,c级:不同之间权限不能有重合 当然两种方法可以重合使用,但是对于小的项或是中等的项目,没有必要将程序权限设定的非常复杂,以加重了程序的设计工作 其它都不是问题,主要学是与用户沟通,以确定权限的分类
用的是變量,每進入表單則拿出進行檢查,如果是可以的,就true,否則則false,就把按鈕灰掉。
執行菜單則是登錄後進入主介面時檢查的。
我也是这样做,可是按钮比较多,代码多而乱,我想写成一个函数来控制,写不来..
qyTemp.Close;
qyTemp.SQL.Clear;
qyTemp.SQL.Add('select * from UserRight where ModuleCode =:ModuleCode and UserName =:UserName');
qyTemp.Parameters.ParamByName('ModuleCode').Value := UserName;
qyTemp.Parameters.ParamByName('UserName').Value := UserName; if qyTemp.RecordCount >0 then
begin
//设置按钮
btnInsert.Enabled := qyTemp.FieldByName('InsertRight').AsBoolean;
btnEdit.Enabled := qyTemp.FieldByName('EditRight').AsBoolean;
btnDelete.Enabled := qyTemp.FieldByName('DeleteRight').AsBoolean;
btnPrint.Enabled := qyTemp.FieldByName('PrintRight').AsBoolean;
btnPreview.Enabled := qyTemp.FieldByName('PrintRight').AsBoolean;
btnRefresh.Enabled := true;
btnHelp.Enabled := true;
btnExit.Enabled := true;
end;
end;
我是参照了windows的权限设计方法设计的
方法1:
用户表中加一个长字符串的字段用来表示权限。如 Droit char(255)
这个字段每一个字节,表示一个功能的权限。
如:每一位表用户的查看 第二位表用户添加 第三表用户修改 第四表用户删除 ....
Droit = '10010.................' 这样的。1 表许可 0 表不许可方法二:
建一用户权限表
UserID , OperateID, CanRead,CanWrite,CanOpen,CanPrint,CanExport ,CanDelete
这样。明白了吧。个人意见:
方法一:适合小系统,权限Mask 要事先设计好,事后不能更改。好处就是登录时一次性读出来,检查权限时直接在客户端就完成了。速度快。
方法二:适合于一些大的系统。但设计上不是很好办,每次检查权限要读一些数据库(当然也可以一次性读出来)。适合于一些比较规则化的权限分配。