package de.ivu.elect.business.security.control;

import de.ivu.elect.business.konfiguration.entity.Konfiguration;
import de.ivu.elect.business.konfiguration.entity.MandantKonfigurationWerte;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.business.wahl.entity.Wahltermin;
import de.ivu.elect.jee.faces.DevelopmentStore;

import javax.enterprise.inject.Specializes;
import java.util.Collection;

@Specializes
public class NlLoginServiceKonfigurationInit extends LoginServiceKonfigurationInit {

  // ELECTVAPP-21 min. eine Ziffer, ein Großbuchstabe, ein Kleinbuchstabe, ein Sonderzeichen, min. 9 Zeichen
  // Sonderzeichen nach OWASP: https://owasp.org/www-community/password-special-characters
  static final String PASSWORT_REGEX = "^(?=.*\\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[ !\\\"#$%&'\\(\\)*+,-\\./:;<=>?@\\[\\\\\\]^_`\\{\\|\\}~]).{9,}$";


  @Override
  protected String getDefaultLoginServicePasswortFormatBeschreibung() {
    // Während der Entwicklung nicht notwendig
    if (DevelopmentStore.isDevelopmentStage()) {
      return super.getDefaultLoginServicePasswortFormatBeschreibung();
    }
    return "ten minste één cijfer, één hoofdletter, één kleine letter en één speciaal teken, minimumlengte 9 tekens";
  }

  @Override
  protected String getDefaultLoginServicePasswortFormatPattern() {
    // Während der Entwicklung nicht notwendig
    if (DevelopmentStore.isDevelopmentStage()) {
      return super.getDefaultLoginServicePasswortFormatPattern();
    }
    return PASSWORT_REGEX;
  }
}
