uraharadono

Autorizacija

Jan 19th, 2016
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.78 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.Mvc;
  6. using Rent_aCar_TravelAgency.Models;
  7.  
  8. namespace Rent_aCar_TravelAgency.Helper
  9. {
  10.     public class Autorizacija : FilterAttribute, IAuthorizationFilter
  11.     {
  12.         private readonly KorisnickeUloge[] _dozvoljeneUloge;
  13.  
  14.         public Autorizacija(params KorisnickeUloge[] dozvoljeneUloge)
  15.         {
  16.             _dozvoljeneUloge = dozvoljeneUloge;
  17.         }
  18.  
  19.         public void OnAuthorization(AuthorizationContext filterContext)
  20.         {
  21.             Korisnik k = Autentifikacija.GetLogiraniKorisnik(filterContext.HttpContext);
  22.  
  23.             if (k == null)
  24.             {
  25.                 filterContext.HttpContext.Response.Redirect("/Login");
  26.                 return;
  27.             }
  28.  
  29.             //provjera
  30.             foreach (KorisnickeUloge x in _dozvoljeneUloge)
  31.             {
  32.                 if (x == KorisnickeUloge.Zaposlenik && k.Zaposlenik != null)
  33.                     return;
  34.                 if (x == KorisnickeUloge.Vozac && k.Vozac != null)
  35.                     return;
  36.                 //if (x == KorisnickeUloge.Administrator && k.Zaposlenik.Administrator == true)
  37.                 if (x == KorisnickeUloge.Administrator && k.Zaposlenik.Administrator == true)
  38.                     return;
  39.                 if (x == KorisnickeUloge.Korisnik && k.Id != 0)
  40.                     return;
  41.             }
  42.             //ako funkcija nije prekinuta pomoću "return", onda korisnik nema pravo pistupa pa će se vršiti redirekcija
  43.             //na "/Home/Index"
  44.  
  45.             filterContext.HttpContext.Response.Redirect("/");
  46.         }
  47.     }
  48.     public enum KorisnickeUloge
  49.     {
  50.         Zaposlenik,
  51.         Vozac,
  52.         Administrator,
  53.         Korisnik
  54.     }
  55.  
  56. }
Add Comment
Please, Sign In to add comment