
图5 用户角色权限管理界面的“角色”和“角色信息”选项页

图6 用户角色权限管理界面的“角色权限”和“角色权限信息”选项页
在图4中可以分配相关用户所拥有的角色;在图5中可以添加或修改系统中存在的角色;在图6中可以对每个角色分配相关对象的使用权限。
1.3 设置用户权限
当用户登录成功后,需要按系统管理员分配给该用户的角色动态设置该用户所具有的使用权限,该过程由系统主界面的OnShow()事件调用,相关代码如下:
procedure SetObjRight(ObjName: TObject);
var
MenuCol : Integer;
MenuTemp: TMenuItem;
// 定义递归过程,实现所有子菜单的遍历
procedure SearchSubMenu(Menu: TMenuItem);
var
MenuRow : Integer;
UserRight : Boolean;
begin
if Menu.Count=0 then begin // 是一个单独的菜单项
if Menu.Caption<>'-' then begin
with DMServerDB do begin
ADODataSetUserRight.Filter := 'MenuItemName='''+ Menu.Name+'''';
UserRight := False;
// 计算菜单项是否可用
while not ADODataSetUserRight.Eof do begin
UserRight:=UserRight Or ADODataSetUserRight.FieldValues['RoleRight'];
ADODataSetUserRight.Next;
end;
Menu.Enabled := UserRight;
ADODataSetUserRight.Filter :='';
end;
end;
Exit;
|