CQ----重写某个动作的操作权限
来源:互联网 发布:梁道长 知乎 编辑:程序博客网 时间:2024/06/05 18:28
动作权限管理以前的做法是在动作的后面选择组,这个组的里面的人就可以进行这个操作,但现在要根据记录是需求的 还是 缺陷的来决定能不能进行这操作,如果这个记录是需求的,就不能进行缺陷的操作,如果这个记录是需求的就不能进行缺陷的操作。因为这个要求,就不可能简单的配置出来了,要使用脚本重写这个动作的权限,包括检查:
1. 登入者能不能进行提交缺陷的操作,能不能进行提交需求的操作
2. 如果登入者即有提交缺陷的操作权限,又有提交需求的操作权限,那么要检查记录是缺陷的还是需求的,是缺陷的,就只能进行提交缺陷的操作,是需求的就只能进行提交需求的操作
设计:
条件:有“缺陷组”和“需求组”两个组
“缺陷组”包含“缺陷人员”,“需求组”包含“需求人员”
界面上有一个字段“记录类型”,可选值“缺陷”、“需求”
要求:
缺陷组的人员执行“提交缺陷”动作,记录从“已提交”状态流转到“缺陷已提交”
需求组的人员执行“提交需求”动作,记录从“已提交”状态流转到“需求已提交”
限制:
在执行“提交缺陷”动作时,检查:
1. 登入者是否是“缺陷组”的人
2. 当前“已提交”界面上的“记录类型”值是“缺陷”
如果上面两项检查都是结果都是“是”,则可以执行“提交缺陷”动作,否则不能执行该动作
执行“提交需求”动作时检查同理。
在CQ Designer上的操作步骤:
1. 用超级用户登入CQ Designer,并check out模板
2. 添加组、人员、关联的缺陷库 略,根据上面的条件来配
3. 添加字段“记录类型” 略,注意的是,type 选择 SHORT_STRING即可
4. 添加状态“缺陷已提交”、“需求已提交”和动作“提交缺陷”、“提交需求”,以及从“已提交”状态到“缺陷已提交”、“需求已提交”的配置 略
5. 配置“提交缺陷”的权限:
在“提交缺陷”后面type列选择“CHANGE_STATE”
Access Control列选择“BASIC”,其他列默认
双击“BASIC”字段,界面跳转到代码编辑界面,在其中写入代码。编辑好的整段代码在最后面。
6. 点工具条上的“√”检查代码有没有语法错误,调试,直到检查通过
7. 保存改动,并check in
8. 将这个改动同步到缺陷库中,并新建几个不同的记录来验证结果是否正确
9. 哈哈,大功告成,整了我一上午,第二次给CQ加代码,记录备忘!
Function Defect_AccessControl(actionname, actiontype, username)
rem 定义变量
Dim session
Dim loginName
Dim sessionObj
Dim queryObj
Dim filterObj
Dim resultSetObj
Dim userInGroup
Dim value_leix
Dim leix_pand
rem 得到当前用户
' Dim session
' Dim loginName
' Get the session
set session = GetSession
' Get the logon name
loginName = session.GetUserLoginName
rem 判断登入者是否属于缺陷提交组
' Dim sessionObj
' Dim queryObj
' Dim filterObj
' Dim resultSetObj
' Initial
userInGroup = 0
Set sessionObj = GetSession()
' start building a query of the users
Set queryObj = sessionObj.BuildQuery("users")
' have the query return the desired field of the user object(s)
queryObj.BuildField ("login_name")
' filter for members of group groupname (whatever group you want)
Set filterObj = queryObj.BuildFilterOperator(AD_BOOL_OP_AND)
filterObj.BuildFilter "groups", AD_COMP_OP_EQ, “缺陷组”
Set resultSetObj = sessionObj.BuildResultSet(queryObj)
' run it
resultSetObj.Execute
Do While resultSetObj.MoveNext = AD_SUCCESS
If loginName= resultSetObj.GetColumnValue(1) Then
userInGroup = 1
End If
Loop
rem 判断记录类型是否是缺陷
' Dim value_leix
' Dim leix_pand
leix_pand= 0
value_leix=""
value_leix = GetFieldValue("记录类型").GetValue()
If value_leix = "缺陷" Then
leix_pand= 1
End If
rem 如果记录类型是“缺陷”并且 登入者属于“缺陷组”,则可以进行提交缺陷的动作,
rem否则不能
If leix_pand = 1 and userInGroup = 1 Then
Defect_AccessControl = TRUE
Else
Defect_AccessControl = FALSE
End If
End Function
- CQ----重写某个动作的操作权限
- CQ的记录类型的关联动作之间的脚本执行情况
- 重写某个magento模块的某个controller
- linux给用户加个操作某个目录的权限
- Linux 虚拟机 给用户 赋某个文件夹操作的权限
- CQ数据库的还原
- 重写Backbone.js的加载动作
- 重写Backbone.js的加载动作
- magento模块 -重写某个magento模块的某个controller
- CQ的另一个Bug:某个选项列表字段,一旦将其在某个状态下的行为设为“只读”,则其选项列表的脚本得不到执行
- oc 用来取消某个延时的动作接口NSObject cancelPreviousPerformRequestsWithTarget
- postgresql 授权某个数据库的权限给test 账号 使该账号 只能操作指定DB 不能操作其他DB
- postgresql 授权某个数据库的权限给test 账号 使该账号 只能操作指定DB 不能操作其他DB
- 权限的重写,Authorize的控制
- 如何赋予某个用户对某个表的权限
- mysql设置某个用户对某个库的所有权限
- Python判断某个用户对某个文件的权限
- mysql设置某个用户对某个库的所有权限
- 循序渐进,探寻Excel二次开发.NET源码
- Google 的面试题
- NUnit2.0详细使用方法
- E文积累_20070920
- 使用Communicator无法Share Desktop
- CQ----重写某个动作的操作权限
- 一招病毒必杀技-上网不用防火墙和杀毒软件
- 行列转换
- Microsoft Windows XP Embedded 技术常见问题
- C#的四个比较函数!
- SharePoint, 如何在列表项的只读界面DispForm.aspx控制字段的显示和隐藏
- 垂直搜索引擎深度分析
- 在.net开发中使用Log4Net组件
- JAVA.IO使用笔记