以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  自定义用户管理二  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=52761)

--  作者:石四
--  发布时间:2014/6/22 19:18:00
--  自定义用户管理二
更改用户

窗口的AfterLoad事件代码为:

Dim UserName As String
Dim
UserGroup As String
Dim
PassWord As String
Dim
dr As DataRow
If
Forms("用户管理").Opened Then \'正常打开
    UserName = Forms(
"用户管理").Controls("ListBox1").SelectedItem
Else

   UserName = _UserName
\'_UserName为全局变量,用于保存当前用户名
   e.Form.Controls("UserName").Enabled = False
   e.Form.Controls("UserGroup").Enabled =
False
End
If
e
.Form.Text = e.Form.Text & "-" & UserName \'将要更改的用户名保存在窗口标题中,方便其他事件调用
dr
= _UserTable.SQLFind("[Name] = \'" & UserName & "\'")
If
dr IsNot Nothing Then
    e.Form.Controls("UserName").Value = UserName
    e.Form.Controls("UserGroup").Value = dr("Group")
    e.Form.Controls("PassWord").Value = dr("PassWord")

Else

    MessageBox.Show("用户不存在或者已经被删除!","提示",MessageBoxButtons.OK)
    e.Form.Close()
End
If

上面的代码在打开“更改用户”窗口之前,先判断“用户管理”窗口是否已经打开,如果已经打开,则更改“用户管理”窗口中选定的用户;否则更改当前登录的用户,且禁止更改用户名和用户分组,只能更改用户密码。

 

试了狐表自带的事例文件,不象上面说的只能更改用户密码,用户名和分组也可以更改,怎么回事?



--  作者:有点甜
--  发布时间:2014/6/22 19:26:00
--  

 呃,代码和说明都没有问题。

 

 如果没有管理权限的人,压根就打不开 用户管理 窗口


--  作者:石四
--  发布时间:2014/6/22 19:31:00
--  
以下是引用有点甜在2014-6-22 19:26:00的发言:

 呃,代码和说明都没有问题。

 

 如果没有管理权限的人,压根就打不开 用户管理 窗口

照上面说的设计不对啊,

更改密码应该是用户本人操作,就是说登录的用户都有权限打开更改用户窗口更改密码,但是不可以更改用户名和分组。


--  作者:石四
--  发布时间:2014/6/22 19:37:00
--  
我设计非超级管理员登录项目,用户管理窗口“增加用户”和“删除用户”两个按钮不可用,只可操作“更改用户”按钮,但是禁止更改用户名和分组没生效,卡住了。
--  作者:有点甜
--  发布时间:2014/6/22 19:41:00
--  
 你思路错了,你应该在菜单那里判断,如果是管理人员,就打开【用户管理】窗口,如果是普通用户,就打开【更改用户】窗口。
--  作者:石四
--  发布时间:2014/6/22 19:57:00
--  
以下是引用有点甜在2014-6-22 19:41:00的发言:
 你思路错了,你应该在菜单那里判断,如果是管理人员,就打开【用户管理】窗口,如果是普通用户,就打开【更改用户】窗口。

不明白有什么区别,我已经做到,如果是普通用户登录,打开用户管理窗口,上面的用户列表只有登录者本人,只“更改用户”按钮有效。

现在的问题是普通用户也可以更改用户名和分组,这样不通。


--  作者:有点甜
--  发布时间:2014/6/22 19:59:00
--  

呃,如果是管理员,点击菜单按钮,就打开【用户管理】窗口;

 

如果是普通用户,点击菜单按钮,打开的是【更改用户】窗口。普通用户没有打开用户管理窗口的机会,这个是帮助文档的意图。

[此贴子已经被作者于2014-6-22 19:59:16编辑过]

--  作者:石四
--  发布时间:2014/6/22 20:43:00
--  
以下是引用有点甜在2014-6-22 19:59:00的发言:

呃,如果是管理员,点击菜单按钮,就打开【用户管理】窗口;

 

如果是普通用户,点击菜单按钮,打开的是【更改用户】窗口。普通用户没有打开用户管理窗口的机会,这个是帮助文档的意图。

[此贴子已经被作者于2014-6-22 19:59:16编辑过]

管理员:需先后打开两个窗口,可以更改三个选项。

普通用户:直接打开“更改窗口”,只能更改密码。

现在的设计,普通用户打开两个窗口,所以能和管理员一样,更改三个选项。

是这个意思吧?

如果在加载“更改窗口”时加一个判断,应该也可以满足要求吧。


--  作者:有点甜
--  发布时间:2014/6/22 20:46:00
--  

 也可以判断,判断_UserName 是否等于 选择的 用户名 即可。


--  作者:石四
--  发布时间:2014/6/22 20:58:00
--  

改了一段:

If Forms("用户管理").Opened Then \'正常打开
    UserName = Forms("用户管理").Controls("ListBox1").SelectedItem
If _UserGroup <> "超级管理员" Then
   e.Form.Controls("UserName").Enabled = False
   e.Form.Controls("UserGroup").Enabled = False
End If
End If

似乎没问题啦。