各位大哥~~求救~~关于软件权限设置的问题

mdejtod 2006-05-17 11:05:41
我想在软件中为不同的用户设置权限,可是不懂要在哪里写上判断事件,比如说判断当前用户对某个模块是否有操作或是查看的权限,要怎样实现呢?急啊~~~再过几天就要交差了~~~~帮帮忙好不~?
...全文
271 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
mdejtod 2006-05-19
  • 打赏
  • 举报
回复
嗯~~试试~~~这样不就要在每个模块中都写上判断语句,能不能写个函数,要判断时直接调用?这种函数的具体实现会不会很麻烦?
mdejtod 2006-05-18
  • 打赏
  • 举报
回复
xjwy(程序春秋)
我没有在用这个哦~~~邮箱有:mdejtoz@163.com
mdejtod 2006-05-18
  • 打赏
  • 举报
回复
现在菜单判断是否显示已经好了,可是我的程序中有好多的操作,还分部门的,比如说修改,新增,删除等,这样我在每次操作前都要进行判断是否有权限很麻烦啊~~~你们可不可以大概说一下怎么写个函数来实现这样的功能呢?
xjwy 2006-05-18
  • 打赏
  • 举报
回复
我刚做了个权限配置的软件,你的数据库设计好了吗,这根数据库相关阿
跟我联系把 msn: xjweiyan@hotmail.com
wls12342004 2006-05-18
  • 打赏
  • 举报
回复
你用个主程序,在数据库里记录这些模块或画面的信息,授权后根据不同的授权显示不同的菜单
crystaldn 2006-05-18
  • 打赏
  • 举报
回复
给每个想控制的操作加权限编号
对用户有一个权限清单
要执行操作之前,先判断权限

操作权限清单
1001 增
1002 删
1003 改

用户权限清单
A:
1001
1002

B:
1001
1003

操作
增 判断权限(增)
具体操作

wudi_1982 2006-05-17
  • 打赏
  • 举报
回复
你把这些信息都记录下来,当客户调用模块(客源列表)时,你看看这个客户的权限能不能访问,就可以了啊。。如果 不能,showmessage告诉他。
mdejtod 2006-05-17
  • 打赏
  • 举报
回复
受不了~那边太复杂了现在时间紧迫啊~~~~再问你一个问题,就是我查询出来的记录不只一条,包含了各个模块,
bumen name duty mode_name add mod del Examine
总部 002 业务员 房源列表 0 0 0 0
总部 002 业务员 客源列表 1 0 1 1
要怎么判断哪个模块不能查看?
wudi_1982 2006-05-17
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20030320/09/1553175.html

去这里好好看看把。。
mdejtod 2006-05-17
  • 打赏
  • 举报
回复
那要同时判断要怎么实现?主要是判断是否有权限查看该菜单
wudi_1982 2006-05-17
  • 打赏
  • 举报
回复
可以同时判断,也可以在需要的时候判断,没有定式的。。

权限信息传到主窗体
--------------------------
主窗体设置一个变量,记录权限信息,
把这个信息传递赋值给主窗体就可以了
例如:
frmMain.权限 := '写入';
mdejtod 2006-05-17
  • 打赏
  • 举报
回复
我是从表中查询出了当前用户的所有记录(权限).但是程序中有很多的模块,并且权限表中也有相应的模块名称,那是不是要进行同时判断:一,是否有权限.二.对应的是哪个模块.那这要怎么实现?
还有要把权限信息传递到主窗体要怎么实现??
wudi_1982 2006-05-17
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20030320/09/1553175.html

去这里看看把。。。
wudi_1982 2006-05-17
  • 打赏
  • 举报
回复
一般是这样的,
首先有个登陆窗体,根据用户输入的帐号,从一个权限表格中得到这个用户的权限,例如只有查看的权限,或者是有写权限。。把这个权限的信息传递到主窗体。
那么在主窗体oncreate 或者onshow的时候,根据用户的权限来决定是否显示某些菜单。。用户的操作通过菜单完成。。
mdejtod 2006-05-17
  • 打赏
  • 举报
回复
那如果要在登录系统后就进行判断要怎么实现?也就是如果没有权限的话,菜单为不可用状态?
mdejtod 2006-05-17
  • 打赏
  • 举报
回复
procedure TE_MainF.FormCreate(Sender: TObject); //ONCREATE事件触发登录界面窗体
begin
datamodule1:=tdatamodule1.Create(self);
if not assigned(E_loginF) then
E_loginF:=TE_loginF.create(self);
E_loginF.ShowModal;
在主窗体上添加了adoquery连接到表中
adoquery1.Parameters.ParamByName('user_name').Value:=user_name;//窗体上定义的全局变量
if adoquery1.fieldbyname('Examine').asstring='1' then //查看权限
n12.enabled:=true else n12.enabled:=false;
这里只有一个简单的~还有如果要修改跟删除要怎么办?
wudi_1982 2006-05-17
  • 打赏
  • 举报
回复
贴出来,看看
mdejtod 2006-05-17
  • 打赏
  • 举报
回复
~~嗯~~我在程序的主窗体创建时写了判断的语句,可老是有地址引用出错!~~~因为那个主窗体的formcreate事件中有创建登录窗体,不懂要写在啊~~还有模块初始化事件是哪个哩~??不懂哦~
wudi_1982 2006-05-17
  • 打赏
  • 举报
回复
在模块初始化或者显示的时候,进行判断。。。。
postren 2006-05-17
  • 打赏
  • 举报
回复
在不同模块的Create或Show过程中判断
加载更多回复(3)

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