@Override public EntitySnapshot createSnapshot(Entity entity, View view, Date snapshotDate) { User user = userSessionSource.getUserSession().getUser(); return createSnapshot(entity, view, snapshotDate, user); }
@Override public EntitySnapshot createTempSnapshot(Entity entity, View view, Date snapshotDate) { User user = userSessionSource.getUserSession().getUser(); return createTempSnapshot(entity, view, snapshotDate, user); }
public String getCurrentSessionLogin() { return sessionSource.getUserSession().getUser().getLogin(); } }
public SecurityContext(UserSession session) { Preconditions.checkNotNullArgument(session, "session is null"); this.session = session; this.sessionId = session.getId(); this.user = session.getUser().getLogin(); }
@Override public UUID getCurrentUserId() { return userSessionSource.checkCurrentUserSession() ? userSessionSource.getUserSession().getUser().getId() : null; } }
@Override public String getCurrentUserLogin() { return userSessionSource.checkCurrentUserSession() ? userSessionSource.getUserSession().getUser().getLogin() : null; }
protected void setTimeZone(Credentials credentials, AuthenticationDetails authenticationDetails) { if (credentials instanceof TimeZoneProvider) { TimeZone timeZone = ((TimeZoneProvider) credentials).getTimeZone(); UserSession session = authenticationDetails.getSession(); if (Boolean.TRUE.equals(session.getUser().getTimeZoneAuto())) { session.setTimeZone(timeZone); } } }
@PostConstruct protected void init() { UserSession userSession = AppBeans.get(UserSessionSource.class).getUserSession(); setUser(userSession.getUser()); setSubstitutedUser(userSession.getSubstitutedUser()); } }
@Override protected void loadData(Map<String, Object> params) { UserSession userSession = AppBeans.get(UserSessionSource.class).getUserSession(); User user; if (userSession.getSubstitutedUser() != null) { user = userSession.getSubstitutedUser(); } else { user = userSession.getUser(); } Map<String, Object> modifiedParams = new HashMap<>(params); modifiedParams.put("userId", user.getId()); super.loadData(modifiedParams); } }
@Override public User authenticate(String login, String password, Locale locale, Map<String, Object> params) throws LoginException { LoginPasswordCredentials credentials = new LoginPasswordCredentials(login, password, locale, params); copyParamsToCredentials(params, credentials); AuthenticationDetails sessionDetails = authenticationManager.authenticate(credentials); return sessionDetails.getSession().getUser(); }
@Override public void copyFrom(AbstractSearchFolder srcFolder) { super.copyFrom(srcFolder); UserSessionSource sessionSource = AppBeans.get(UserSessionSource.NAME); setUser(sessionSource.getUserSession().getUser()); }
protected User loadSubstitutedUser(User substitutedUser, UserSession currentSession, EntityManager em) { TypedQuery<User> query = em.createQuery( "select su from sec$User su where " + "su in (select s.substitutedUser from sec$User u join u.substitutions s " + "where u.id = ?1 and s.substitutedUser.id = ?2)", User.class ); query.setParameter(1, currentSession.getUser().getId()); query.setParameter(2, substitutedUser.getId()); List<User> list = query.getResultList(); if (list.isEmpty()) { throw new NoResultException("User not found"); } return list.get(0); }
@Override public UUID currentOrSubstitutedUserId() { UserSession us = getUserSession(); return us.getSubstitutedUser() != null ? us.getSubstitutedUser().getId() : us.getUser().getId(); }
protected List<UserSubstitution> getUserSubstitutions() { UserManagementService userManagementService = beanLocator.get(UserManagementService.NAME); UserSessionSource uss = beanLocator.get(UserSessionSource.NAME); return userManagementService.getSubstitutedUsers(uss.getUserSession().getUser().getId()); }
@Override public String loadOwnLocale() { try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); User user = em.find(User.class, userSessionSource.getUserSession().getUser().getId(), "user.locale"); if (user == null) throw new EntityAccessException(User.class, userSessionSource.getUserSession().getUser().getId()); tx.commit(); return user.getLanguage(); } }
protected UserSessionEntity createUserSessionEntity(UserSession session, long since, long lastUsedTs) { UserSessionEntity use = metadata.create(UserSessionEntity.class); use.setId(session.getId()); use.setLogin(session.getUser().getLoginLowerCase()); use.setUserName(session.getUser().getName()); use.setAddress(session.getAddress()); use.setClientInfo(session.getClientInfo()); use.setSince(new Date(since)); use.setLastUsedTs(new Date(lastUsedTs)); use.setSystem(session.isSystem()); return use; }
@Override public void saveOwnTimeZone(UserTimeZone timeZone) { log.debug("Saving user's time zone settings: " + timeZone); Transaction tx = persistence.createTransaction(); try { EntityManager em = persistence.getEntityManager(); User user = em.find(User.class, userSessionSource.getUserSession().getUser().getId(), "user.timeZone"); if (user == null) throw new EntityAccessException(User.class, userSessionSource.getUserSession().getUser().getId()); user.setTimeZone(timeZone.name); user.setTimeZoneAuto(timeZone.auto); tx.commit(); } finally { tx.end(); } }
@Override public void saveOwnLocale(String locale) { UUID userId = userSessionSource.getUserSession().getUser().getId(); log.debug("Saving user's {} language settings: {}", userId, locale); try (Transaction tx = persistence.createTransaction()) { EntityManager em = persistence.getEntityManager(); User user = em.find(User.class, userId, "user.locale"); if (user == null) throw new EntityAccessException(User.class, userId); user.setLanguage(locale); tx.commit(); } }
@Override public UserTimeZone loadOwnTimeZone() { Transaction tx = persistence.createTransaction(); try { EntityManager em = persistence.getEntityManager(); User user = em.find(User.class, userSessionSource.getUserSession().getUser().getId(), "user.timeZone"); if (user == null) throw new EntityAccessException(User.class, userSessionSource.getUserSession().getUser().getId()); tx.commit(); return new UserTimeZone(user.getTimeZone(), Boolean.TRUE.equals(user.getTimeZoneAuto())); } finally { tx.end(); } }
@Nullable protected UserSetting findUserSettings(ClientType clientType, String name) { EntityManager em = persistence.getEntityManager(); TypedQuery<UserSetting> q = em.createQuery( "select s from sec$UserSetting s where s.user.id = ?1 and s.name =?2 and s.clientType = ?3", UserSetting.class); q.setParameter(1, userSessionSource.getUserSession().getUser().getId()); q.setParameter(2, name); q.setParameter(3, clientType == null ? null : clientType.getId()); return q.getFirstResult(); }