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

import java.util.Collections;
import java.util.Map;

import de.ivu.elect.business.benutzerverwaltung.entity.BenutzerParameterWerte;
import de.ivu.elect.business.security.UseCasePermission;
import de.ivu.elect.jee.cdi.BeanManagerUtil;

/**
 * Methode, um an den Principal zu kommen, für Situationen, in den möglicher Weise kein SessionScope existiert
 */
public class ElectCommonPrincipalNoScope {

  public static ElectCommonPrincipal getPricipal() {

    try {
      return BeanManagerUtil.getBeanByClass(ElectCommonPrincipal.class);
    } catch (Exception e) {
      return new ElectCommonPrincipal() { // Kein Context => leere Instanz

        private static final long serialVersionUID = 1L;

        @Override
        public boolean hasUseCasePermission(UseCasePermission permisson) {
          return false;
        }

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

        @Override
        public String getFormattedName() {
          return "";
        }

        @Override
        public Map<BenutzerParameterWerte, String> getBenutzerEinstellungen() {
          return Collections.emptyMap();
        }

        @Override
        public boolean hatRolle(String rollenName) {
          return false;
        }

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