2

我正在使用 liferay 工作流程。我想创建自己的工作流定义。

现在,使用默认工作流“单一审批者”,它只是直接通知管理员特定文档由用户与文档和媒体 portlet 一起上传。这张图片描述了我想要的。

在此处输入图像描述

在此处输入图像描述

每当组织 A 下的用户上传任何文档时,它都不会向主管理员发送批准用户的通知,而是应该发送给组织 A 管理员以批准用户。

我希望我的问题可以理解...

每当组织 A 下的用户上传任何文档时,它都不会向主管理员发送批准用户的通知,而是应该发送给组织 A 管理员以批准用户。

我希望我已经理解了我的问题......

我在我的工作流程中已经这样做了 我有一个批准定义 我已将该定义赋予媒体和文档 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> 

那么现在发生了什么,我需要将特定用户授予管理员角色以及组织批准者,但是如果我将管理员权限授予该用户,那么只有他可以访问控制面板并可以转到工作流任务选项,但它不是将管理员权限授予其工作只是批准内容的用户的真正想法..所以我希望以某种方式只授予组织批准者使用控制面板的权限,但只能访问工作流任务选项。用户不能做任何事情而只是使用工作流任务选项。

4

2 回答 2

4

如果您查看默认工作流定义(singleapprover.xml 或类似文件),您会看到它将负责的角色定义为“组织批准者”、“站点批准者”、“批准者”或“管理员”(记忆中)。

您可以更改它 - 如果这是您唯一想要更改的内容,那么直接在 xml 文件中进行更改甚至更简单。您可以在插件中或在github上的 Liferay 源控制中找到它。您可能只需要从负责角色列表中删除管理员,然后让您希望成为其相关站点的“站点批准者”角色的负责成员。

完毕

编辑:我不完全理解您在下面的评论,但我给出的解决方案假定您的用户是在组织或站点中构建的 - 在这种情况下,您可以让用户成为其中的“站点批准者”或“组织批准者”组织。在站点或组织范围内创建的所有内容都需要由该分组内的批准者批准。

如果您在同一个站点上传所有内容,但有不同的用户分配,您很可能需要进行一些脚本化分配(您可以编写工作流系统的某些部分),但这超出了我可以解释的范围在这里简单说几句。我可以向您指出当前可用的文档,但我怀疑这足以说明我在说什么-抱歉

于 2012-10-04T13:19:27.370 回答
0

对于像 (A) 这样的特定用户,您分配了一些角色,如组织批准等,对于该特定角色,您可以在控制面板中定义权限,如访问资源。

于 2014-03-18T14:34:00.690 回答