Пример #1
0
        public ActionResult UserIndex(string userId, string CurrentRole, List <int> CurrentProjects)
        {
            foreach (var role in roleHelper.ListUserRoles(userId))
            {
                roleHelper.RemoveUserFromRole(userId, role);
            }

            if (!string.IsNullOrEmpty(CurrentRole))
            {
                roleHelper.AddUserToRole(userId, CurrentRole);
            }

            foreach (var proj in projectHelper.ListUserProjects(userId))
            {
                projectHelper.RemoveUserFromProject(userId, proj.Id);
            }

            if (CurrentProjects != null)

            {
                foreach (var projectId in CurrentProjects)
                {
                    projectHelper.AddUserToProject(userId, projectId);
                }
            }



            ////return RedirectToAction("EditProfile","Members", new { userId = userId });
            return(RedirectToAction("Manage", "Members", new { userId = userId }));
        }
        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"));
            }
        }
Пример #3
0
        public ActionResult ManageUserRoles(string userId, string userRole)
        {
            foreach (var role in roleHelper.ListUserRoles(userId))
            {
                roleHelper.RemoveUserFromRole(userId, role);
            }

            if (!string.IsNullOrEmpty(userRole))
            {
                roleHelper.AddUserToRole(userId, userRole);
            }

            return(RedirectToAction("UserIndex"));
        }
Пример #4
0
        public ActionResult ManageUserRole(string userId, string userRole)
        {
            foreach (var role in roleHelper.ListUserRoles(userId))
            {
                roleHelper.RemoveUserFromRole(userId, role);
            }

            //if the incoming role selection is NOT NULL I want to assign the user to the selected role
            if (!string.IsNullOrEmpty(userRole))
            {
                roleHelper.AddUserToRole(userId, userRole);
            }

            return(RedirectToAction("UserIndex"));
        }
Пример #5
0
        public ActionResult Details([Bind(Include = "SelectedRoles,RolesList")] UserRolesViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user      = (ApplicationUser)TempData["CurrentUser"];
                var userRoles = helper.ListUserRoles(user.Id);

                //DELETE current Roles)
                foreach (var roleName in userRoles)
                {
                    helper.RemoveUserFromRole(user.Id, roleName);
                }

                //ADD the whole list of new Roles)
                if (model.SelectedRoles != null)
                {
                    foreach (var roleName in model.SelectedRoles)
                    {
                        helper.AddUserToRole(user.Id, roleName);
                    }
                }

                db.SaveChanges();
            }
            return(RedirectToAction("Index"));
        }
Пример #6
0
        public ActionResult ManageUserRole(string userId, string UserRole)
        {
            //user UserRolesHelper class
            //remove user from all roles
            foreach (var role in roleHelper.ListUserRoles(userId))
            {
                roleHelper.RemoveUserFromRole(userId, role);
            }
            //if incoming role is not null, assign to role
            if (!string.IsNullOrEmpty(UserRole))
            {
                roleHelper.AddUserToRole(userId, UserRole);
            }


            return(RedirectToAction("UserIndex"));
        }
Пример #7
0
        public ActionResult AssignRoles(string id, List <string> userRoles)
        {
            //Unassign the user from all roles
            var user = db.Users.Find(id);

            if (user.Protected == true)
            {
                ViewBag.AdminError = "Can't change protected user.";
                return(View(user));
            }
            else
            {
                foreach (var role in userHelper.ListUserRoles(id))
                {
                    if (role != "Admin")
                    {
                        userHelper.RemoveUserFromRole(id, role);
                    }
                    else if ((role == "Admin" && userHelper.UsersInRole("Admin").Count > 1) || (userRoles != null && userRoles.Contains("Admin")))
                    {
                        userHelper.RemoveUserFromRole(id, role);
                    }
                    else
                    {
                        ViewBag.AdminError = "Can't remove Admin without adding another first.";
                        return(View(user));
                    }
                }

                if (userRoles != null)
                {
                    //Assign user to selected roles
                    foreach (var role in userRoles)
                    {
                        userHelper.AddUserToRole(id, role);
                    }
                }
            }

            return(RedirectToAction("Index"));
        }
Пример #8
0
 public ActionResult ManageRoles(List <string> users, string roleName)
 {
     if (users != null)
     {
         //Lets iterate over the incoming list of users that were selected from the form
         // and remove each of them from whatever role they occupy
         foreach (var userId in users)
         {
             //Remove them from any role they occupy
             foreach (var role in roleHelper.ListUserRoles(userId))
             {
                 roleHelper.RemoveUserFromRole(userId, role);
             }
             if (!string.IsNullOrEmpty(roleName))
             {
                 roleHelper.AddUserToRole(userId, roleName); //call the 'AddUserToRole' method from the 'helper' object and pass it the userid
                                                             //and the specified 'role'.
             }
         }
     }
     return(RedirectToAction("ManageRoles"));
 }
