2012-10-04 128 views
2

我正在使用liferay工作流。我想創建我自己的工作流定義。Liferay文檔和介質Portlet的自定義工作流定義

現在使用默認工作流程「單一審批者」,它只是直接通知管理員特定文檔由用戶上載到文檔和媒體portlet。我想要的是在這張圖片中描述。

enter image description here

enter image description here

每當下組織A的用戶會上傳任何文件,那麼它不會發出通知,批准用戶主ADMIN而是應該向組織一個管理員批准的用戶。

我希望我的問題是可以理解的......

每當下機構A用戶會上傳任何文件,那麼它不會發送通知批准用戶主ADMIN而是應該發送給一個組織管理員批准用戶..

我希望我已經明白我的問題......

我曾經做過這樣的在我的工作流程我已經單身批准的定義我已經給了該定義一個文件夾中的媒體文件和現在的portlet他們自動創建了四個角色

1)portal Legal Reviewer - Auto generated role from workflow definition 

2)portal Content Reviewer - Autogenerated role from workflow definition 

3)organization Legal Reviewer - Autogenerated role from workflow definition 

4)organization Content Reviewer - Autogenerated role from workflow definition 

現在,每當我上傳的東西到該文件夾​​的通知去我的網站的所有者

而在有兩個可選

1)assign to me 
2)assign to -> users (who have role from above 4 they created automatically) 

現在假設我分配到具有不同於上述角色的用戶四,當我打開用戶的帳戶,然後沒有控制面板或沒有工作流任務行動,我可以顯示。所以任何人都可以批准的內容?

還有一件事在那裏我可以編輯XML中的作用,它會通知在XML不是默認的方式,網站所有者

只有當我創建誰擁有角色,管理員與用戶所描述的特定角色組織審批者角色,僅可訪問控制面板和工作流任務,他們可以找到分配和分配我通知

我的工作流程的認定中去這裏

<?xml version="1.0"?> 

<workflow-definition 
    xmlns="urn:liferay.com:liferay-workflow_6.1.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="urn:liferay.com:liferay-workflow_6.1.0 http://www.liferay.com/dtd/liferay-workflow-definition_6_1_0.xsd" 
> 
    <name>UPLOAD Approver</name> 
    <description>A single approver can approve a workflow content.</description> 
    <version>1</version> 
    <state> 
     <name>created</name> 
     <metadata> 
      <![CDATA[{"xy":[36,51]}]]> 
     </metadata> 
     <initial>true</initial> 
     <transitions> 
      <transition> 
       <name>review</name> 
       <target>review</target> 
      </transition> 
     </transitions> 
    </state> 
    <task> 
     <name>update</name> 
     <metadata> 
      <![CDATA[{"transitions":{"resubmit":{"bendpoints":[[303,140]]}},"xy":[328,199]}]]> 
     </metadata> 
     <actions> 
      <action> 
       <name>reject</name> 
       <script> 
        <![CDATA[ 
         Packages.com.liferay.portal.kernel.workflow.WorkflowStatusManagerUtil.updateStatus(Packages.com.liferay.portal.kernel.workflow.WorkflowConstants.toStatus("denied"), workflowContext); 
         Packages.com.liferay.portal.kernel.workflow.WorkflowStatusManagerUtil.updateStatus(Packages.com.liferay.portal.kernel.workflow.WorkflowConstants.toStatus("pending"), workflowContext); 
        ]]> 
       </script> 
       <script-language>javascript</script-language> 
       <execution-type>onAssignment</execution-type> 
      </action> 
      <notification> 
       <name>Creator Modification Notification</name> 
       <template>Your submission was rejected by a reviewer, please modify and resubmit.</template> 
       <template-language>text</template-language> 
       <notification-type>email</notification-type> 
       <execution-type>onAssignment</execution-type> 
      </notification> 
     </actions> 
     <assignments> 
      <user /> 
     </assignments> 
     <transitions> 
      <transition> 
       <name>resubmit</name> 
       <target>review</target> 
      </transition> 
     </transitions> 
    </task> 
    <task> 
     <name>review</name> 
     <metadata> 
      <![CDATA[{"xy":[168,36]}]]> 
     </metadata> 
     <actions> 
      <notification> 
       <name>Review Notification</name> 
       <template>You have a new submission waiting for your review in the workflow.</template> 
       <template-language>text</template-language> 
       <notification-type>email</notification-type> 
       <execution-type>onAssignment</execution-type> 
      </notification> 
      <notification> 
       <name>Review Completion Notification</name> 
       <template> 
        Your submission has been reviewed and the reviewer has applied the following ${taskComments}.</template> 
       <template-language>freemarker</template-language> 
       <notification-type>email</notification-type> 
       <recipients> 
        <user /> 
       </recipients> 
       <execution-type>onExit</execution-type> 
      </notification> 
     </actions> 
     <assignments> 
      <roles> 
       <role> 
        <role-type>organization</role-type> 
        <name>Organization APPROVER</name> 
       </role> 
       <role> 
        <role-type>organization</role-type> 
        <name>Organization Content Reviewer</name> 
       </role> 
       <role> 
        <role-type>organization</role-type> 
        <name>Organization Owner</name> 
       </role> 

       <role> 
        <role-type>regular</role-type> 
        <name>Portal Content Reviewer</name> 
       </role> 
       <role> 
        <role-type>site</role-type> 
        <name>Site Administrator</name> 
       </role> 
       <role> 
        <role-type>site</role-type> 
        <name>Site Content Reviewer</name> 
       </role> 

      </roles> 
     </assignments> 
     <transitions> 
      <transition> 
       <name>approve</name> 
       <target>approved</target> 
      </transition> 
      <transition> 
       <name>reject</name> 
       <target>update</target> 
       <default>false</default> 
      </transition> 
     </transitions> 
    </task> 
    <state> 
     <name>approved</name> 
     <metadata> 
      <![CDATA[ 
       {"xy":[380,51]} 
      ]]> 
     </metadata> 
     <actions> 
      <action> 
       <name>approve</name> 
       <script> 
        <![CDATA[ 
         Packages.com.liferay.portal.kernel.workflow.WorkflowStatusManagerUtil.updateStatus(Packages.com.liferay.portal.kernel.workflow.WorkflowConstants.toStatus("approved"), workflowContext); 
        ]]> 
       </script> 
       <script-language>javascript</script-language> 
       <execution-type>onEntry</execution-type> 
      </action> 
     </actions> 
    </state> 
