public async Task <IActionResult> ManageUserRoles() { List <ManageUserRolesViewModel> model = new List <ManageUserRolesViewModel>(); List <BTUser> users = _context.Users.ToList(); foreach (var user in users) { ManageUserRolesViewModel vm = new ManageUserRolesViewModel(); vm.User = user; var selected = (await _rolesService.ListUserRoles(user)).FirstOrDefault(); vm.Roles = new SelectList(_context.Roles, "Name", "Name", selected); model.Add(vm); } return(View(model)); }
// GET: ManageUserRoles public async Task <IActionResult> SetRoles() { TempData["InSetRolesPage"] = true; //List<ManageUserRolesViewModel> model = new List<ManageUserRolesViewModel>(); //List<BTUser> users = _context.Users.ToList(); //foreach(var user in users) //{ // ManageUserRolesViewModel vm = new ManageUserRolesViewModel(); // vm.User = user; // var selected = await _BTRoles.ListUserRoles(user); // vm.Roles = new MultiSelectList(_context.Roles, "Name", "Name", selected); // model.Add(vm); //} List <ManageUserRolesViewModel> model = new List <ManageUserRolesViewModel>(); List <BTUser> users = _context.Users.ToList(); foreach (var user in users) { ManageUserRolesViewModel vm = new ManageUserRolesViewModel(); if (!await _BTRoles.IsUserInRole(user, "Demo") && !await _BTRoles.IsUserInRole(user, "Admin")) { vm.UserId = user.Id; vm.UserName = user.FullName; var selected = await _BTRoles.ListUserRoles(user); // Figure out how to limit the selectList vm.Roles = new SelectList(_context.Roles, "Name", "Name", selected); vm.UserRole = await _BTRoles.ListUserRoles(user); model.Add(vm); } } return(View(model)); }
//GET: MyTickets public async Task <IActionResult> MyTickets() { TempData["InTicketsPage"] = true; var userId = _userManager.GetUserId(User); // Get the currently logged in user. var roleList = await _rolesService.ListUserRoles(_context.Users.Find(userId)); var role = roleList.FirstOrDefault(); List <Ticket> model; switch (role) { case "Admin": model = _context.Tickets .Include(t => t.OwnerUser) .Include(t => t.TicketPriority) .Include(t => t.TicketStatus) .Include(t => t.TicketType) .Include(t => t.Project) .ToList(); break; // Snippet to get ticket for project manager - special case for roles case "ProjectManager": var projectIds = new List <int>(); model = new List <Ticket>(); var userProjects = _context.ProjectUsers.Where(pu => pu.UserId == userId).ToList(); foreach (var record in userProjects) { projectIds.Add(_context.Projects.Find(record.ProjectId).Id); } foreach (var id in projectIds) { var tickets = _context.Tickets.Where(t => t.ProjectId == id) .Include(t => t.OwnerUser) .Include(t => t.TicketPriority) .Include(t => t.TicketStatus) .Include(t => t.TicketType) .Include(t => t.Project) .ToList(); model.AddRange(tickets); } break; case "Developer": model = _context.Tickets.Where(t => t.DeveloperUserId == userId) .Include(t => t.OwnerUser) .Include(t => t.TicketPriority) .Include(t => t.TicketStatus) .Include(t => t.TicketType) .Include(t => t.Project) .ToList(); break; case "Submitter": case "NewUser": model = _context.Tickets.Where(t => t.OwnerUserId == userId) .Include(t => t.OwnerUser) .Include(t => t.TicketPriority) .Include(t => t.TicketStatus) .Include(t => t.TicketType) .Include(t => t.Project) .ToList(); break; default: return(RedirectToAction("Index")); } return(View(model)); }