using System.Collections.Generic; using System.Linq; using System.Web.Mvc; using System; using System.IO; using CD67.FicheCollege.Entity; using CD67.FicheCollege.MVC.Models; using System.Web; using CD67.FicheCollege.MVC.Internal; namespace CD67.PIMP.MVC.Internal { public class Acces : ActionFilterAttribute { private Entities db = new Entities(); public string groupes { get; set; } public override void OnActionExecuting(ActionExecutingContext filterContext) { UtilisateurConnecte uc = UtilisateurConnecteFactory.getUtilisateurConnecte(); if (string.IsNullOrEmpty(groupes)|groupes == "*") { base.OnActionExecuting(filterContext); return; } List groupe_names = groupes.Split(',').ToList(); if(!groupe_names.Contains("Admin")) { groupe_names.Insert(0, "Admin"); } foreach (string groupe_name in groupe_names) { try { int groupe_id = db.Groupes.Where(g => g.Nom == groupe_name).First().Id; if (db.Utilisateurs.Any(u => u.Sid == uc.sid && u.GroupeId == groupe_id)) { base.OnActionExecuting(filterContext); return; } } catch (System.InvalidOperationException) { continue; } } filterContext.Result = new RedirectToRouteResult(new System.Web.Routing.RouteValueDictionary(new { controller = "Home", action = "Unauthorized" })); } } }