Пример #9
0
        public ActionResult Details([Bind(Include = "SelectedProjects,ProjectsList,SelectedRoles,RolesList")] UserAssignmentsViewModel model)   // Work on Both Assignments
        {
            if (ModelState.IsValid)
            {
                var user = (ApplicationUser)TempData["CurrentUser"];

                // Work on Project Assignments
                var userProjects = projecthelper.ListProjectsForUser(user.Id);

                //DELETE current Projects)
                foreach (var project in userProjects)
                {
                    projecthelper.RemoveUserFromProject(user.Id, project.Id);
                }

                //ADD the whole list of new Projects)
                if (model.SelectedProjects != null)
                {
                    foreach (var projectid in model.SelectedProjects)
                    {
                        int projectId = Convert.ToInt32(projectid);
                        projecthelper.AddUserToProject(user.Id, projectId);
                    }
                }

                // Work on Role Assignments
                // Only Admin Role can edit Role Assignments
                if (User.IsInRole("Admin"))
                {
                    var userRoles = rolehelper.ListUserRoles(user.Id);

                    //DELETE current Roles)
                    foreach (var roleName in userRoles)
                    {
                        rolehelper.RemoveUserFromRole(user.Id, roleName);
                    }

                    //ADD the whole list of new Roles)
                    if (model.SelectedRoles != null)
                    {
                        foreach (var roleName in model.SelectedRoles)
                        {
                            rolehelper.AddUserToRole(user.Id, roleName);
                        }
                    }
                }

                db.SaveChanges();
            }
            return(RedirectToAction("Index"));
        }
Пример #10
0
        public ActionResult Edit([Bind(Include = "Id,FirstName, LastName, Email, DisplayName,AvatarPath,EmailConfirmed,PhoneNumber,PhoneNumberConfirmed")] ApplicationUser applicationUser, string roles)
        {
            if (ModelState.IsValid)
            {
                //1st get list of roles user occupies

                var currentRoles = roleHelper.ListUserRoles(applicationUser.Id);
                foreach (var role in currentRoles)
                {
                    //Removes users from all and any role they occupy
                    roleHelper.RemoveUserFromRole(applicationUser.Id, role);
                }

                if (!string.IsNullOrEmpty(roles))
                {
                    roleHelper.AddUserToRole(applicationUser.Id, roles);
                }


                //db.Entry(applicationUser).State = EntityState.Modified;
                db.Users.Attach(applicationUser);
                applicationUser.UserName = applicationUser.Email;

                // times 7 for the properties that are subject to change, this allows for only for the ones to be changed instead of losing the information
                db.Entry(applicationUser).Property(x => x.FirstName).IsModified = true;
                db.Entry(applicationUser).Property(x => x.LastName).IsModified  = true;

                db.Entry(applicationUser).Property(x => x.AvatarPath).IsModified  = true;
                db.Entry(applicationUser).Property(x => x.Email).IsModified       = true;
                db.Entry(applicationUser).Property(x => x.PhoneNumber).IsModified = true;
                db.Entry(applicationUser).Property(x => x.UserName).IsModified    = true;


                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(applicationUser));
        }
Пример #11
0
        public ActionResult Edit([Bind(Include = "Id,FirstName,LastName,DisplayName,Email")] ApplicationUser applicationUser, string Roles, List <int> Projects)
        {
            if (ModelState.IsValid)
            {
                applicationUser.UserName = applicationUser.Email;
                //Assign the user to the selected role
                //Determine if the user currently occupies a role and if so remove them from it

                if (User.IsInRole("Admin"))
                {
                    foreach (var role in rolesHelper.ListUserRoles(applicationUser.Id))
                    {
                        rolesHelper.RemoveUserFromRole(applicationUser.Id, role);
                    }

                    //Add them to the selected role
                    if (Roles != null)
                    {
                        rolesHelper.AddUserToRole(applicationUser.Id, Roles);
                    }
                }
                //Remove user from all projects
                foreach (var project in projHelper.ListUserProjects(applicationUser.Id))
                {
                    projHelper.RemoveUserFromProject(applicationUser.Id, project.Id);
                }

                //Add them to the selected projects
                if (Projects != null)
                {
                    foreach (var projectId in Projects)
                    {
                        projHelper.AddUserToProject(applicationUser.Id, projectId);
                    }
                }

                //Because we have removed several fields from the User Edit Form, we have to tell the SQL that only a few specific properties are eligible for modification
                //db.Entry(applicationUser).State = EntityState.Modified; <-- This tells SQL that ALL properties are eligible for modification
                db.Users.Attach(applicationUser);
                db.Entry(applicationUser).Property(x => x.FirstName).IsModified   = true;
                db.Entry(applicationUser).Property(x => x.LastName).IsModified    = true;
                db.Entry(applicationUser).Property(x => x.DisplayName).IsModified = true;
                db.Entry(applicationUser).Property(x => x.Email).IsModified       = true;
                db.Entry(applicationUser).Property(x => x.UserName).IsModified    = true;

                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(applicationUser));
        }
