コード例 #1
0
        public ActionResult Download(int id)
        {
            var            documento       = Context.Documenti.Where(w => w.IdDocumento == id).FirstOrDefault();
            MyUserIdentity currentIdentity = HttpContext.User.Identity as MyUserIdentity;

            //TODO : Verificare se l'utente attualmente loggato ha i privilegi per scaricare
            //questo documento
            if (documento == null)
            {
                //Il documento non esiste, devo restituire un messaggio di errore
                return(new HttpStatusCodeResult(500, "Documento non esistente"));
            }

            // il Download deve essere registrato solo se l'utente è un Fornitore

            if (currentIdentity.CurrentUser.Ruolo.DescrizioneRuolo == "Fornitore")
            {
                Context.Download.Add(new Download
                {
                    IdDocumento  = id,
                    IdFornitore  = currentIdentity.CurrentUser.IdFornitore.Value,
                    DataDownload = DateTime.Now
                });
                Context.SaveChanges();
            }
            return(File(documento.Contenuto, documento.ContentType));//,documento.NomeFile);
        }
コード例 #2
0
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            if (filterContext.RequestContext.HttpContext.User.Identity.IsAuthenticated == false)
            {
                filterContext.Result = new HttpUnauthorizedResult();
                return;
            }

            MyUserIdentity currentIdentity = filterContext.RequestContext.HttpContext.User.Identity as MyUserIdentity;

            if (!String.IsNullOrEmpty(UserFunctions))
            {
                //Se ho impostato l'accesso mediante privilegi, allora li verifico, altrimenti passa e si effettueranno i controlli
                //standard dell'authorize attribute

                /* TODO : Mettere i privilegi su una tabella del database e salvarli all'ìnterno del ticket di autenticazione (Cookie)*/
                List <String> currentUserFunctions = new List <string>();
                switch (currentIdentity.Name)
                {
                case "*****@*****.**":
                    currentUserFunctions.Add("Utenti.Edit");
                    break;
                }

                string[] listOfNeededFunctions = UserFunctions.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

                bool isUserEnabled = false;
                foreach (var function in listOfNeededFunctions)
                {
                    if (currentUserFunctions.Contains(function))
                    {
                        isUserEnabled = true;
                        break;
                    }
                }

                if (isUserEnabled == false)
                {
                    filterContext.Result = new HttpUnauthorizedResult();
                    return;
                }
            }

            base.OnAuthorization(filterContext);
        }
コード例 #3
0
        public ActionResult Index(int?paginaCorrente)
        {
            DocumentiIndexViewModel vm;

            MyUserIdentity currentIdentity = HttpContext.User.Identity as MyUserIdentity;

            if (currentIdentity.CurrentUser.Ruolo.DescrizioneRuolo == "Fornitore")
            {
                vm = DocumentiIndexViewModel.Load(Context, paginaCorrente.HasValue ? paginaCorrente.Value : 1,
                                                  PageSize, (Documento doc) => doc.Attivo && doc.IdFornitore == currentIdentity.CurrentUser.IdFornitore.Value, true);
            }
            else
            {
                vm = DocumentiIndexViewModel.Load(Context, paginaCorrente.HasValue ? paginaCorrente.Value : 1,
                                                  PageSize, (Documento doc) => doc.Attivo, false);
            }
            return(View(vm));
        }
コード例 #4
0
        public static MvcHtmlString Menu(this HtmlHelper helper,
                                         List <Funzione> funzioni)
        {
            //Sto creando un tag ul
            TagBuilder ul = new TagBuilder("ul");

            //Aggiungo la classe sidebar-menu al tag ul
            ul.AddCssClass("sidebar-menu");
            //Aggiungo la classe tree al tag ul
            ul.AddCssClass("tree");
            ul.MergeAttribute("data-widget", "tree");

            MyUserIdentity currentIdentity = HttpContext.Current.User.Identity as MyUserIdentity;
            int            currentIdRuolo  = currentIdentity.CurrentUser.IdRuolo;

            foreach (var funzione in funzioni.Where(f => f.IdRuolo == currentIdRuolo || f.IdRuolo == null))
            {
                AddLi(helper, ul, funzione);
            }

            return(new MvcHtmlString(ul.ToString()));
        }