Package io.jmix.securityflowui.action
Class UserMenuSubstituteUserAction
java.lang.Object
io.jmix.flowui.kit.action.AbstractAction
io.jmix.flowui.kit.action.BaseAction
io.jmix.flowui.action.SecuredBaseAction
io.jmix.flowui.action.usermenu.UserMenuAction<UserMenuSubstituteUserAction,UserMenu>
io.jmix.securityflowui.action.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.
-
Nested Class Summary
Nested classes/interfaces inherited from class io.jmix.flowui.action.SecuredBaseAction
SecuredBaseAction.EnabledRule -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Actionsprotected org.springframework.context.ApplicationContextprotected com.vaadin.flow.shared.Registrationprotected List<org.springframework.security.core.userdetails.UserDetails>protected CurrentUserSubstitutionstatic final Stringprotected com.vaadin.flow.shared.Registrationprotected Dialogsprotected DialogWindowsstatic final Stringprotected intprotected final Map<String,UserMenuItem> protected Messagesprotected MetadataToolsprotected UserMenuItem.HasSubMenu.SubMenuprotected UserSubstitutionManagerFields inherited from class io.jmix.flowui.action.usermenu.UserMenuAction
menuItem, targetFields inherited from class io.jmix.flowui.action.SecuredBaseAction
enabledByUiPermissions, enabledRules, visibleByUiPermissionsFields inherited from class io.jmix.flowui.kit.action.BaseAction
enabledExplicitly, visibleExplicitlyFields inherited from class io.jmix.flowui.kit.action.AbstractAction
description, enabled, eventBus, icon, id, shortcutCombination, text, variant, visibleFields inherited from interface io.jmix.flowui.kit.action.Action
PROP_DESCRIPTION, PROP_ENABLED, PROP_ICON, PROP_SHORTCUT_COMBINATION, PROP_TEXT, PROP_VARIANT, PROP_VISIBLE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidbindListeners(UserMenu target) protected UserMenuItem.HasSubMenu.SubMenuprotected UserMenuItemcreateSubMenuItem(org.springframework.security.core.userdetails.UserDetails user) voidexecute()Executes theActionprotected StringgenerateUserName(org.springframework.security.core.userdetails.UserDetails user) intReturns the maximum number of users that can be substituted by the currently authenticated user, which shows a submenu instead of opening a lookup view.protected voidvoidprotected voidonTargetAttach(com.vaadin.flow.component.AttachEvent attachEvent) protected voidonTargetDetach(com.vaadin.flow.component.DetachEvent detachEvent) voidRefreshes internal state of the action to initialize enabled, visible, text, icon, etc.protected voidvoidsetActions(Actions actions) voidsetApplicationContext(org.springframework.context.ApplicationContext applicationContext) voidsetCurrentUserSubstitution(CurrentUserSubstitution currentUserSubstitution) voidsetDialogs(Dialogs dialogs) voidsetDialogWindowBuilders(DialogWindows dialogWindows) voidsetMaxSubstitutions(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.voidsetMessages(Messages messages) voidsetMetadataTools(MetadataTools metadataTools) voidsetSecurityUiProperties(SecurityUiProperties securityUiProperties) voidsetSubstitutionManager(UserSubstitutionManager substitutionManager) protected voidsetTargetInternal(UserMenu target) protected voidsetVisibleInternal(boolean visible) protected voidsubstituteUser(org.springframework.security.core.userdetails.UserDetails newUser) protected voidprotected voidprotected voidupdateState(String username) protected voidMethods inherited from class io.jmix.flowui.action.usermenu.UserMenuAction
actionPerform, checkTarget, getMenuItem, getTarget, setMenuItem, setMenuItemInternal, setTarget, withEnabled, withEnabledByUiPermissions, withHandler, withIcon, withIcon, withShortcutCombination, withTarget, withText, withTitle, withVariant, withVisible, withVisibleByUiPermissionsMethods inherited from class io.jmix.flowui.action.SecuredBaseAction
addEnabledRule, isEnabledByRule, isEnabledByUiPermissions, isPermitted, isVisibleByUiPermissions, removeEnabledRule, setEnabledByUiPermissions, setVisibleByUiPermissionsMethods inherited from class io.jmix.flowui.kit.action.BaseAction
addActionPerformedListener, isApplicable, setEnabled, setEnabledInternal, setVisible, withDescriptionMethods inherited from class io.jmix.flowui.kit.action.AbstractAction
addPropertyChangeListener, firePropertyChange, getDescription, getEventBus, getIcon, getId, getShortcutCombination, getText, getVariant, hasListener, isEnabled, isVisible, setDescription, setIcon, setShortcutCombination, setText, setVariantMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.jmix.flowui.kit.action.Action
addPropertyChangeListener, getDescription, getIcon, getId, getText, getVariant, isEnabled, isVisible, setDescription, setEnabled, setIcon, setText, setVariant, setVisibleMethods inherited from interface org.springframework.context.ApplicationListener
supportsAsyncExecutionMethods inherited from interface io.jmix.flowui.kit.component.HasShortcutCombination
getShortcutCombination, setShortcutCombination
-
Field Details
-
ID
- See Also:
-
DEFAULT_VIEW
- See Also:
-
actions
-
dialogs
-
messages
-
dialogWindows
-
metadataTools
-
applicationContext
protected org.springframework.context.ApplicationContext applicationContext -
substitutionManager
-
currentUserSubstitution
-
currentSubstitutedUsers
-
maxSubstitutions
protected int maxSubstitutions -
subMenu
-
attachRegistration
protected com.vaadin.flow.shared.Registration attachRegistration -
detachRegistration
protected com.vaadin.flow.shared.Registration detachRegistration
-
-
Constructor Details
-
UserMenuSubstituteUserAction
public UserMenuSubstituteUserAction() -
UserMenuSubstituteUserAction
-
-
Method Details
-
initAction
protected void initAction()- Overrides:
initActionin classUserMenuAction<UserMenuSubstituteUserAction,UserMenu>
-
setApplicationContext
@Autowired public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) -
setMessages
-
setDialogs
-
setActions
-
setCurrentUserSubstitution
-
setSubstitutionManager
-
setDialogWindowBuilders
-
setMetadataTools
-
setSecurityUiProperties
-
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
-
unbindListeners
protected void unbindListeners() -
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:ActionRefreshes 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:
refreshStatein interfaceAction- Overrides:
refreshStatein classSecuredBaseAction
-
updateSubstitutedUsers
protected void updateSubstitutedUsers() -
updateMenuItem
protected void updateMenuItem() -
createSubMenu
-
createSubMenuItem
protected UserMenuItem createSubMenuItem(org.springframework.security.core.userdetails.UserDetails user) -
substituteUser
protected void substituteUser(org.springframework.security.core.userdetails.UserDetails newUser) -
updateState
-
removeSubMenu
protected void removeSubMenu() -
generateUserName
-
setVisibleInternal
protected void setVisibleInternal(boolean visible) - Overrides:
setVisibleInternalin classBaseAction
-
execute
public void execute()Description copied from interface:ExecutableActionExecutes theAction- Specified by:
executein interfaceExecutableAction
-
onApplicationEvent
- Specified by:
onApplicationEventin interfaceorg.springframework.context.ApplicationListener<UserSubstitutionsChangedEvent>
-