예제 #1
0
        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));
        }
예제 #2
0
        // 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));
        }