public ActionResult ChangeRole(string id)
        {
            var model          = new UserRoleViewModel();
            var userRoleHelper = new UserRoleHelper();

            model.Id   = id;
            model.Name = User.Identity.Name;
            var roles     = userRoleHelper.GetAllRoles();
            var userRoles = userRoleHelper.GetUserRoles(id);

            model.Roles = new MultiSelectList(roles, "Name", "Name", userRoles);
            return(View(model));
        }
        public ActionResult ChangeRole(string id)
        {
            var model          = new UserRoleViewModel();
            var userRoleHelper = new UserRoleHelper();

            model.Id   = id;
            model.Name = db.Users.FirstOrDefault(p => p.Id == id).Name;
            var roles     = userRoleHelper.GetAllRoles();
            var userRoles = userRoleHelper.GetUserRoles(id);

            model.Roles = new MultiSelectList(roles, "Name", "Name", userRoles);
            return(View(model));
        }
Beispiel #3
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            var ticketId     = Convert.ToInt32(filterContext.ActionParameters.FirstOrDefault(p => p.Key == "id").Value);
            var actionMethod = filterContext.ActionDescriptor.ActionName;
            var userId       = filterContext.HttpContext.User.Identity.GetUserId();
            var ticket       = db.Tickets.Where(i => i.Id == ticketId).FirstOrDefault();
            var Roles        = userRoleHelper.GetUserRoles(userId);
            var url          = new UrlHelper(filterContext.RequestContext);
            var passed       = false;

            if (Roles.Contains("Project Manager"))
            {
                if (ticket.TicketProject.Users.Select(p => p.Id).Contains(userId))
                {
                    passed = true;
                }
            }
            if (Roles.Contains("Admin"))
            {
                passed = true;
            }
            else if (Roles.Contains("Developer"))
            {
                if (actionMethod == "Details")
                {
                    if (ticket.AssignId == userId || ticket.TicketProject.Users.Select(p => p.Id).Contains(userId))
                    {
                        passed = true;
                    }
                }
                else if (actionMethod == "Edit")
                {
                    if (ticket.AssignId == userId)
                    {
                        passed = true;
                    }
                }
            }
            else if (Roles.Contains("Submitter"))
            {
                if (ticket.CreatorId == userId)
                {
                    passed = true;
                }
            }

            if (!passed)
            {
                filterContext.Result = new RedirectResult(url.Action("Error_403", "Home"));
            }
        }
        public ActionResult AssignRole(string Id)
        {
            var model          = new UserRoleViewModel();
            var userRoleHelper = new UserRoleHelper();

            model.Id       = Id;
            model.UserName = db.Users.FirstOrDefault(p => p.Id == Id).UserName;
            var roles     = userRoleHelper.GetAllroles();
            var userRoles = userRoleHelper.GetUserRoles(Id);

            model.Roles = new MultiSelectList(roles, "Name", "Name", userRoles);

            return(View(model));
        }
        // GET: Posts/Delete/5
        public ActionResult Delete(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ApplicationUser user = db.Users.Find(id);

            if (user == null)
            {
                return(HttpNotFound());
            }
            var userRoleHelper = new UserRoleHelper();
            var userRoles      = userRoleHelper.GetUserRoles(id).ToList();

            if (userRoles.Contains("Admin"))
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Unauthorized));
            }
            return(View(user));
        }
        public ActionResult Index(string id)
        {
            if (!string.IsNullOrWhiteSpace(id))
            {
                var userId         = User.Identity.GetUserId();
                var userRoleHelper = new UserRoleHelper();
                var role           = userRoleHelper.GetUserRoles(userId);
                ViewBag.User = "******";

                if (role.Contains("Developer"))
                {
                    if (id == "myTicket")
                    {
                        ViewBag.User = "******";
                        return(View(db.Tickets.Include(t => t.Comments).Include(t => t.TicketPriority).Include(t => t.TicketProject).Include(t => t.TicketStatus).Include(t => t.TicketType).Where(p => p.AssignId == userId).ToList()));
                    }
                    else if (id == "myProjectsTicket")
                    {
                        ViewBag.User = "******";
                        var dbUSer    = db.Users.FirstOrDefault(p => p.Id == userId);
                        var myProject = dbUSer.Project.Select(p => p.Id);
                        var ticket    = db.Tickets.Where(p => myProject.Contains(p.TicketProjectId)).ToList();
                        return(View(ticket));
                    }
                }
                else if (role.Contains("Project Manager"))
                {
                    var dbUSer    = db.Users.FirstOrDefault(p => p.Id == userId);
                    var myProject = dbUSer.Project.Select(p => p.Id);
                    var ticket    = db.Tickets.Where(p => myProject.Contains(p.TicketProjectId)).ToList();
                    return(View(ticket));
                }
                else if (role.Contains("Submitter"))
                {
                    return(View(db.Tickets.Include(t => t.Comments).Include(t => t.TicketPriority).Include(t => t.TicketProject).Include(t => t.TicketStatus).Include(t => t.TicketType).Where(p => p.CreatorId == userId).ToList()));
                }
            }
            ViewBag.User = "";
            return(View(db.Tickets.Include(t => t.TicketPriority).Include(t => t.Comments).Include(t => t.TicketProject).Include(t => t.TicketStatus).Include(t => t.TicketType).ToList()));
        }