public ActionResult Details(int id) { Ticket ticketref = db.Tickets.Find(id); var userId = User.Identity.GetUserId(); var proj = ticketref.ProjectId; if (User.IsInRole("Submitter") && userId != ticketref.OwnerUserId) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden)); } if (User.IsInRole("Developer") && userId != ticketref.AssignedToUserId) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden)); } var isuseronproject = projectHelper.IsUserOnProject(userId, proj); if (User.IsInRole("Project Manager") && !isuseronproject) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden)); } Ticket ticket = db.Tickets.Include(t => t.TicketHistories).Include(t => t.TicketAttachments).Include(t => t.TicketComments).FirstOrDefault(t => t.Id == id); if (ticket == null) { return(HttpNotFound()); } return(View(ticket)); }
public async Task <ActionResult> EditUsers([Bind(Include = "Users,Project,SelectedUsers")] ProjectViewModel model, TicketNotification ticketNotification) { ProjectHelper helper = new ProjectHelper(); foreach (var user in db.Users) { if (helper.IsUserOnProject(user.Id, model.Project.Id)) { helper.RemoveUserFromProject(user.Id, model.Project.Id); } } foreach (var user in model.SelectedUsers) { if (!helper.IsUserOnProject(user, model.Project.Id)) { helper.AddUserToProject(user, model.Project.Id); //userManager.SendEmailAsync(user, "Notification", "You have been added to project " + model.Project.Name); var callbackUrl = Url.Action("Details", "Projects", new { id = model.Project.Id }, protocol: Request.Url.Scheme); try { EmailService ems = new EmailService(); IdentityMessage msg = new IdentityMessage(); ApplicationUser usr = db.Users.Find(user); msg.Body = "You have been added to a Project." + Environment.NewLine + "Please click the following link to view the details" + "<a href=\"" + callbackUrl + "\">PROJECT</a>"; msg.Destination = usr.Email; msg.Subject = "BugTracker"; await ems.SendMailAsync(msg); } catch (Exception ex) { await Task.FromResult(0); } } } return(RedirectToAction("Index")); }
public ActionResult Details(int id) { var isOnProj = projectHelper.IsUserOnProject(User.Identity.GetUserId(), id); if (User.IsInRole("Project Manager") && !isOnProj) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Project project = db.Projects.Find(id); if (project == null) { return(HttpNotFound()); } return(View(project)); }