public ActionResult Delete(string id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ApplicationUser applicationUser = db.Users.Find(id); if (applicationUser == null) { return(HttpNotFound()); } if (applicationUser.Protected == true) { ViewBag.AdminError = "Can't delete protected user."; return(View(applicationUser)); } var userId = applicationUser.Id; if (!userHelper.IsUserInRole(userId, "Admin")) { return(View(applicationUser)); } else if (userHelper.IsUserInRole(userId, "Admin") && userHelper.UsersInRole("Admin").Count <= 1) { return(View(applicationUser)); } else { ViewBag.AdminError = "Can't remove Admin without adding another first."; return(View(applicationUser)); } //return View(applicationUser); }
public ActionResult Details(int id) { var projPMs = new List <ApplicationUser>(); Ticket Ticket = db.Tickets.Find(id); var projid = Ticket.ProjectId; var UsersOnProject = projectHelper.UsersOnProject(projid).ToList(); if (Ticket == null) { return(RedirectToAction("Oops4", "Home", null)); } foreach (var PmUser in UsersOnProject) { if (rolesHelper.IsUserInRole(PmUser.Id, "Project Manager")) { projPMs.Add(PmUser); } } var ProjectManager = projPMs.ToList(); ViewBag.Pms = new SelectList(ProjectManager, "Id", "DisplayName", projPMs); ViewBag.TicketStatusId = new SelectList(db.TicketStatuses.Where(t => t.Name != "Unassigned" && t.Name != "Closed"), "Id", "Name", Ticket.TicketStatusId); return(View(Ticket)); }
// GET: Tickets public ActionResult Index() { UserRolesHelper helper = new UserRolesHelper(db); var user = User.Identity.GetUserId(); var tickets = db.Tickets.Include(t => t.Project).Include(t => t.TicketPriority).Include(t => t.TicketStatus).Include(t => t.TicketType).Include(t => t.AssignedToUser).Include(t => t.OwnerUser); if (User.IsInRole("Admin")) { return(View(tickets)); } else if (helper.IsUserInRole(user, "Project Manager")) { //var tics = user.Project.SelectMany(p => p.Ticket); var tics = db.Tickets.Where(t => t.AssignedToUserId == user).ToList(); return(View(tics)); } else if (helper.IsUserInRole(user, "Developer")) { //var tics = user.Project.SelectMany(p => p.Ticket); var tics = db.Tickets.Where(t => t.AssignedToUserId == user).ToList(); return(View(tics)); } else { //var tics = user.Project.SelectMany(p => p.Ticket); var tics = db.Tickets.Where(t => t.OwnerUserId == user).ToList(); return(View(tics)); } }
public ActionResult Edit([Bind(Include = "UserId,RolesToSelect")] AdminUserViewModel admModel) { var user = db.Users.Find(admModel.UserId); var id = admModel.UserId; var allRoles = new List <string>(); UserRolesHelper helper = new UserRolesHelper(); allRoles.Add("Submitter"); allRoles.Add("Developer"); allRoles.Add("Project Manager"); allRoles.Add("Admin"); //build a list of selected roles based on the array in the model that was returned var selectedRoles = new List <string>(); for (int i = 0; i < admModel.RolesToSelect.Length; i++) { if (admModel.RolesToSelect[i].Checked == true) { selectedRoles.Add(admModel.RolesToSelect[i].RoleName); } } //if no roles have been selected, remove user from all roles if (selectedRoles == null) { foreach (var rRole in allRoles) { if (helper.IsUserInRole(admModel.UserId, rRole)) { helper.RemoveUserFromRole(admModel.UserId, rRole); } } return(RedirectToAction("Index")); } else { foreach (var sRole in selectedRoles) { if (!helper.IsUserInRole(admModel.UserId, sRole)) { helper.AddUserToRole(admModel.UserId, sRole); } } var rolesToRemove = allRoles.Except(selectedRoles); foreach (var rRole in rolesToRemove) { if (helper.IsUserInRole(admModel.UserId, rRole)) { helper.RemoveUserFromRole(admModel.UserId, rRole); } } return(RedirectToAction("Index")); } }
public ActionResult Index() { //var ticketOwnerId = db.Tickets.FirstOrDefault(t => t.OwnerUserId == user.Id); var user = User.Identity.GetUserId(); var currentUser = db.Users.Find(user); var cudisplay = currentUser.DisplayName; List <Tickets> ticketResults = new List <Tickets>(); var tickets = db.Tickets; var projects = db.Projects; var ownerTickets = tickets.Where(t => t.OwnerUserId == user); var assignedTickets = tickets.Where(t => t.AssignedToUserId == user); var userProjects = projects.Where(p => p.OwnerName == user).Include(t => t.Tickets); var pmProjects = projects.Where(p => p.OwnerName == cudisplay).Include(t => t.Tickets).ToList(); if (roleHelper.IsUserInRole(user, "Admin")) { foreach (var t in tickets) { ticketResults.Add(t); } } else if (roleHelper.IsUserInRole(user, "ProjectManager")) { // Tickets for Projects Managers foreach (var up in pmProjects) //foreach (var up in userProjects) { foreach (var t in up.Tickets) { ticketResults.Add(t); } } } else if (roleHelper.IsUserInRole(user, "Developer")) { // Tickets for Developers - Assigned Tickets foreach (var t in assignedTickets) { ticketResults.Add(t); } } else // default to Submitter { foreach (var t in ownerTickets) { ticketResults.Add(t); } } return(View(ticketResults)); }
// List of project managers public ICollection <ApplicationUser> ProjectManagers() { var projectManagerList = new List <ApplicationUser>(); var List = manager.Users.ToList(); foreach (var user in List) { if (userHelper.IsUserInRole(user.Id, "ProjectManager")) { projectManagerList.Add(user); } } return(projectManagerList); }
public ActionResult AssignToTicket(int?id) { AssignTicketUserViewModel ticketInfo = new AssignTicketUserViewModel(); Ticket ticket = db.Tickets.Find(id); ICollection <ApplicationUser> userToDisplay = new List <ApplicationUser>(); if (User.IsInRole("Project Manager")) { var usersInTheProject = projectHelper.UsersOnProject(ticket.ProjectId); foreach (var user in usersInTheProject) { if (roleHelper.IsUserInRole(user.Id, "Developer")) { userToDisplay.Add(user); } } } else { userToDisplay = db.Users.ToList(); } ticketInfo.ticket = ticket; ticketInfo.projectDescription = db.Projects.Find(ticketInfo.ticket.ProjectId).Name; //ViewBag.developers = new SelectList(roleHelper.UsersInRole("Developer"), "Id", "FirstName"); ViewBag.developers = new SelectList(userToDisplay, "Id", "FirstName"); return(View(ticketInfo)); }
public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Ticket ticket = db.Tickets.Find(id); if (ticket == null) { return(HttpNotFound()); } var projDevs = new List <ApplicationUser>(); var projUsers = projHelper.UsersOnProject(ticket.ProjectId); foreach (var user in projUsers) { if (rolesHelper.IsUserInRole(user.Id, "Developer")) { projDevs.Add(user); } } ViewBag.AssignedToUserId = new SelectList(projDevs, "Id", "DisplayName", ticket.AssignedToUserId); if (User.IsInRole("Developer")) { ViewBag.TicketStatusId = new SelectList(db.TicketStatuses.Where(t => t.Name != "Unassigned" && t.Name != "Closed"), "Id", "Name", ticket.TicketStatusId); } else { ViewBag.TicketStatusId = new SelectList(db.TicketStatuses, "Id", "Name", ticket.TicketStatusId); } //else if (User.IsInRole("Admin") || User.IsInRole("ProjectManager")) //{ // ViewBag.TicketStatusId = new SelectList(db.TicketStatuses.Where(t => t.Name == "Closed"), "Id", "Name", ticket.TicketStatusId); //} var myProjects = projHelper.ListUserProjects(User.Identity.GetUserId()); if (User.IsInRole("Admin")) { ViewBag.ProjectId = new SelectList(db.Projects, "Id", "Name", ticket.ProjectId); } else { ViewBag.ProjectId = new SelectList(myProjects, "Id", "Name", ticket.ProjectId); } ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "DisplayName", ticket.OwnerUserId); ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name", ticket.TicketPriorityId); //ViewBag.TicketStatusId = new SelectList(db.TicketStatuses, "Id", "Name", ticket.TicketStatusId); ViewBag.TicketTypeId = new SelectList(db.TicketTypes, "Id", "Name", ticket.TicketTypeId); return(View(ticket)); }
public ActionResult EditUser([Bind(Include = "User,Roles,SelectedRoles")] AdminUserViewModel model) { var user = db.Users.Find(model.User.Id); UserRolesHelper helper = new UserRolesHelper(); foreach (var role in db.Roles.Select(r => r.Name).ToList()) { if (helper.IsUserInRole(user.Id, role)) { helper.RemoveUserFromRole(user.Id, role); } } foreach (var roleadd in model.SelectedRoles) { if (!helper.IsUserInRole(user.Id, roleadd)) { helper.AddUserToRole(user.Id, roleadd); } } return(RedirectToAction("AdminIndex")); }
public List <string> ListProjectManagers(int projectId) { var projectManagers = new List <string>(); var project = db.Projects.Find(projectId); var projectUsers = project.Users.ToList(); UserRolesHelper helper = new UserRolesHelper(db); foreach (var user in projectUsers) { if (helper.IsUserInRole(user.Id, "Project Manager")) { projectManagers.Add(user.Email); } } return(projectManagers); }
public ActionResult Edit(string UserId) { // ApplicationDbContext db = new ApplicationDbContext(); IList <IdentityRole> userRoles = db.Roles.ToList(); var helper = new UserRolesHelper(); var ListOfRoles = db.Roles.OrderBy(r => r.Name).ToList().Select(rr => rr.Name.ToString()).ToList(); RolesViewModels myRole = new RolesViewModels(); myRole.UserId = UserId; var user = db.Users.Find(UserId); myRole.UserName = user.Email; var ListOfCurrentRoles = helper.ListUserRoles(UserId); IList <Roles> allRoles = new List <Roles>(); foreach (var role in ListOfCurrentRoles) { if (role == "Admin") { myRole.AdminRoleSelected = true; } if (role == "Developer") { myRole.DeveloperRoleSelected = true; } if (role == "Project Manager") { myRole.ProjectManagerRoleSelected = true; } if (role == "Submitter") { myRole.SubmitterRoleSelected = true; } bool roleEn = helper.IsUserInRole(UserId, role); Roles myRoles = new Roles(role, roleEn); //if (helper.IsUserInRole(user.Id, role)) { myRoles = new Roles(role, true); } //else { myRoles = new Roles(role, false); } allRoles.Add(myRoles); } return(View(myRole)); }
public ActionResult Edit(string id) { var user = db.Users.Find(id); AdminUserViewModel AdminModel = new AdminUserViewModel(); UserRolesHelper helper = new UserRolesHelper(); //AdminModel.Roles = new MultiSelectList(db.Roles, "Name", "Name", selected); var allRoles = new List <string>(); allRoles.Add("Submitter"); allRoles.Add("Developer"); allRoles.Add("Project Manager"); allRoles.Add("Admin"); AdminModel.RolesToSelect = new RoleCheckBox[4]; //build an array that has all user roles and whether the user is in that role //this will be sent to the view int i = 0; foreach (var role in allRoles) { var checkBox = new RoleCheckBox(); checkBox.RoleName = role; if (helper.IsUserInRole(id, role)) { checkBox.Checked = true; } else { checkBox.Checked = false; } AdminModel.RolesToSelect[i] = checkBox; i++; } AdminModel.UserId = user.Id; AdminModel.UserName = user.FirstName + " " + user.LastName; AdminModel.UserEmail = user.Email; return(View(AdminModel)); }
public ActionResult EditUser(AdminUserViewModel model, string id) { UserRolesHelper helper = new UserRolesHelper(db); foreach (var role in model.SelectedRoles) { if (!helper.IsUserInRole(model.Id, role)) { helper.AddUserToRole(model.Id, role); } } foreach (var role in db.Roles.ToList()) { if (!model.SelectedRoles.Contains(role.Name)) { helper.RemoveUserFromRole(model.Id, role.Name); } } db.SaveChanges(); return(RedirectToAction("UserIndex", "Admin", model)); }
public ActionResult AssignUser(int id) { Project project = db.Projects.Find(id); if (project == null) { return(RedirectToAction("Oops5", "Home", null)); } // 1. Setup a MultiSelectList to display all the Projects in our system var UsersOnProject = projectHelper.UsersOnProject(id); var projDevs = new List <string>(); var projSubs = new List <string>(); foreach (var devUser in UsersOnProject) { if (rolesHelper.IsUserInRole(devUser.Id, "Developer")) { projDevs.Add(devUser.Id); } } foreach (var subUser in UsersOnProject) { if (rolesHelper.IsUserInRole(subUser.Id, "Submitter")) { projDevs.Add(subUser.Id); } } var Developer = rolesHelper.UsersInRole("Developer"); ViewBag.Devs = new MultiSelectList(Developer, "Id", "DisplayName", projDevs); var Submitter = rolesHelper.UsersInRole("Submitter"); ViewBag.Subs = new MultiSelectList(Submitter, "Id", "DisplayName", projSubs); return(View(project)); }
public ActionResult Edit(int?id) { Project project = db.Projects.Find(id); if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } if (project == null) { return(HttpNotFound()); } var allUsers = db.Users.ToList(); var projectUsers = project.ProjectUsers.ToList(); //var unusedUsers = allUsers.Except(projectUsers).ToList(); //var currentProjectManagers = new List<ApplicationUser>(); //var currentProjectDevelopers = new List<ApplicationUser>(); //var currentProjectSubmitters = new List<ApplicationUser>(); var currentProjectManagers = ""; var currentProjectDevelopers = new List <string>(); var currentProjectSubmitters = new List <string>(); if (projectUsers.Count > 0) { foreach (var user in projectUsers) { if (userRole.IsUserInRole(user.Id, "Project Manager")) { currentProjectManagers = user.Id; } if (userRole.IsUserInRole(user.Id, "Developer")) { currentProjectDevelopers.Add(user.Id); } if (userRole.IsUserInRole(user.Id, "Submitter")) { currentProjectSubmitters.Add(user.Id); } } //ViewBag.projectManagers = new MultiSelectList(projectManagers, "Id", "DisplayName"); //ViewBag.projectDevelopers = new MultiSelectList(projectDevelopers, "Id", "DisplayName"); //ViewBag.projectSubmitters = new MultiSelectList(projectSubmitters, "Id", "DisplayName"); } var allProjectManagers = new List <ApplicationUser>(); var allProjectDevelopers = new List <ApplicationUser>(); var allProjectSubmitters = new List <ApplicationUser>(); foreach (var user in allUsers) { if (userRole.IsUserInRole(user.Id, "Project Manager")) { allProjectManagers.Add(user); } if (userRole.IsUserInRole(user.Id, "Developer")) { allProjectDevelopers.Add(user); } if (userRole.IsUserInRole(user.Id, "Submitter")) { allProjectSubmitters.Add(user); } } ViewBag.projectManagers = new SelectList(allProjectManagers, "Id", "DisplayName", currentProjectManagers); ViewBag.projectDevelopers = new MultiSelectList(allProjectDevelopers, "Id", "DisplayName", currentProjectDevelopers); ViewBag.projectSubmitters = new MultiSelectList(allProjectSubmitters, "Id", "DisplayName", currentProjectSubmitters); return(View(project)); }