我的程序中使用的是TMenu结合TAction控件作的用户界面,前期没有考虑用户权限问题,现在该怎么增加权限管理改动量最小啊? 我的程序中使用的是TMenu结合TAction控件作的用户界面,前期没有考虑用户权限问题,现在该怎么增加权限管理(用分组或者设置'who'-->'action'列表方式)改动量最小啊?好像DELPHI的有个设计模式是专门对付这种情况的,可是我记不清在那个地方看的,又没有具体操作过。那位高手说说啊!感谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可能要自己来个函数,设定权限了procedure SetAdmin()beginactxxx.visiable:=false;end;...... 如果你使用了Delphi的控件作为数据显示或者编辑,那恐怕就只能在DBGrid之类的东西中设置Visible或者Readonly之类的了。权限系统一直是一个很繁琐的东西,一般应该在一开始就考虑进去。 我现在只想控制菜单啊.用最简单的visible方式。增加一个设置权限的过程SetPriv(username,MenuItem),在TMenu的Create事件中激活这个事件加进去 权限粒度:有个这种操作方式:who在what(db,menu,log...)上进行what操作(add,edit,query,view....)这样不什么粒度都解决了? 你在数据库中设定那些用户可以使用那些TAction过程,再在用户执行菜单时把TAction的值代进去在函数中校验看看是不是在它的权限范围内只有这样了TAction 如果你仅仅控制菜单权限的话,就把菜单和Action关联起来,然后再数据库里存储1010001这样的权限串,登陆后将权限串读取出来权限串中的每一位都对应一个Action的TAG,不如你读取到第三位是1那么Action中Tag为3的Enable设置为True,反之为False 上个星期,我做了权限管理的设计。思路:主要用actionlist进行管理(ActionManager也是可以的),把action作为权限分配给角色,然后把角色分给用户。系统初试化时,遍历一下用户的权限,如果actionname存在它的enabled就=true。权限数据库结构(oracle):1.systems(系统子系统表)我们的系统分多个子系统的sysid number(自增),sysname varchar2(50)2.Module(子系统模块表)ModuleID number(自增),ModuleName varchar2(50),SysID number 3.Privilege(权限表)PrivilegeID number (自增),ActionName varchar2(50),ActionCaption varchar2(50),ParentPrivilegeID number (父辈权限ID),moduleID number,SysID number4,roles(角色)RoleID number(自增),roleName varchar2(50)5.RolePrivilege(角色权限)RoleID,privilegeID首先做一个添加权限的程序哦,打完收工 能否得到某个端口对应的进程名? 求Delphi6访问VC编写的DLL的例子 如何作c/s型的数据库下载服务器? 怎样在DbGrid 中,实现光标锁定于某一字段,以只进行对该字段的编辑,同时最好还能实现不能增加新的记录。 ■■■ QQ 用户也可以用啦~~ ■■■ 求教:WinSkinForm控件安装问题!! ibx如何连接interbase 请帮忙!我使用动态创建,但为什么不能显示? 谁知道有哪个网站提供下载delphi60 以上版本 请问c里面的null怎么用pascal的语法表达?(heifei) 关于Modem的设置!急!在线等!!! 如何使用函数设置国家区域?
procedure SetAdmin()
begin
actxxx.visiable:=false;
end;
......
增加一个设置权限的过程SetPriv(username,MenuItem),在TMenu的Create事件中激活这个事件
加进去 权限粒度:有个这种操作方式:who在what(db,menu,log...)上进行what操作(add,edit,query,view....)这样不什么粒度都解决了?
只有这样了
TAction
数据库里存储1010001这样的权限串,登陆后将权限串读取出来
权限串中的每一位都对应一个Action的TAG,不如你读取到第三位是
1那么Action中Tag为3的Enable设置为True,反之为False
思路:主要用actionlist进行管理(ActionManager也是可以的),把action作为权限分配给角色,然后把角色分给用户。系统初试化时,遍历一下用户的权限,如果actionname存在它的enabled就=true。
权限数据库结构(oracle):
1.systems(系统子系统表)我们的系统分多个子系统的
sysid number(自增),sysname varchar2(50)
2.Module(子系统模块表)
ModuleID number(自增),ModuleName varchar2(50),SysID number
3.Privilege(权限表)
PrivilegeID number (自增),ActionName varchar2(50),ActionCaption varchar2(50),
ParentPrivilegeID number (父辈权限ID),moduleID number,SysID number
4,roles(角色)
RoleID number(自增),roleName varchar2(50)
5.RolePrivilege(角色权限)
RoleID,privilegeID首先做一个添加权限的程序
哦,打完收工