Пример #1
0
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Ticket ticket = db.Tickets.Find(id);

            if (ticket == null)
            {
                return(HttpNotFound());
            }
            ProjectAssignHelper helper  = new ProjectAssignHelper();
            Project             project = db.Projects.Find(ticket.ProjectId);
            var user = db.Users.Find(User.Identity.GetUserId());

            if (User.IsInRole("Admin"))
            {
                return(View(ticket));
            }
            else if (User.IsInRole("ProjectManager"))
            {
                if (helper.IsUserOnProject(user.Id, project.Id) == true) //defaults to true, == true not necessary
                {
                    return(View(ticket));
                }
            }
            else if (User.IsInRole("Developer") && ticket.AssignToUserId == user.Id)
            {
                return(View(ticket));
            }
            else if (User.IsInRole("Submitter") && ticket.OwnerUserId == user.Id)
            {
                return(View(ticket));
            }
            else
            {
                return(RedirectToAction("Index", "Projects"));
            }
            return(RedirectToAction("Index", "Tickets", null));
        }
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Project project = db.Projects.Find(id);

            if (project == null)
            {
                return(HttpNotFound());
            }

            ProjectAssignHelper helper = new ProjectAssignHelper();
            var user = db.Users.Find(User.Identity.GetUserId());

            if (!User.IsInRole("Admin") && helper.IsUserOnProject(user.Id, project.Id) == false)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ViewBag.UserTimeZone = db.Users.Find(User.Identity.GetUserId()).TimeZone;
            return(View(project));
        }
        // GET: Projects/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Project project = db.Projects.Find(id);

            if (project == null)
            {
                return(HttpNotFound());
            }
            ProjectAssignHelper helper = new ProjectAssignHelper();
            var user = db.Users.Find(User.Identity.GetUserId());

            if (helper.IsUserOnProject(user.Id, project.Id) == true || User.IsInRole("Admin") || User.IsInRole("ProjectManager"))
            {
                return(View(project));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
Пример #4
0
        // GET: Tickets/Edit/5
        public ActionResult Edit(int?id)
        {
            Ticket ticket = db.Tickets.Find(id);


            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            if (User.IsInRole("Admin") || User.IsInRole("ProjectManager"))
            {
                ViewBag.TicketStatusId = new SelectList(db.TicketStatus, "Id", "Name", ticket.TicketStatusId);
            }
            else
            {
                ViewBag.TicketStatusId = new SelectList(new[] { ticket.TicketStatus }, "Id", "Name", ticket.TicketStatusId);
            }

            var user = db.Users.Find(User.Identity.GetUserId());
            ProjectAssignHelper helper     = new ProjectAssignHelper();
            UserRoleHelper      userhelper = new UserRoleHelper();

            if (ticket == null)
            {
                return(HttpNotFound());
            }
            List <ApplicationUser> devlist = new List <ApplicationUser>();
            var projectdev = helper.ListUsersOnProject(ticket.ProjectId);

            foreach (var dev in projectdev)
            {
                if (userhelper.IsUserInRole(dev.Id, "Developer") == true)
                {
                    devlist.Add(dev);
                }
            }
            ViewBag.AssignToUserId   = new SelectList(devlist, "Id", "FirstName", ticket.AssignToUserId);
            ViewBag.OwnerUserId      = new SelectList(db.Users, "Id", "FirstName", ticket.OwnerUserId);
            ViewBag.ProjectId        = new SelectList(helper.ListUserProjects(user.Id), "Id", "Title");
            ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name", ticket.TicketPriorityId);
            ViewBag.TicketStatusId   = new SelectList(db.TicketStatus, "Id", "Name", ticket.TicketStatusId);
            ViewBag.TicketTypeId     = new SelectList(db.TicketTypes, "Id", "Name", ticket.TicketTypeId);

            if (User.IsInRole("Admin"))
            {
                return(View(ticket));
            }
            else if (User.IsInRole("ProjectManager"))
            {
                if (helper.IsUserOnProject(user.Id, ticket.ProjectId) == true) //defaults to true, == true not necessary
                {
                    return(View(ticket));
                }
            }
            else if (User.IsInRole("Developer") && ticket.AssignToUserId == user.Id)
            {
                return(View(ticket));
            }
            else if (User.IsInRole("Submitter") && ticket.OwnerUserId == user.Id)
            {
                return(View(ticket));
            }
            else
            {
                return(RedirectToAction("Index", "Home"));
            }
            return(RedirectToAction("Index", "Tickets", null));
        }