コード例 #1
0
        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);
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        // 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));
            }
        }
コード例 #4
0
        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"));
            }
        }
コード例 #5
0
        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));
        }
コード例 #6
0
        // 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);
        }
コード例 #7
0
        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));
        }
コード例 #8
0
        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));
        }
コード例 #9
0
        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"));
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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));
        }
コード例 #12
0
        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));
        }
コード例 #13
0
        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));
        }
コード例 #14
0
        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));
        }
コード例 #15
0
        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));
        }