| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- 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<string> 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" }));
- }
- }
- }
|