</workflow-definition> 

我沒有將兩個角色如下這是在單批准定義來自默認..

<role> 
<role-type>organization</role-type> 
<name>Organization Administrator</name> 
</role> 

<role> 
<role-type>regular</role-type> 
<name>Administrator</name> 
</role> 

所以什麼正在發生,我需要給特定用戶以管理員的角色還有organizationapprover但如果我給管理員權限給該用戶,然後只有他可以訪問控制面板,可以去工作流任務選項,但它不是真正的想法給管理員權限的用戶,他們的工作只是批准的內容..所以我想,不知何故只是授權organizationapprover使用控制面板,但僅限於訪問工作流任務選項。用戶無法執行任何操作,而只是使用工作流任務選項。

回答

4

如果你看一下默認的工作流定義(singleapprover.xml或類似的),你會發現它將責任角色定義爲「組織批准者」,「站點批准者」,「批准者」或「管理員」 )。

您可以更改此選項 - 如果這是您想要更改的唯一選項,則直接在xml文件中執行此操作就更簡單了。你可以在插件或Liferay的源代碼控件github中找到它。您可能只需將管理員從負責任角色列表中刪除,然後讓您希望成爲其相關網站的「網站審批者」角色負責人的人員。

完成

編輯:我不完全理解您的評論如下,但我給瞭解決方案假定您的用戶在任何組織或站點結構 - 在這種情況下,你可以有一個用戶被「網站批准者「或」組織批准者「。在網站或組織範圍內創建的所有內容都需要獲得批准者批准。

如果您上傳同一站點中的所有內容,但具有不同的用戶分配,則很可能需要執行一些腳本化的任務(您可以編寫工作流系統的某些部分),但這將超出我可以在這裏用幾句話解釋任何事情。我可以指出你目前available documentation,但我懷疑這將足以說明我在說什麼 - 對不起

+0

當我在我的portlet中添加單個批准定義,然後有默認角色創建,當我給任何用戶批​​準或審查與分配給選項的控制面板不顯示,那麼我怎麼去該評論者的工作流任務用戶帳號 –

+0

請查看我更新的答案。 –

0

對於像(A)這樣的特定用戶,您爲該特定用戶指派了一些角色,例如組織機構APPROVER等角色,您可以在控制面板中定義像訪問資源一樣的權限。

相關問題