2

liferay ワークフローを使用しています。独自のワークフロー定義を作成したいと考えています。

デフォルトのワークフロー「Single Approver」では、特定のドキュメントがユーザーによってドキュメントおよびメディア ポートレットとともにアップロードされたことを管理者に直接通知するだけです。私が欲しいものはこの画像で説明されています。

ここに画像の説明を入力

ここに画像の説明を入力

組織 A のユーザーがドキュメントをアップロードするときは常に、ユーザーを承認する通知をメインの ADMIN に送信するのではなく、組織 A の管理者に送信してユーザーを承認する必要があります。

私の質問が理解できることを願っています...

組織 A のユーザーがドキュメントをアップロードするときは常に、ユーザーを承認する通知をメインの ADMIN に送信するのではなく、組織 A の管理者に送信してユーザーを承認する必要があります。

私の質問が理解できたと思います...

ワークフローでこのように実行しました 単一の承認定義があります メディアおよびドキュメント ポートレットの 1 つのフォルダにその定義を与えました 現在、自動的に作成された 4 つのロールがあります

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 

そのフォルダーに何かをアップロードするたびに、サイトの所有者に通知が送信されます

そして、その中で2つのオプションがあります

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

ここで、4 つ以上のロールを持つユーザーに割り当て、そのユーザーのアカウントを開くと、表示できるコントロール パネルやワークフロー タスク アクションが表示されないとします。

もう1つ、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>

次のように、デフォルトで単一の承認定義にある2つのロールを含めていません..

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

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

特定のユーザーに管理者の役割と組織の承認者の役割を与える必要があるのですが、そのユーザーに管理者権限を与えると、彼だけがコントロールパネルにアクセスでき、ワークフロータスクオプションに移動できますが、そうではありませんコンテンツを承認するだけの仕事をしているユーザーに管理者権限を与えるという本当のアイデア..だから私はどういうわけか組織の承認者にコントロールパネルを使用する許可を与えるだけでなく、ワークフロータスクオプションにアクセスするためだけに与えたい.ワークフロー タスク オプション。

4

2 に答える 2

4

デフォルトのワークフロー定義 (singleapprover.xml など) を見ると、責任ロールが "Organization Approver"、"Site Approver"、"Approver"、または "Administrator" (メモリから) として定義されていることがわかります。

これは変更できます。変更したいのがそれだけであれば、xml ファイルで直接変更するのも簡単です。プラグイン内またはgithubの Liferay のソース管理で見つけることができます。おそらく、責任ロールのリストから管理者を削除し、関連するサイトの「サイト承認者」ロールの責任メンバーにする必要があるだけです。

終わり

編集:以下のコメントを完全には理解していませんが、私が提供したソリューションは、ユーザーが組織またはサイトのいずれかで構造化されていることを前提としています。その場合、ユーザーをその中で「サイト承認者」または「組織承認者」にすることができます組織。サイトまたは組織の範囲内で作成されたすべてのコンテンツは、そのグループ内の承認者によって承認される必要があります。

すべてのコンテンツを同じサイトにアップロードするが、ユーザーの割り当てが異なる場合、ほとんどの場合、いくつかのスクリプト化された割り当てを使用する必要があります (ワークフロー システムの特定の部分をスクリプト化できます)。ここで一言。現在利用可能なドキュメントを紹介することはできますが、これが私が話していることを説明するのに十分であるとは思えません - 申し訳ありません

于 2012-10-04T13:19:27.370 に答える
0

(A) のような特定のユーザーに対して、組織 APPROVER などの役割を割り当てました。その特定の役割に対して、コントロール パネルでアクセス リソースなどの権限を定義できます。

于 2014-03-18T14:34:00.690 に答える