首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Moqui窗体显示为禁用。

Moqui窗体显示为禁用。
EN

Stack Overflow用户
提问于 2017-09-08 11:10:42
回答 3查看 312关注 0票数 0

我正在遵循Moqui入门教程。我已经创建了如下所示的创建表单。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<screen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://staging.azpire.co.in/xsd/xml-screen-2.1.xsd"
    require-authentication="anonymous-all">

    <transition name="findTutorial"><default-response url="."/></transition>
    <transition name="createTutorial">
        <service-call name="create#tutorial.Tutorial"></service-call>
        <default-response url="."/>
    </transition>

    <actions>
        <entity-find entity-name="tutorial.Tutorial" list="tutorialList">
            <search-form-inputs/>
        </entity-find>
    </actions>

    <widgets>

        <container-dialog button-text="Create Tutorial" id="CreateTutorialDialog">
            <form-single name="CreateTutorial" transition="createTutorial">
                <auto-fields-entity entity-name="tutorial.Tutorial" field-type="edit"/>
                <field name="submitButton">
                    <default-field title="Create"><submit/></default-field>
                </field>
            </form-single>
        </container-dialog>

        <form-list name="ListTutorials" list="tutorialList" transition="findTutorial">
            <auto-fields-entity entity-name="tutorial.Tutorial" field-type="find-display"/>
        </form-list>
    </widgets>
</screen>

当我点击“创建教程”时,表单就会显示出来。但是,它被禁用(仅读),包括提交按钮。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-04-20 07:11:33

如果您正在学习Moqui入门教程,您需要导入有关安全屏幕的数据,如下所示,以解决此问题:

代码语言:javascript
复制
    <moqui.security.ArtifactGroup artifactGroupId="TUTORIAL" description="Tutorial"/>
    <moqui.security.ArtifactGroupMember artifactGroupId="TUTORIAL" artifactTypeEnumId="AT_XML_SCREEN"
                                            inheritAuthz="Y" artifactName="component://tutorial/screen/tutorial.xml"/>
<!-- Full permissions for the ADMIN user group -->
    <moqui.security.ArtifactAuthz artifactAuthzId="TUTORIAL_AUTHZ_ALL" userGroupId="ADMIN" artifactGroupId="TUTORIAL"
                                      authzTypeEnumId="AUTHZT_ALWAYS" authzActionEnumId="AUTHZA_ALL"/>
票数 2
EN

Stack Overflow用户

发布于 2019-11-15 16:52:24

如果需要一个过渡的临时解决方案,则可以使用:

代码语言:javascript
复制
<transition name="createTutorial" read-only="true">
    <service-call name="create#tutorial.Tutorial"></service-call>
    <default-response url="."/>
</transition>

如果需要临时解决方案,但要进行更多的转换,则可以使用:

代码语言:javascript
复制
<always-actions>
    <script>ec.artifactExecution.disableAuthz()</script>
</always-actions>
<transition name="createTutorial">
    <service-call name="create#tutorial.Tutorial"></service-call>
    <default-response url="."/>
</transition>
<transition name="createEmployee">
    <service-call name="create#employee.Employee"></service-call>
    <default-response url="."/>
</transition>

如果您想要永久解决方案,那么创建下面的种子数据记录:

  1. 如果您想要为可用的UserGroup(ADMIN)进行创作,那么您必须添加以下种子数据:<moqui.security.ArtifactGroup artifactGroupId="ADMIN_ARTIFACTS" description="Administrators"/> <!-- for screen path --> <moqui.security.ArtifactGroupMember artifactGroupId="ADMIN_ARTIFACTS" artifactTypeEnumId="AT_XML_SCREEN" nameIsPattern="N" inheritAuthz="Y" artifactName="component://tutorial/screen/tutorial.xml"/> <!-- for rest calls --> <moqui.security.ArtifactGroupMember artifactGroupId="ADMIN_ARTIFACTS" artifactName="/tutorial/fetch-records" artifactTypeEnumId="AT_REST_PATH" nameIsPattern="N" inheritAuthz="Y"/> <!-- for service path --> <moqui.security.ArtifactGroupMember artifactGroupId="ADMIN_ARTIFACTS" artifactName="TutorialServices.create#Records" artifactTypeEnumId="AT_SERVICE" nameIsPattern="N" inheritAuthz="Y"/> <!-- Give authrization to UserGroup: --> <moqui.security.ArtifactAuthz artifactAuthzId="ADMIN_AUTHZ" userGroupId="ADMIN" artifactGroupId="ADMIN_ARTIFACTS" authzTypeEnumId="AUTHZT_ALWAYS" authzActionEnumId="AUTHZA_ALL"/>
  2. 如果要创建自己的UserGroupType,则必须添加以下种子数据: <moqui.basic.Enumeration enumTypeId="UserGroupType" enumId="UgtMyAdmin" description="My Administrators"/> // If you want to create your own UserGroup then you have to add following seed data: <moqui.security.UserGroup groupTypeEnumId="UgtMyAdmin" userGroupId="MyAdmin" description="My Administrators"/> // you can also create artifact group separately: <moqui.security.ArtifactGroup artifactGroupId="MY_ADMIN_ARTIFACTS" description="My Administrators"/> // Now you have to give screen permission to your own created UserGroup: <!-- for screen path --> <moqui.security.ArtifactGroupMember artifactGroupId="MY_ADMIN_ARTIFACTS" artifactTypeEnumId="AT_XML_SCREEN" nameIsPattern="N" inheritAuthz="Y" artifactName="component://tutorial/screen/tutorial.xml"/> <!-- for rest calls --> <moqui.security.ArtifactGroupMember artifactGroupId="MY_ADMIN_ARTIFACTS" artifactName="/tutorial/fetch-records" artifactTypeEnumId="AT_REST_PATH" nameIsPattern="N" inheritAuthz="Y"/> <!-- for service path --> <moqui.security.ArtifactGroupMember artifactGroupId="MY_ADMIN_ARTIFACTS" artifactName="TutorialServices.create#Records" artifactTypeEnumId="AT_SERVICE" nameIsPattern="N" inheritAuthz="Y"/> <!-- Give authrization to UserGroup: --> <moqui.security.ArtifactAuthz artifactAuthzId="MY_ADMIN_AUTH" userGroupId="MyAdmin" artifactGroupId="MY_ADMIN_ARTIFACTS" authzTypeEnumId="AUTHZT_ALWAYS" authzActionEnumId="AUTHZA_ALL"/>

您还可以从git克隆示例组件:

我希望这能帮上忙!

票数 1
EN

Stack Overflow用户

发布于 2017-12-13 13:52:12

如果转换存在并且用户拥有访问它的权限,那么禁用的所有字段都是一个错误,请通过创建一个问题来报告它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46115145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档