@Override @Transactional public void deleteUserSetting( UserSettingKey key, User user ) { UserSetting setting = userSettingStore.getUserSetting( user, key.getName() ); if ( setting != null ) { deleteUserSetting( setting ); } }
/** * No transaction for this method, transaction is initiated in * {@link #getUserSettingOptional}. */ @Override public Serializable getUserSetting( UserSettingKey key ) { return getUserSetting( key, Optional.empty() ).orElse( null ); }
@Override @Transactional public List<UserSetting> getAllUserSettings() { User currentUser = currentUserService.getCurrentUser(); return getUserSettings( currentUser ); }
private Optional<Serializable> getUserSetting( UserSettingKey key, Optional<User> user ) { if ( key == null ) { return Optional.empty(); } String username = user.isPresent() ? user.get().getUsername() : currentUserService.getCurrentUsername(); String cacheKey = getCacheKey( key.getName(), username ); Optional<Serializable> result = userSettingCache .get( cacheKey, c -> getUserSettingOptional( key, username ).orElse( null ) ); if ( !result.isPresent() && NAME_SETTING_KEY_MAP.containsKey( key.getName() ) ) { return Optional.ofNullable( systemSettingManager.getSystemSetting( NAME_SETTING_KEY_MAP.get( key.getName() ) ) ); } else { return result; } }
@Override @Transactional public void saveUserSetting( UserSettingKey key, Serializable value ) { User currentUser = currentUserService.getCurrentUser(); saveUserSetting( key, value, currentUser ); }
@Override @Transactional public void deleteUserSetting( UserSetting userSetting ) { userSettingCache.invalidate( getCacheKey( userSetting.getName(), userSetting.getUser().getUsername() ) ); userSettingStore.deleteUserSetting( userSetting ); }
@Override public Map<String, Serializable> getUserSettingsAsMap() { Set<UserSettingKey> userSettingKeys = Stream.of( UserSettingKey.values() ).collect( Collectors.toSet() ); return getUserSettingsWithFallbackByUserAsMap( currentUserService.getCurrentUser(), userSettingKeys, false ); }
@Override @Transactional public void saveUserSetting( UserSettingKey key, Serializable value, String username ) { UserCredentials credentials = userService.getUserCredentialsByUsername( username ); if ( credentials != null ) { saveUserSetting( key, value, credentials.getUserInfo() ); } }
@Override @Transactional public void saveUserSetting( UserSettingKey key, Serializable value, User user ) { if ( user == null ) { return; } userSettingCache.invalidate( getCacheKey( key.getName(), user.getUsername() ) ); UserSetting userSetting = userSettingStore.getUserSetting( user, key.getName() ); if ( userSetting == null ) { userSetting = new UserSetting( user, key.getName(), value ); userSettingStore.addUserSetting( userSetting ); } else { userSetting.setValue( value ); userSettingStore.updateUserSetting( userSetting ); } }
@Override public Map<String, Serializable> getUserSettingsWithFallbackByUserAsMap( User user, Set<UserSettingKey> userSettingKeys, boolean useFallback ) { Map<String, Serializable> result = Sets.newHashSet( getUserSettings( user ) ).stream() .filter( userSetting -> userSetting != null && userSetting.getName() != null && userSetting.getValue() != null ) .collect( Collectors.toMap( UserSetting::getName, UserSetting::getValue ) ); userSettingKeys.forEach( userSettingKey -> { if ( !result.containsKey( userSettingKey.getName() ) ) { Optional<SettingKey> systemSettingKey = SettingKey.getByName( userSettingKey.getName() ); if ( useFallback && systemSettingKey.isPresent() ) { result.put( userSettingKey.getName(), systemSettingManager.getSystemSetting( systemSettingKey.get() ) ); } else { result.put( userSettingKey.getName(), null ); } } } ); return result; }
@Override @Transactional public void deleteUserSetting( UserSettingKey key ) { User currentUser = currentUserService.getCurrentUser(); if ( currentUser != null ) { UserSetting setting = userSettingStore.getUserSetting( currentUser, key.getName() ); if ( setting != null ) { deleteUserSetting( setting ); } } }
/** * No transaction for this method, transaction is initiated in * {@link #getUserSettingOptional}. */ @Override public Serializable getUserSetting( UserSettingKey key, User user ) { return getUserSetting( key, Optional.ofNullable( user ) ).orElse( null ); }