Class UserMenuSubstituteUserAction

All Implemented Interfaces:
ExecutableAction, SecuredAction, TargetAction<UserMenu>, Action, HasShortcutCombination, EventListener, org.springframework.context.ApplicationListener<UserSubstitutionsChangedEvent>

@ActionType("sec_userMenuSubstituteUser") public class UserMenuSubstituteUserAction extends UserMenuAction<UserMenuSubstituteUserAction,UserMenu> implements org.springframework.context.ApplicationListener<UserSubstitutionsChangedEvent>
An action that, depending on the number of substituted users, either opens a lookup view to select a substituted user or shows a submenu with the substituted users.
  • Field Details

    • ID

      public static final String ID
      See Also:
    • DEFAULT_VIEW

      public static final String DEFAULT_VIEW
      See Also:
    • actions

      protected Actions actions
    • dialogs

      protected Dialogs dialogs
    • messages

      protected Messages messages
    • dialogWindows

      protected DialogWindows dialogWindows
    • metadataTools

      protected MetadataTools metadataTools
    • applicationContext

      protected org.springframework.context.ApplicationContext applicationContext
    • substitutionManager

      protected UserSubstitutionManager substitutionManager
    • currentUserSubstitution

      protected CurrentUserSubstitution currentUserSubstitution
    • currentSubstitutedUsers

      protected List<org.springframework.security.core.userdetails.UserDetails> currentSubstitutedUsers
    • maxSubstitutions

      protected int maxSubstitutions
    • attachRegistration

      protected com.vaadin.flow.shared.Registration attachRegistration
    • detachRegistration

      protected com.vaadin.flow.shared.Registration detachRegistration
  • Constructor Details

    • UserMenuSubstituteUserAction

      public UserMenuSubstituteUserAction()
    • UserMenuSubstituteUserAction

      public UserMenuSubstituteUserAction(String id)
  • Method Details

    • initAction

      protected void initAction()
      Overrides:
      initAction in class UserMenuAction<UserMenuSubstituteUserAction,UserMenu>
    • setApplicationContext

      @Autowired public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
    • setMessages

      @Autowired public void setMessages(Messages messages)
    • setDialogs

      @Autowired public void setDialogs(Dialogs dialogs)
    • setActions

      @Autowired public void setActions(Actions actions)
    • setCurrentUserSubstitution

      @Autowired public void setCurrentUserSubstitution(CurrentUserSubstitution currentUserSubstitution)
    • setSubstitutionManager

      @Autowired public void setSubstitutionManager(UserSubstitutionManager substitutionManager)
    • setDialogWindowBuilders

      @Autowired public void setDialogWindowBuilders(DialogWindows dialogWindows)
    • setMetadataTools

      @Autowired public void setMetadataTools(MetadataTools metadataTools)
    • setSecurityUiProperties

      @Autowired public void setSecurityUiProperties(SecurityUiProperties securityUiProperties)
    • getMaxSubstitutions

      public int getMaxSubstitutions()
      Returns the maximum number of users that can be substituted by the currently authenticated user, which shows a submenu instead of opening a lookup view.
      Returns:
      the maximum number of users that can be substituted by the currently authenticated user, which shows a submenu instead of opening a lookup view.
    • setMaxSubstitutions

      public void setMaxSubstitutions(int maxSubstitutions)
      Sets the maximum number of users that can be substituted by the currently authenticated user, which shows a submenu instead of opening a lookup view.
      Parameters:
      maxSubstitutions - number of users until a lookup view is used to select a substitution
    • setTargetInternal

      protected void setTargetInternal(@Nullable UserMenu target)
      Overrides:
      setTargetInternal in class UserMenuAction<UserMenuSubstituteUserAction,UserMenu>
    • unbindListeners

      protected void unbindListeners()
    • bindListeners

      protected void bindListeners(UserMenu target)
    • onTargetAttach

      protected void onTargetAttach(com.vaadin.flow.component.AttachEvent attachEvent)
    • onTargetDetach

      protected void onTargetDetach(com.vaadin.flow.component.DetachEvent detachEvent)
    • refreshState

      public void refreshState()
      Description copied from interface: Action
      Refreshes internal state of the action to initialize enabled, visible, text, icon, etc. properties depending on programmatically set values and user permissions set at runtime.

      For example, this method is called by visual components holding actions when they are bound to data. At this moment the action can find out what entity it is connected to and change its state according to the user permissions.

      Specified by:
      refreshState in interface Action
      Overrides:
      refreshState in class SecuredBaseAction
    • updateSubstitutedUsers

      protected void updateSubstitutedUsers()
    • updateMenuItem

      protected void updateMenuItem()
    • createSubMenu

      protected UserMenuItem.HasSubMenu.SubMenu createSubMenu()
    • createSubMenuItem

      protected UserMenuItem createSubMenuItem(org.springframework.security.core.userdetails.UserDetails user)
    • substituteUser

      protected void substituteUser(org.springframework.security.core.userdetails.UserDetails newUser)
    • updateState

      protected void updateState(String username)
    • removeSubMenu

      protected void removeSubMenu()
    • generateUserName

      protected String generateUserName(org.springframework.security.core.userdetails.UserDetails user)
    • setVisibleInternal

      protected void setVisibleInternal(boolean visible)
      Overrides:
      setVisibleInternal in class BaseAction
    • execute

      public void execute()
      Description copied from interface: ExecutableAction
      Executes the Action
      Specified by:
      execute in interface ExecutableAction
    • onApplicationEvent

      public void onApplicationEvent(UserSubstitutionsChangedEvent event)
      Specified by:
      onApplicationEvent in interface org.springframework.context.ApplicationListener<UserSubstitutionsChangedEvent>