예제 #1
0
        public ActiveDirectoryUtilisateurRepository(AntelopeEntities db)
        {
            var principalContext = new PrincipalContext(ContextType.Domain, ActiveDirectoryConfig.CurrentConfig.DomainName);

            _db = db;
            _principalContext = principalContext;
        }
예제 #2
0
 public ActionQSERepository(AntelopeEntities db)
 {
     _db = db;
 }
예제 #3
0
 public NonConformiteRepository(AntelopeEntities db)
 {
     _db = db;
 }
예제 #4
0
 public DialogueSecuriteRepository(AntelopeEntities db)
 {
     _db = db;
 }
예제 #5
0
 public ActiveDirectoryUtilisateurRepository(AntelopeEntities db, PrincipalContext principalContext)
 {
     _db = db;
     _principalContext = principalContext;
 }
예제 #6
0
 public FicheSecuriteRepository(AntelopeEntities db)
 {
     _db = db;
 }
예제 #7
0
        //Permet grâce : à l'Id d'une Personne, de retourner celle-ci,
        //Si l'ID n'est pas présent, on va la chercher dans l'Annuaire Applicatif (Table Personne) par son Nom/Prenom
        //Si la Personne n'est pas trouvée, on va la chercher sans l'Annuaire AD et la créer dans les Personnes
        //Si elle n'est pas trouvée non plus dans l'AD, on va la créer dans les Personnes, sans Guid.
        public Personne GetPersonneFromAllAnnuaireOrCreate(String Nom, String Prenom, Int32?PersonneId, AntelopeEntities db)
        {
            Personne personne;
            ActiveDirectoryUtilisateurDTO ResponsableActiveDirectoryUtilisateurDTO;

            if (PersonneId == null || PersonneId == 0)
            {
                personne = _personneRepository.GetPersonneByNomPrenom(Nom, Prenom);
                if (personne == null)
                {
                    ResponsableActiveDirectoryUtilisateurDTO = _activeDirectoryUtilisateurRepository.GetActiveDirectoryUtilisateurByNomPrenom(Nom, Prenom);

                    if (ResponsableActiveDirectoryUtilisateurDTO == null)
                    {
                        personne = new Personne()
                        {
                            Nom    = Nom,
                            Prenom = Prenom
                        };
                    }
                    else
                    {
                        personne = new Personne()
                        {
                            Nom    = ResponsableActiveDirectoryUtilisateurDTO.Nom,
                            Prenom = ResponsableActiveDirectoryUtilisateurDTO.Prenom,
                            Guid   = ResponsableActiveDirectoryUtilisateurDTO.Guid
                        };
                    }
                }
            }
            else
            {
                personne = db.Personnes.FirstOrDefault(p => p.PersonneId == PersonneId);
            }

            return(personne);
        }
예제 #8
0
 public PersonneAnnuaireService(AntelopeEntities db)
 {
     _ficheSecuriteRepository = new FicheSecuriteRepository();
     _personneRepository      = new PersonneRepository(db);
     _activeDirectoryUtilisateurRepository = new ActiveDirectoryUtilisateurRepository();
 }
예제 #9
0
 public PersonneRepository(AntelopeEntities db)
 {
     _db = db;
 }
예제 #10
0
        void Session_Start()
        {
            AntelopeEntities db = new AntelopeEntities();

            //-_-_-_-_-_-Traitements pour HSE-_-_-_-_-_-

            Int16 HSERole            = (Int16)HSERoleEnum.Visiteur;
            Int16 CurrentHSERole     = (Int16)HSERoleEnum.Visiteur;
            var   allADHSERoleMapped = from a in db.ADRoles
                                       where a.RoleType == "HSE"
                                       select a;

            var id = ClaimsPrincipal.Current.Identities.First();

            //Seul contournement trouvé au fait que
            //Guid guid = (Guid)Membership.GetUser().ProviderUserKey;
            // Ne fonctionne pas (l'utilisateur est authentifié, mais pas loggué, on dirait...)
            // A refactor dans une méthode !!!
            string            login       = HttpContext.Current.User.Identity.Name;
            string            domain      = login.Substring(0, login.IndexOf('\\'));
            string            userName    = login.Substring(login.IndexOf('\\') + 1);
            DirectoryEntry    domainEntry = new DirectoryEntry("LDAP://" + domain);
            DirectorySearcher searcher    = new DirectorySearcher(domainEntry);

            searcher.Filter = string.Format("(&(objectCategory=person)(objectClass=user)(sAMAccountName={0}))", userName);
            SearchResult   searchResult = searcher.FindOne();
            DirectoryEntry entry        = searchResult.GetDirectoryEntry();
            Guid           objectGuid   = entry.Guid;

            System.Security.Principal.WindowsIdentity.GetCurrent();

            Session["CurrentGuid"] = objectGuid;

            foreach (ADRole ADRole in allADHSERoleMapped)
            {
                Debug.WriteLine(ADRole.Name);

                string[] roles = Roles.GetRolesForUser(id.Name);


                if ((Roles.IsUserInRole(ADRole.Name.Replace(@"\\", @"\"))) || (ADRole.Name.Replace(@"\\", @"\") == login))
                {
                    Debug.WriteLine(ADRole.Name);

                    HSERoleEnum RoleToAdd = (HSERoleEnum)Enum.Parse(typeof(HSERoleEnum), ADRole.RoleCode);  //TODO : Renommer RoleCode en APPRoleCode !!! RoleType en APPRoleType

                    if ((Int16)RoleToAdd < (Int16)HSERole)
                    {
                        HSERole        = (Int16)RoleToAdd;
                        CurrentHSERole = (Int16)RoleToAdd;
                    }
                }
            }

            Session["HSERole"] = HSERole;
            // Dans le futur, l'utilisateur pourra choisir un role inferieur à celui auquel il a droit
            // Il faut donc utiliser CurrentHSERole dans les pages de l'appli.
            //Session["CurrentHSERole"] = Enum.GetName(typeof(HSERoleEnum), CurrentHSERole);
            Session["CurrentHSERole"] = CurrentHSERole;

            //-_-_-_-_-_-Traitements pour QSE-_-_-_-_-_-

            Int16 QSERole        = (Int16)HSERoleEnum.Visiteur;
            Int16 CurrentQSERole = (Int16)HSERoleEnum.Visiteur;

            var allADQSERoleMapped = from a in db.ADRoles
                                     where a.RoleType == "QSE"
                                     select a;

            foreach (ADRole ADRole in allADQSERoleMapped)
            {
                Debug.WriteLine(ADRole.Name);

                //var id = ClaimsPrincipal.Current.Identities.First();
                string[] roles = Roles.GetRolesForUser(id.Name);

                if (Roles.IsUserInRole(ADRole.Name.Replace(@"\\", @"\")))
                {
                    Debug.WriteLine(ADRole.Name);

                    HSERoleEnum RoleToAdd = (HSERoleEnum)Enum.Parse(typeof(HSERoleEnum), ADRole.RoleCode);  //TODO : Renommer RoleCode en APPRoleCode !!! RoleType en APPRoleType

                    if ((Int16)RoleToAdd < (Int16)QSERole)
                    {
                        QSERole        = (Int16)RoleToAdd;
                        CurrentQSERole = (Int16)RoleToAdd;
                    }
                }
            }

            Session["QSERole"] = QSERole;
            // Voir commentaire pour les rôles HSE
            Session["CurrentQSERole"] = CurrentQSERole;
        }
예제 #11
0
 public AnnuaireRepository(AntelopeEntities db)
 {
     _db = db;
 }