CQ----重写某个动作的操作权限

原创 2007年09月20日 09:31:00
 
 
       动作权限管理以前的做法是在动作的后面选择组,这个组的里面的人就可以进行这个操作,但现在要根据记录是需求的 还是 缺陷的来决定能不能进行这操作,如果这个记录是需求的,就不能进行缺陷的操作,如果这个记录是需求的就不能进行缺陷的操作。因为这个要求,就不可能简单的配置出来了,要使用脚本重写这个动作的权限,包括检查:
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
 
 

Maven Java使用JCR 操作CQ5节点

  • 2013年03月13日 09:42
  • 105KB
  • 下载

权限管理-菜单与动作

  • 2017年11月19日 16:47
  • 95.04MB
  • 下载

Android权限和动作大全

Android Permission大全出自1.0 SDK中记录着新改变的访问权限许可。程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求,Android开发网...

一个动作、两行命令,去掉文件的权限拦路虎

如何批量修改文件权限,网络上太多的“文抄公”,也太多的人云亦云。本人从亲身经历出发,只用一个动作、两行语句就实现了。欣喜之情溢于言表,愿与各位行家分享。...

VBS 操作Photoshop 动作

  • 2011年07月01日 13:20
  • 2KB
  • 下载

Sharepoint 2010 Permissions[自定义动作的权限设置]

http://www.wssdemo.com/Blog/archive/2010/01/15/SharePoint-2010-Permissions.aspx
  • SseJava
  • SseJava
  • 2011年01月22日 13:03
  • 1438

asp.net mvc 控制器&动作方法 角色 权限验证

环境: Visual Studio Community 2015 Asp.net MVC5第一步: 检查项目根目录的 Web.config 中的 ...

Cocos2d-X数据、动作、消息的基本操作

添加类的create方法: CREATE_FUNC(ClassName) 使用这个宏可以为类添加一个create方法。 创建类的对象时一律用Class::create()的形式。 在CREATE...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CQ----重写某个动作的操作权限
举报原因:
原因补充:

(最多只允许输入30个字)