|
|
| 修改删除命令的权限控制 |
| 作者 babyrong0205 查看 558 发表时间 2008/7/30 09:28 【论坛浏览】 |
我写了一段代码,想实现2个功能:iftbz
iftbz
1. 在未关闭状态下,只有提交人本人可以修改、删除本人的单子,其他人没有权限;iftbz
iftbz
2. 在关闭状态下,任何人都没有权限对单子进行修改、删除操作;iftbz
iftbz
但是执行结果貌似不对,好像是把所有人的权限都收回了,大任何人都不能修改了。iftbz
iftbz
请各位给分析分析!!iftbz
先谢了!iftbz
' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''iftbz
Function defect_AccessControl(actionname, actiontype, username)iftbz
' actionname As Stringiftbz
' actiontype As Longiftbz
' username As Stringiftbz
' defect_AccessControl As Booleaniftbz
' action is modifyiftbz
' record type name is Defectiftbz
defect_AccessControl = Limit(username)iftbz
End Functioniftbz
' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''iftbz
REM Start of Global Script RS_CheckAccessiftbz
REM TODO -- put your script code hereiftbz
Function Limit(param)iftbz
' param As Variantiftbz
' record type name is Defectiftbz
REM add your hook code hereiftbz
DIM submitternameiftbz
Dim persionresult,statement,stateresultiftbz
statement = GetFieldValue("State").GetValue()iftbz
submittername = GetFieldValue("submitter").GetValue()iftbz
' MsgBox "statement = " & statementiftbz
stateresult = (statement = "已关闭")iftbz
persionresult = (submittername = param)iftbz
' MsgBox "param = " & paramiftbz
' MsgBox "submittername = " & submitternameiftbz
' MsgBox "result = " & resultiftbz
iftbz
if stateresult Theniftbz
MsgBox "处于关闭状态的表单,不允许任何人修改或者删除"iftbz
defect_Limit = Falseiftbz
elseiftbz
if persionresult Theniftbz
MsgBox "在生命周期中,只有本人可以进行修改删除或者操作"iftbz
defect_Limit = Trueiftbz
elseiftbz
MsgBox "在生命周期中,非本人不允许修改或者删除"iftbz
defect_Limit = Falseiftbz
End ififtbz
End ififtbz
iftbz
End Functioniftbz
REM End of Global Script RS_CheckAccess |
| 序号 |
评论者 |
共有评论 7 【论坛浏览】 【发表评论】 |
评论时间 |
|
| 1 |
babyrong0205 |
怎么可以这么冷清呢?
门可罗雀啊
慧眼们给看看吧 -_- |
2008/7/31 16:38 |
|
| 2 |
fish |
在close和modify的action写一点就行了,搞这么多几乎是没有看明白。 |
2008/7/31 16:50 |
|
| 3 |
babyrong0205 |
回复 板凳 的帖子 恩,对modify单独写代码代码限制是可以的,主要是考虑到有好几个action操作都涉及到类似的操作,所以才把公共的部分拉出来单独写的,这样重用性高些 |
2008/7/31 16:57 |
|
| 4 |
ljs53 |
你的代码看起来比较难懂
' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function defect_AccessControl(actionname, actiontype, username)
' actionname As String
' actiontype As Long
' username As String
' defect_AccessControl As Boolean
' action is modify
' record type name is Defect
Dim Name
Dim session
set session = Getsession
Name = session.GetUserLoginName
defect_AccessControl = Limit(Name)
End Function
' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
REM Start of Global Script RS_CheckAccess
REM TODO -- put your script code here
Function Limit(param)
' param As Variant
' record type name is Defect
REM add your hook code here
DIM submittername
Dim persionresult,statement,stateresult
statement = GetFieldValue("State").GetValue()
submittername = GetFieldValue("submitter").GetValue()
if (statement = "已关闭") Then
MsgBox "处于关闭状态的表单,不允许任何人修改或者删除"
defect_Limit = False
else
if submitter = param Then
MsgBox "在生命周期中,只有本人可以进行修改删除或者操作"
defect_Limit = True
else
MsgBox "在生命周期中,非本人不允许修改或者删除"
defect_Limit = False
End if
End if
End Function
REM End of Global Script RS_CheckAccess
以上代码我没有调试 你可以试试 |
2008/8/1 08:46 |
|
| 5 |
yunshan |
错误原因很简单,就是你的limit函数的返回值有问题,
定义的全局函数的名称是limit,但返回值却是defect_limit,显然是错误的,所以只要将limit函数中的defect_limit改成limit应该就可以了。 |
2008/8/1 10:06 |
|
| 6 |
babyrong0205 |
回复 6# 的帖子 终于有慧眼了,果然是这个问题,自己太粗心了。
谢谢啦! |
2008/8/1 15:45 |
|
| 7 |
among |
哈哈
vb的function可以有返回值,sub没有返回值
function的返回值就是function的名字。
哈哈,前些日子我也学了下vb |
2008/8/1 22:18 |
共有评论数 7 每页显示 10
|
|