主界面菜单权限问题
做了一个主界面和登录界面,想实现 不同用户登录后,用户在主界面看到的菜单不同,比如:管理员看到3个菜单,普通用户只能看到2个菜单,还有一个菜单被隐藏看不见了。请高手指点一下代码该怎么写。谢谢。 {:5_108:} 本帖最后由 凌九霄 于 2019-4-15 09:43 编辑一般是建立一个权限表,将各个菜单和各个级别操作员的权限设定,有权限设为1,无权限设为0,每次登陆启动后去读取这张表,遍历设定菜单的隐现。这种好处是可以随时定制权限。 凌九霄 发表于 2019-4-15 09:41
一般是建立一个权限表,将各个菜单和各个级别操作员的权限设定,有权限设为1,无权限设为0,每次登陆启动后 ...
我的设想是:只要一个管理员,一个普通用户 。DELPHI 7+ SQL SERVER 2000 . 登录界面点击登录后,根据我的登录用户名不同,出现的菜单不同。我不知道loginuser 如何定义。
if LoginUser = '管理员' then
begin
菜单项1.Visible := True;
菜单项2.Visible := True;
菜单项3.Visible := True;
end;
if LoginUser = '一般用户' then
begin
菜单项1.Visible := True;
菜单项2.Visible := True;
菜单项3.Visible := False;//一般用户登录时,菜单项3不可见
end; xujian600 发表于 2019-4-15 09:55
我的设想是:只要一个管理员,一个普通用户 。DELPHI 7+ SQL SERVER 2000 . 登录界面点击登录后,根据我 ...
你这样当然也可以,只不过写死了,不灵活。一旦新增用户组或者更改菜单权限就需要修改源代码重新编译。 凌九霄 发表于 2019-4-15 11:08
你这样当然也可以,只不过写死了,不灵活。一旦新增用户组或者更改菜单权限就需要修改源代码重新编译。
我不知道那个代码在哪里写。。。如何定义登录名? {:5_100:} 定义两个表:用户表,权限表
用户表字段:id,user,pass,group
权限表字段:id,menu,permissions,group
软件启动后,肯定首先连接的数据库,以输入的用户名和密码为参数检索得到各个菜单的是否显示状态,然后遍历菜单是否visible
谢谢,我再学习一下。 凌九霄 发表于 2019-4-15 11:46
定义两个表:用户表,权限表
用户表字段:id,user,pass,group
权限表字段:id,menu,permissions,grou ...
你好,请教一下:
procedure Tstryker_login.Button1Click(Sender: TObject);
var user,pass,temp:string;
begin
user:=Edit1.Text;
pass:=Edit2.Text;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='select * from abc where 用户名='''+user+''' and 密码='''+pass+'''';
Adoquery1.Open;
if Adoquery1.RecordCount <>0 then
begin
Form1.f1.Enabled:=true;
Form1.x1.Enabled:=true;
form1.E1.Enabled:=true;
Form1.s1.Enabled:=true;
Form1.p1.Enabled:=true;
temp:=adoquery1.FieldByName('权限').AsString;
if temp='管理员' then
begin
Form1.f1.Enabled:=true;
Form1.x1.Enabled:=true;
Form1.s1.Enabled:=true;
Form1.p1.Enabled:=true;
form1.E1.Enabled:=true;
end else
if temp='普通用户' then
Form1.f1.Enabled:=true;
Form1.x1.Enabled:=true;
Form1.s1.Enabled:=true;
Form1.p1.Enabled:=true;
form1.E1.Enabled:=false;
stryker_login.Hide;
Form1.Visible:=true;
end
else
begin
ShowMessage('用户名或密码错误,请检查后重新登录');
end;
end;
我这样写出来,主界面这个菜单form1.E1.Enabled:=false; 管理员和普通用户一样显示灰色。不知道怎么写。还是没有达到我的目的。或者能告诉我使用哪个函数或者插件? 谢谢。{:9_227:}
页:
[1]