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