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

public enum TwoFactorAuthenticationTyp {

  DEAKTIVIERT {
    @Override
    public boolean isBenutzerKonfigurierbar() {
      return false;
    }

    @Override
    public boolean isOptional() {
      return false;
    }

    @Override
    public boolean isAktiv() {
      return false;
    }
  },
  AKTIVIERT_KONFIGURATION_BEI_LOGIN {
    @Override
    public boolean isBenutzerKonfigurierbar() {
      return true;
    }

    @Override
    public boolean isOptional() {
      return false;
    }
  },
  AKTIVIERT_KONFIGURATION_BEI_LOGIN_OPTIONAL {
    @Override
    public boolean isBenutzerKonfigurierbar() {
      return true;
    }

    @Override
    public boolean isOptional() {
      return true;
    }
  }
// erstmal nicht vorgesehen
  //  ,
//  AKTIVIERT_KONFIGURATION_DURCH_ADMINISTRATOR {
//    @Override
//    public boolean isBenutzerKonfigurierbar() {
//      return false;
//    }
//
//    @Override
//    public boolean isOptional() {
//      return false;
//    }
//  }
  ;

  public abstract boolean isBenutzerKonfigurierbar();

  public abstract boolean isOptional();

  public boolean isAktiv() {
    return true;
  }
}
