@PreAuthorize("hasRole('AUTH')")
  @RequestMapping(
      value = "/admin/configuration/saveEmailConfiguration.html",
      method = RequestMethod.POST)
  public String saveEmailSettings(
      @ModelAttribute("configuration") EmailConfig config,
      BindingResult result,
      Model model,
      HttpServletRequest request,
      Locale locale)
      throws Exception {
    setEmailConfigurationMenu(model, request);
    MerchantStore store = (MerchantStore) request.getAttribute(Constants.ADMIN_STORE);
    EmailConfig emailConfig = emailService.getEmailConfiguration(store);
    if (emailConfig == null) {
      emailConfig = new EmailConfig();
    }

    // populte EmailConfig model from UI values
    emailConfig.setProtocol(config.getProtocol());
    emailConfig.setHost(config.getHost());
    emailConfig.setPort(config.getPort());
    emailConfig.setUsername(config.getUsername());
    emailConfig.setPassword(config.getPassword());
    emailConfig.setSmtpAuth(config.isSmtpAuth());
    emailConfig.setStarttls(config.isStarttls());

    emailService.saveEmailConfiguration(emailConfig, store);

    model.addAttribute("configuration", emailConfig);
    model.addAttribute("success", "success");
    return ControllerConstants.Tiles.Configuration.email;
  }
  @PreAuthorize("hasRole('AUTH')")
  @RequestMapping(value = "/admin/configuration/email.html", method = RequestMethod.GET)
  public String displayEmailSettings(
      Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
    setEmailConfigurationMenu(model, request);
    MerchantStore store = (MerchantStore) request.getAttribute(Constants.ADMIN_STORE);
    EmailConfig emailConfig = emailService.getEmailConfiguration(store);
    if (emailConfig == null) {
      emailConfig = new EmailConfig();
      // TODO: Need to check below properties. When there are no record available in
      // MerchantConfguration table with EMAIL_CONFIG key,
      // instead of showing blank fields in setup screen, show default configured values from
      // email.properties
      emailConfig.setProtocol(env.getProperty("mailSender.protocol"));
      emailConfig.setHost(env.getProperty("mailSender.host"));
      emailConfig.setPort(env.getProperty("mailSender.port}"));
      emailConfig.setUsername(env.getProperty("mailSender.username"));
      emailConfig.setPassword(env.getProperty("mailSender.password"));
      emailConfig.setSmtpAuth(Boolean.parseBoolean(env.getProperty("mailSender.mail.smtp.auth")));
      emailConfig.setStarttls(Boolean.parseBoolean(env.getProperty("mail.smtp.starttls.enable")));
    }

    model.addAttribute("configuration", emailConfig);
    return ControllerConstants.Tiles.Configuration.email;
  }