Search code examples
moqui

Hiding screen tabs using condition


I can do it based on ArtifactAuthz, for user groups.

But if I wanted to write some general condition how do I do that? e.g. Here is the parent screen for a number of child tabbed subscreens, attempting to use "disable-when" in a subscreens-item entry:

<subscreens default-item="SalesProcess"  >
    <subscreens-item name="SalesCalendar" disable-when="!ec.user.isInGroup('XXXXX')" location="XXXXXX" /> 
    <!-- NOTE above line in this syntax does not hide tab. -->
</subscreens>

<widgets>
    <container-panel id="sales-panel" dynamic="true">
        <panel-header spacing="0" >
            <subscreens-menu id="sales-menu" type="tab" />
        </panel-header>
        <panel-center>
            <subscreens-active />
        </panel-center>
    </container-panel>
</widgets>

Can't seem to make this work. Any guidance appreciated.


Solution

  • Thank you for bringing this up. This was deprecated a while back but not removed from the XSD. I am commenting it out for now as support for it may be added back in the future.

    For a UserGroup check the solution is to use the Artifact Authz configuration, using a mix of allow/deny records as needed. Deny records are especially useful if you want a group of users to have access to a tree of screens except for a smaller subset of them.