Пример #12
0
        public ActionResult ManageRoles(AdminRoleModel model)
        {
            var y = db.Users.Find(model.Id);

            foreach (var item in db.Roles.Select(r => r.Name).ToList())
            {
                roleHelper.RemoveUserFromRole(y.Id, item);
            }
            foreach (var item in model.selectedRoles)
            {
                roleHelper.AddUserToRole(y.Id, item);
            }
            return(RedirectToAction("Index"));
        }
Пример #13
0
        public ActionResult Edit([Bind(Include = "Id,FirstName,LastName,Email,PhoneNumber,Picture,DisplayName")] ApplicationUser applicationUser, HttpPostedFileBase image, string Roles, List <int> Projects)
        {
            if (ModelState.IsValid)
            {
                if (ImageUploadValidator.IsWebFriendlyImage(image))
                {
                    var fileName = Path.GetFileName(image.FileName);
                    image.SaveAs(Path.Combine(Server.MapPath("~/Images/"), fileName));
                    applicationUser.Picture = "/Images/" + fileName;
                }

                applicationUser.UserName = applicationUser.Email;
                //Assign the user to the selected role
                //Determine if the user currently occupies a role, and if so remove them form it
                foreach (var role in rolesHelper.ListUserRoles(applicationUser.Id))
                {
                    rolesHelper.RemoveUserFromRole(applicationUser.Id, role);
                }
                if (Roles != null)
                {
                    rolesHelper.AddUserToRole(applicationUser.Id, Roles);
                }
                //Add user to the new selected role
                foreach (var proj in projectHelper.ListUserProjects(applicationUser.Id))
                {
                    projectHelper.RemoveUserFromProject(applicationUser.Id, proj.Id);
                }
                if (Projects != null)
                {
                    foreach (var projectId in Projects)
                    {
                        projectHelper.AddUserToProject(applicationUser.Id, projectId);
                    }
                }

                //db.Entry(applicationUser).State = EntityState.Unchanged;
                db.Users.Attach(applicationUser);
                db.Entry(applicationUser).Property(p => p.FirstName).IsModified   = true;
                db.Entry(applicationUser).Property(p => p.LastName).IsModified    = true;
                db.Entry(applicationUser).Property(p => p.Email).IsModified       = true;
                db.Entry(applicationUser).Property(p => p.PhoneNumber).IsModified = true;
                db.Entry(applicationUser).Property(p => p.DisplayName).IsModified = true;
                db.Entry(applicationUser).Property(p => p.UserName).IsModified    = true;
                db.Entry(applicationUser).Property(p => p.Picture).IsModified     = true;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(applicationUser));
        }
Пример #14
0
        public ActionResult RolesAssigned(string userId, List <string> Roles)
        {
            var roleHelp = new UserRolesHelper();

            foreach (var role in db.Roles)
            {
                var name = role.Name;
                roleHelp.RemoveUserFromRole(userId, name);
            }
            foreach (var role in Roles)
            {
                var list = roleHelp.AddUserToRole(userId, role);
            }
            return(RedirectToAction("ListRoles", "Admin"));
        }
Пример #15
0
        public ActionResult ManageRoles(UserRolesViewModel model)
        {
            var user = db.Users.Find(model.Id);

            foreach (var rolemv in db.Roles.Select(r => r.Name).ToList())
            {
                helper.RemoveUserFromRole(user.Id, rolemv);
            }
            foreach (var rolemv in model.SelectedRoles)
            {
                helper.AddUserToRole(user.Id, rolemv);
            }
            ViewBag.confirm = "User's role has been modified";

            return(RedirectToAction("Index"));
        }
Пример #16
0
        public ActionResult Edit(AdminViewRolesModel model)
        {
            var             user   = db.Users.Find(model.User.Id);
            UserRolesHelper helper = new UserRolesHelper();

            foreach (var rolermv in db.Roles.Select(r => r.Name).ToList())
            {
                helper.RemoveUserFromRole(user.Id, rolermv);
            }

            foreach (var roleadd in model.SelectedRoles)
            {
                helper.AddUserToRole(user.Id, roleadd);
            }

            return(RedirectToAction("Index"));
        }
