Class AuthFilterMenuVisitor

  • All Implemented Interfaces:
    org.uberfire.workbench.model.menu.MenuVisitor

    public class AuthFilterMenuVisitor
    extends Object
    implements org.uberfire.workbench.model.menu.MenuVisitor
    Wraps a menu visitor, filtering out menu items that a given user is not allowed to access. The wrapped visitor only sees the items that the user is allowed to see.
    • Constructor Summary

      Constructors 
      Constructor Description
      AuthFilterMenuVisitor​(org.uberfire.security.authz.AuthorizationManager authzManager, org.jboss.errai.security.shared.api.identity.User user, org.uberfire.workbench.model.menu.MenuVisitor chainedVisitor)
      Wraps the given menu visitor, only forwarding calls that represent menu items the given user is allowed to see.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean authorize​(org.uberfire.workbench.model.menu.MenuItem item)
      Check the user is allowed to access the given menu item.
      void visit​(org.uberfire.workbench.model.menu.MenuCustom<?> menuCustom)  
      void visit​(org.uberfire.workbench.model.menu.MenuItemCommand menuItemCommand)  
      void visit​(org.uberfire.workbench.model.menu.MenuItemPerspective menuItemPerspective)  
      void visit​(org.uberfire.workbench.model.menu.MenuItemPlain menuItemPlain)  
      boolean visitEnter​(org.uberfire.workbench.model.menu.MenuGroup menuGroup)  
      boolean visitEnter​(org.uberfire.workbench.model.menu.Menus menus)  
      void visitLeave​(org.uberfire.workbench.model.menu.MenuGroup menuGroup)  
      void visitLeave​(org.uberfire.workbench.model.menu.Menus menus)  
    • Constructor Detail

      • AuthFilterMenuVisitor

        public AuthFilterMenuVisitor​(org.uberfire.security.authz.AuthorizationManager authzManager,
                                     org.jboss.errai.security.shared.api.identity.User user,
                                     org.uberfire.workbench.model.menu.MenuVisitor chainedVisitor)
        Wraps the given menu visitor, only forwarding calls that represent menu items the given user is allowed to see.
        Parameters:
        authzManager - The authorization manager that decides what is visible. Not null.
        user - The user who will see the menus being visited. Not null.
        chainedVisitor - The menu visitor that receives calls for all authorized parts of the menu tree. Not null.
    • Method Detail

      • visitEnter

        public boolean visitEnter​(org.uberfire.workbench.model.menu.Menus menus)
        Specified by:
        visitEnter in interface org.uberfire.workbench.model.menu.MenuVisitor
      • visitLeave

        public void visitLeave​(org.uberfire.workbench.model.menu.Menus menus)
        Specified by:
        visitLeave in interface org.uberfire.workbench.model.menu.MenuVisitor
      • visitEnter

        public boolean visitEnter​(org.uberfire.workbench.model.menu.MenuGroup menuGroup)
        Specified by:
        visitEnter in interface org.uberfire.workbench.model.menu.MenuVisitor
      • visitLeave

        public void visitLeave​(org.uberfire.workbench.model.menu.MenuGroup menuGroup)
        Specified by:
        visitLeave in interface org.uberfire.workbench.model.menu.MenuVisitor
      • visit

        public void visit​(org.uberfire.workbench.model.menu.MenuItemPlain menuItemPlain)
        Specified by:
        visit in interface org.uberfire.workbench.model.menu.MenuVisitor
      • visit

        public void visit​(org.uberfire.workbench.model.menu.MenuItemCommand menuItemCommand)
        Specified by:
        visit in interface org.uberfire.workbench.model.menu.MenuVisitor
      • visit

        public void visit​(org.uberfire.workbench.model.menu.MenuCustom<?> menuCustom)
        Specified by:
        visit in interface org.uberfire.workbench.model.menu.MenuVisitor
      • visit

        public void visit​(org.uberfire.workbench.model.menu.MenuItemPerspective menuItemPerspective)
        Specified by:
        visit in interface org.uberfire.workbench.model.menu.MenuVisitor
      • authorize

        public boolean authorize​(org.uberfire.workbench.model.menu.MenuItem item)
        Check the user is allowed to access the given menu item.

        If the item has any references to resource actions ResourceActionRef or custom permissions then the access is granted provided all those references are also granted.