/** * INTERNAL */ public UserSession(UserSession src, User user, Collection<Role> roles, Locale locale) { this(src.id, user, roles, locale, src.system); this.user = src.user; this.substitutedUser = this.user.equals(user) ? null : user; }
@Override public String formatSubstitution(@Nonnull User user, @Nullable User substitutedUser) { Preconditions.checkNotNullArgument(user); if (substitutedUser == null || user.equals(substitutedUser)) { return formatOfficial(user); } else { return messages.formatMessage(getClass(), "onBehalfOf", formatOfficial(user), formatOfficial(substitutedUser)); } }
protected boolean isOwner(SearchFolder folder) { return userSessionSource.getUserSession().getCurrentOrSubstitutedUser().equals(folder.getUser()); }
protected void initEnabledRules(UserManagementService userManagementService) { addEnabledRule(() -> { Set selected = target.getSelected(); if (!selected.isEmpty()) { return !(selected.contains(userSession.getUser()) || userSession.getCurrentOrSubstitutedUser().equals(target.getSingleSelected())); } return false; }); addEnabledRule(() -> { Set<User> selected = target.getSelected(); if (selected.isEmpty()) return false; List<String> logins = selected.stream() .map(User::getLogin) .collect(Collectors.toList()); return userManagementService.isUsersRemovingAllowed(logins); }); } }
protected void copySettings() { UserSettingService settingsService = AppBeans.get(UserSettingService.NAME); User fromUser = usersDs.getItem(); for (User user : users) { if (!user.equals(fromUser)) { settingsService.copySettings(fromUser, user); } } close("ok"); } }
protected void checkImportPermissions(Folder folder) { UserSession userSession = userSessionSource.getUserSession(); if (folder instanceof SearchFolder) { SearchFolder searchFolder = (SearchFolder) folder; User currentUser = userSession.getCurrentOrSubstitutedUser(); if (searchFolder.getUser() != null && !currentUser.equals(searchFolder.getUser())) { throw new AccessDeniedException(PermissionType.ENTITY_OP, Folder.class.getSimpleName()); } if (searchFolder.getUser() == null && !userSession.isSpecificPermitted("cuba.gui.searchFolder.global")) { throw new AccessDeniedException(PermissionType.ENTITY_OP, Folder.class.getSimpleName()); } } if (folder instanceof AppFolder) { if (!userSession.isSpecificPermitted("cuba.gui.appFolder.global")) { throw new AccessDeniedException(PermissionType.ENTITY_OP, Folder.class.getSimpleName()); } } }
protected void updateSessionSubstitutions(Set<Entity> committedEntities) { for (Entity entity : committedEntities) { if (entity.equals(userSession.getUser())) { userSession.setUser((User) entity); } if (entity.equals(userSession.getSubstitutedUser())) { userSession.setSubstitutedUser((User) entity); } } if (userSession.getUser().equals(getItem())) { for (Entity entity : committedEntities) { if (entity instanceof UserSubstitution) { publishUserSubstitutionsChanged(userSession.getUser()); break; } } } }
protected void setComponentsEditable() { if (getItem().getStartDate() != null) { procDefinitionLookup.setEditable(false); } if (getItem().getStartedBy() != null && !userSession.getCurrentOrSubstitutedUser().equals(getItem().getStartedBy())) { entityNameLookup.setEditable(false); entityIdPickerField.setEditable(false); entityEditorNameField.setEditable(false); } }
@Nonnull @Override public UserSession substituteUser(User substitutedUser) { UserSession currentSession = userSessionSource.getUserSession(); try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); User user; if (currentSession.getUser().equals(substitutedUser)) { user = em.find(User.class, substitutedUser.getId()); if (user == null) { throw new NoResultException("User not found"); } } else { user = loadSubstitutedUser(substitutedUser, currentSession, em); } UserSession session = userSessionManager.createSession(currentSession, user); withSecurityContext(new SecurityContext(serverSession), () -> publishUserSubstitutedEvent(currentSession, session) ); tx.commit(); userSessions.remove(currentSession); userSessionManager.clearPermissionsOnUser(session); userSessions.add(session); return session; } }
if (!oldUser.equals(newUser)) { String newUserName = StringUtils.isBlank(newUser.getName()) ? newUser.getLogin() : newUser.getName();
boolean filterEditable = isEditable(); boolean userCanEditGlobalAppFolder = userSessionSource.getUserSession().isSpecificPermitted(GLOBAL_APP_FOLDERS_PERMISSION); boolean createdByCurrentUser = userSessionSource.getUserSession().getCurrentOrSubstitutedUser().equals(filterEntity.getUser()); boolean hasCode = !Strings.isNullOrEmpty(filterEntity.getCode()); boolean isFolder = filterEntity.getFolder() != null;
})); if (!user.equals(userSession.getCurrentOrSubstitutedUser()) || ExternalUserCredentials.isLoggedInWithExternalAuth(userSession)) { changePasswordBtn.setEnabled(false);
})); if (!user.equals(userSession.getCurrentOrSubstitutedUser()) || companion.isLoggedInWithExternalAuth()) { changePasswordBtn.setEnabled(false);