Пример #17
0
        public ActionResult DRemoveFromRole(ListViewModel selectedUser, string RoleName)
        {
            var nHelper = new UserNotificationsHelper();

            ViewBag.Notifications = nHelper.filterNotifications(User.Identity.GetUserId());
            var Helper = new UserRolesHelper();

            foreach (var id in selectedUser.SelectedroleUsers)
            {
                if (id != null)
                {
                    Helper.RemoveUserFromRole(id, RoleName);
                }
            }
            List <SelectListItem> listadminUsers    = new List <SelectListItem>();
            List <SelectListItem> listnonadminUsers = new List <SelectListItem>();
            var result1 = Helper.UsersInRole(RoleName);

            foreach (var user in result1)
            {
                SelectListItem selectList = new SelectListItem()
                {
                    Text  = user.DispalyName,
                    Value = user.Id
                };
                listadminUsers.Add(selectList);
            }
            var result2 = Helper.UsersNotInRole(RoleName);

            foreach (var user in result2)
            {
                SelectListItem selectList = new SelectListItem()
                {
                    Text  = user.DispalyName,
                    Value = user.Id
                };
                listnonadminUsers.Add(selectList);
            }
            ListViewModel adminLViewModel = new ListViewModel()
            {
                zUsers     = listadminUsers,
                otherUsers = listnonadminUsers
            };

            return(View("Developer", adminLViewModel));
        }
Пример #18
0
        public ActionResult RemoveRole(string RemoveId, List <string> SelectedCurrentRoles)
        {
            if (ModelState.IsValid)
            {
                UserRolesHelper helper = new UserRolesHelper(db);
                var             user   = db.Users.Find(RemoveId);
                foreach (var role in SelectedCurrentRoles)
                {
                    helper.RemoveUserFromRole(RemoveId, role);
                }

                db.Entry(user).State = EntityState.Modified;
                db.Users.Attach(user);
                db.SaveChanges();
                return(RedirectToAction("ListUsers"));
            }
            return(View(RemoveId));
        }
Пример #19
0
        public ActionResult AssignRole(string users, string roles)
        {
            if (ModelState.IsValid)
            {
                var currentUser  = db.Users.Find(users).Id;
                var currentRoles = roleHelper.ListUserRoles(users);
                foreach (var role in currentRoles)
                {
                    //Removes users from all and any role they occupy
                    roleHelper.RemoveUserFromRole(currentUser, role);
                }

                if (!string.IsNullOrEmpty(roles))
                {
                    roleHelper.AddUserToRole(currentUser, roles);
                }
            }
            return(RedirectToAction("Index", "Users"));
        }
Пример #20
0
        public ActionResult EditUserRoles(AdminUserViewModels model)
        {
            var             user   = db.Users.Find(model.User.Id);
            UserRolesHelper helper = new UserRolesHelper();

            foreach (var role in db.Roles.Select(r => r.Name).ToList())
            {
                helper.RemoveUserFromRole(user.Id, role);
            }

            if (model.AssignedRoles != null)
            {
                foreach (var role in model.AssignedRoles)
                {
                    helper.AddUserToRole(user.Id, role);
                }

                return(RedirectToAction("Index"));
            }
            return(RedirectToAction("Index"));
        }
Пример #21
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"));
        }
Пример #22
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));
        }
Пример #23
0
        public ActionResult ManageRoles(List <string> usersIds, string role)
        {
            if (usersIds != null)
            {
                foreach (var userId in usersIds)
                {
                    var userRole = roleHelper.ListUserRoles(userId).FirstOrDefault();
                    if (userRole != null)
                    {
                        roleHelper.RemoveUserFromRole(userId, userRole);
                    }
                }

                if (!string.IsNullOrEmpty(role))
                {
                    foreach (var userId in usersIds)
                    {
                        roleHelper.AddUserToRole(userId, role);
                    }
                }
            }

            return(RedirectToAction("ManageRoles", "Admin"));
        }
Пример #24
0
        public ActionResult ManageRoles(List <string> userIds, string roleName)
        {
            //Useing roleHElper to assign their role
            if (userIds != null)
            {
                //remove role from users
                foreach (var userId in userIds)
                {
                    var userRole = rolesHelper.ListUserRoles(userId).FirstOrDefault();

                    if (!string.IsNullOrEmpty(userRole))
                    {
                        rolesHelper.RemoveUserFromRole(userId, userRole);
                    }

                    //add new role to user
                    if (!string.IsNullOrEmpty(roleName))
                    {
                        rolesHelper.AddUserToRole(userId, roleName);
                    }
                }
            }
            return(RedirectToAction("ManageRoles"));
        }