Search in sources :

Example 1 with OrganizationLevel

use of alfio.manager.system.ConfigurationLevels.OrganizationLevel in project alf.io by alfio-event.

the class ConfigurationManager method loadOrganizationConfig.

public Map<ConfigurationKeys.SettingCategory, List<Configuration>> loadOrganizationConfig(int organizationId, String username) {
    User user = userManager.findUserByUsername(username);
    if (!userManager.isOwnerOfOrganization(user, organizationId)) {
        return Collections.emptyMap();
    }
    boolean isAdmin = userManager.isAdmin(user);
    Map<ConfigurationKeys.SettingCategory, List<Configuration>> existing = configurationRepository.findOrganizationConfiguration(organizationId).stream().filter(checkActualConfigurationLevel(isAdmin, ORGANIZATION)).sorted().collect(groupByCategory());
    String paymentMethodsBlacklist = getFor(ConfigurationKeys.PAYMENT_METHODS_BLACKLIST, new OrganizationLevel(organizationId)).getValueOrDefault("");
    Map<SettingCategory, List<Configuration>> result = groupByCategory(isAdmin ? union(SYSTEM, ORGANIZATION) : ORGANIZATION_CONFIGURATION, existing);
    List<SettingCategory> toBeRemoved = PaymentProxy.availableProxies().stream().filter(pp -> paymentMethodsBlacklist.contains(pp.getKey())).flatMap(pp -> pp.getSettingCategories().stream()).collect(toList());
    if (toBeRemoved.isEmpty()) {
        return result;
    } else {
        return result.entrySet().stream().filter(entry -> !toBeRemoved.contains(entry.getKey())).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
    }
}
Also used : OrganizationLevel(alfio.manager.system.ConfigurationLevels.OrganizationLevel) AnalyticsConfiguration(alfio.controller.api.v2.model.AnalyticsConfiguration) java.util(java.util) ConfigurationKeyValuePathLevel(alfio.model.system.ConfigurationKeyValuePathLevel) PaymentProxy(alfio.model.transaction.PaymentProxy) RequiredArgsConstructor(lombok.RequiredArgsConstructor) CategoryLevel(alfio.manager.system.ConfigurationLevels.CategoryLevel) PurchaseContext(alfio.model.PurchaseContext) Cache(com.github.benmanes.caffeine.cache.Cache) StringUtils(org.apache.commons.lang3.StringUtils) Function(java.util.function.Function) IterableUtils(org.apache.commons.collections4.IterableUtils) Pair(org.apache.commons.lang3.tuple.Pair) Profiles(org.springframework.core.env.Profiles) OrganizationLevel(alfio.manager.system.ConfigurationLevels.OrganizationLevel) EventAndOrganizationId(alfio.model.EventAndOrganizationId) Configurable(alfio.model.Configurable) Collector(java.util.stream.Collector) HttpSession(javax.servlet.http.HttpSession) EventLevel(alfio.manager.system.ConfigurationLevels.EventLevel) Predicate(java.util.function.Predicate) PaymentMethod(alfio.model.transaction.PaymentMethod) User(alfio.model.user.User) AlfioInfo(alfio.controller.api.v2.model.AlfioInfo) PurchaseContextInfoBuilder(alfio.controller.api.v2.user.support.PurchaseContextInfoBuilder) EventRepository(alfio.repository.EventRepository) CompareToBuilder(org.apache.commons.lang3.builder.CompareToBuilder) Collectors(java.util.stream.Collectors) ConfigurationRepository(alfio.repository.system.ConfigurationRepository) Consumer(java.util.function.Consumer) Collectors.toList(java.util.stream.Collectors.toList) Initializer(alfio.config.Initializer) Validate(org.apache.commons.lang3.Validate) ConfigurationModification(alfio.model.modification.ConfigurationModification) Environment(org.springframework.core.env.Environment) UserManager(alfio.manager.user.UserManager) TicketReservation(alfio.model.TicketReservation) Configuration(alfio.model.system.Configuration) Log4j2(lombok.extern.log4j.Log4j2) ConfigurationPathLevel(alfio.model.system.ConfigurationPathLevel) ConfigurationKeys(alfio.model.system.ConfigurationKeys) Transactional(org.springframework.transaction.annotation.Transactional) User(alfio.model.user.User) Collectors.toList(java.util.stream.Collectors.toList)

Aggregations

Initializer (alfio.config.Initializer)1 AlfioInfo (alfio.controller.api.v2.model.AlfioInfo)1 AnalyticsConfiguration (alfio.controller.api.v2.model.AnalyticsConfiguration)1 PurchaseContextInfoBuilder (alfio.controller.api.v2.user.support.PurchaseContextInfoBuilder)1 CategoryLevel (alfio.manager.system.ConfigurationLevels.CategoryLevel)1 EventLevel (alfio.manager.system.ConfigurationLevels.EventLevel)1 OrganizationLevel (alfio.manager.system.ConfigurationLevels.OrganizationLevel)1 UserManager (alfio.manager.user.UserManager)1 Configurable (alfio.model.Configurable)1 EventAndOrganizationId (alfio.model.EventAndOrganizationId)1 PurchaseContext (alfio.model.PurchaseContext)1 TicketReservation (alfio.model.TicketReservation)1 ConfigurationModification (alfio.model.modification.ConfigurationModification)1 Configuration (alfio.model.system.Configuration)1 ConfigurationKeyValuePathLevel (alfio.model.system.ConfigurationKeyValuePathLevel)1 ConfigurationKeys (alfio.model.system.ConfigurationKeys)1 ConfigurationPathLevel (alfio.model.system.ConfigurationPathLevel)1 PaymentMethod (alfio.model.transaction.PaymentMethod)1 PaymentProxy (alfio.model.transaction.PaymentProxy)1 User (alfio.model.user.User)1