Package com.sparc.knappsack.components.controllers

Source Code of com.sparc.knappsack.components.controllers.DomainConfigurationController

package com.sparc.knappsack.components.controllers;

import com.sparc.knappsack.components.entities.Domain;
import com.sparc.knappsack.components.entities.DomainConfiguration;
import com.sparc.knappsack.components.services.DomainConfigurationService;
import com.sparc.knappsack.components.services.DomainService;
import com.sparc.knappsack.enums.DomainType;
import com.sparc.knappsack.exceptions.EntityNotFoundException;
import com.sparc.knappsack.forms.DomainConfigurationForm;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class DomainConfigurationController extends AbstractController {

    @Qualifier("domainService")
    @Autowired(required = true)
    private DomainService domainService;

    @Qualifier("domainConfigurationService")
    @Autowired(required = true)
    private DomainConfigurationService domainConfigurationService;

    @PreAuthorize("hasDomainConfigurationAccess(#domainId) or hasRole('ROLE_ADMIN')")
    @RequestMapping(value = "/manager/domainConfiguration/{domainId}", method = RequestMethod.GET)
    public String domainConfiguration(Model model, @PathVariable Long domainId) {
        Domain domain = domainService.get(domainId);
        if (domain == null) {
            throw new EntityNotFoundException(String.format("Domain entity not found while viewing DomainConfiguration page: %s", domainId));
        }
        DomainConfiguration domainConfiguration = domain.getDomainConfiguration() == null ? new DomainConfiguration() : domain.getDomainConfiguration();
        DomainConfigurationForm domainConfigurationForm = getDomainConfigurationForm(domain.getId(), domainConfiguration);

        model.addAttribute("domain", domain);
        model.addAttribute("domainConfiguration", domainConfigurationForm);
        model.addAttribute("domainType", domain.getDomainType().name());
        setSideBarNavAttribute(model, domain.getDomainType());

        return "manager/domainConfigurationTH";
    }

    @PreAuthorize("hasDomainConfigurationAccess(#domainConfigurationForm.domainId) or hasRole('ROLE_ADMIN')")
    @RequestMapping(value = "/manager/saveDomainConfiguration", method = RequestMethod.POST)
    public String saveDomainConfiguration(Model model, @ModelAttribute DomainConfigurationForm domainConfigurationForm) {
        Domain domain = domainService.get(domainConfigurationForm.getDomainId());
        if (domain == null) {
            throw new EntityNotFoundException(String.format("Domain entity not found while saving DomainConfiguration: %s", domainConfigurationForm.getDomainId()));
        }
        model.addAttribute("domain", domain);

        DomainConfiguration domainConfiguration = getDomainConfiguration(domain, domainConfigurationForm);
        domainConfigurationService.update(domainConfiguration);
        model.addAttribute("domainConfiguration", domainConfigurationForm);
        model.addAttribute("domainType", domain.getDomainType().name());
        model.addAttribute("success", true);
        setSideBarNavAttribute(model, domain.getDomainType());

        return "manager/domainConfigurationTH";
    }

    private DomainConfigurationForm getDomainConfigurationForm(Long domainId, DomainConfiguration domainConfiguration) {
        DomainConfigurationForm domainConfigurationForm = new DomainConfigurationForm();
        domainConfigurationForm.setMonitorBandwidth(domainConfiguration.isMonitorBandwidth());
        domainConfigurationForm.setMegabyteBandwidthLimit(domainConfiguration.getMegabyteBandwidthLimit());
        domainConfigurationForm.setApplicationLimit(domainConfiguration.getApplicationLimit());
        domainConfigurationForm.setApplicationVersionLimit(domainConfiguration.getApplicationVersionLimit());
        domainConfigurationForm.setDisabled(domainConfiguration.isDisabledDomain());
        domainConfigurationForm.setDisableLimitValidations(domainConfiguration.isDisableLimitValidations());
        domainConfigurationForm.setDomainId(domainId);
        domainConfigurationForm.setId(domainConfiguration.getId());
        domainConfigurationForm.setMegabyteStorageLimit(domainConfiguration.getMegabyteStorageLimit());
        domainConfigurationForm.setUserLimit(domainConfiguration.getUserLimit());
        domainConfigurationForm.setApplicationResignerEnabled(domainConfiguration.isApplicationResignerEnabled());
        domainConfigurationForm.setCustomBrandingEnabled(domainConfiguration.isCustomBrandingEnabled());

        return domainConfigurationForm;
    }

    private DomainConfiguration getDomainConfiguration(Domain domain, DomainConfigurationForm domainConfigurationForm) {
        DomainConfiguration domainConfiguration = domain.getDomainConfiguration() == null ? new DomainConfiguration() : domain.getDomainConfiguration();
        domainConfiguration.setMonitorBandwidth(domainConfigurationForm.isMonitorBandwidth());
        //First check to see if the new bandwidth limit amount is higher than the existing limit.  If it is reset the bandwidth limit reached flag to false.
        if(domainConfigurationForm.getMegabyteBandwidthLimit() > domainConfiguration.getMegabyteBandwidthLimit()) {
            domainConfiguration.setBandwidthLimitReached(false);
        }
        domainConfiguration.setMegabyteBandwidthLimit(domainConfigurationForm.getMegabyteBandwidthLimit());
        domainConfiguration.setApplicationLimit(domainConfigurationForm.getApplicationLimit());
        domainConfiguration.setApplicationVersionLimit(domainConfigurationForm.getApplicationVersionLimit());
        domainConfiguration.setDisabledDomain(domainConfigurationForm.isDisabled());
        domainConfiguration.setDisableLimitValidations(domainConfigurationForm.isDisableLimitValidations());
        domainConfiguration.setMegabyteStorageLimit(domainConfigurationForm.getMegabyteStorageLimit());
        domainConfiguration.setUserLimit(domainConfigurationForm.getUserLimit());
        domainConfiguration.setApplicationResignerEnabled(domainConfigurationForm.isApplicationResignerEnabled());
        domainConfiguration.setCustomBrandingEnabled(domainConfigurationForm.isCustomBrandingEnabled());

        return domainConfiguration;
    }

    private void setSideBarNavAttribute(Model model, DomainType domainType) {
        if (DomainType.GROUP.equals(domainType)) {
            model.addAttribute("subNav", "groupNav");
        } else if (DomainType.ORGANIZATION.equals(domainType)) {
            model.addAttribute("subNav", "organizationNav");
        }
    }
}
TOP

Related Classes of com.sparc.knappsack.components.controllers.DomainConfigurationController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.