Example #1
0
        public async Task <ActionResult> Change(ChangeUserRoleViewModel model)
        {
            //get list of role
            ViewBag.RoleId = new SelectList(_roleRepository.GetRoles(), "Id", "Name", model.RoleId);

            if (ModelState.IsValid)
            {
                if (model.RoleId == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
                IdentityRole role = _roleRepository.GetRoleById(model.RoleId);
                if (role == null)
                {
                    ModelState.AddModelError(string.Empty, "System was unable to find to chosen role.");
                    return(View(model));
                }
                //check if user already exist in such selected role
                if (await UserManager.IsInRoleAsync(model.UserId, role.Name))
                {
                    ModelState.AddModelError(string.Empty, "User already exist in role.");
                    return(View(model));
                }
                UserManager.RemoveFromRole(model.UserId, model.RoleInUse);              //remove user from RoleInUse
                IdentityResult result = UserManager.AddToRole(model.UserId, role.Name); //add user role
                await UserManager.UpdateSecurityStampAsync(model.UserId);

                return(RedirectToAction("Index"));
            }

            return(View(model));
        }
Example #2
0
        // You should be able to remove user from role here
        // GET: /SystemRoles/RemoveFromRole/5
        public ActionResult RemoveFromRole(string id, string role)
        {
            ChangeUserRoleViewModel model = new ChangeUserRoleViewModel();

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            if (role == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var user = UserManager.FindByIdAsync(id);

            if (user.Result == null)
            {
                ModelState.AddModelError(string.Empty, "System was unable to find user.");
                return(View());
            }

            model.Email     = user.Result.Email;
            model.UserName  = user.Result.UserName;
            model.UserId    = user.Result.Id;
            model.RoleInUse = role;

            return(View(model));
        }
Example #3
0
        public async Task <IActionResult> ChangeRole([FromForm] ChangeUserRoleViewModel model)
        {
            var command = this.unitOfWork.Create <ChangeUserRoleCommand>();
            await command.ExecuteAsync(model);

            return(Redirect($"/Users/Details/{model.Id}"));
        }
Example #4
0
        // You should be able to change user's role from here
        // GET: /SystemRoles/Change/5
        public ActionResult Change(string id, string role)
        {
            ChangeUserRoleViewModel model = new ChangeUserRoleViewModel();

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            if (role == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var user = UserManager.FindByIdAsync(id);

            if (user.Result == null)
            {
                ModelState.AddModelError(string.Empty, "System was unable to find user.");
                return(View());
            }
            model.Email     = user.Result.Email;
            model.UserName  = user.Result.UserName;
            model.UserId    = user.Result.Id;
            model.RoleInUse = role;

            //get list of role
            ViewBag.RoleId = new SelectList(_roleRepository.GetRoles(), "Id", "Name", model.RoleId);
            return(View(model));
        }
Example #5
0
        public async Task <IActionResult> Role(string userId)
        {
            var user = await this.usersService.GetUserById(userId);

            if (user == null)
            {
                return(NotFound());
            }

            var roles = await this.roleManager
                        .Roles
                        .Select(r => new SelectListItem
            {
                Text  = r.Name,
                Value = r.Name
            })
                        .ToListAsync();

            var model = new ChangeUserRoleViewModel
            {
                User  = user,
                Roles = roles
            };

            return(this.View(model));
        }
Example #6
0
        public ActionResult ChangeRole()
        {
            ChangeUserRoleViewModel model = new ChangeUserRoleViewModel()
            {
                Users      = adminService.GetUsers(),
                MasterPage = UpdateMasterPageData()
            };

            return(View("~/Views/Admin/ChangeUserRole.cshtml", model));
        }
Example #7
0
        /// <summary>
        /// get user roles with select items.
        /// </summary>
        /// <param name="uid"></param>
        /// <returns></returns>
        public ChangeUserRoleViewModel GetViewModel(string uid)
        {
            ChangeUserRoleViewModel mdl;
            List <SelectListItem>   selecteditemsRoles;
            string noAuth = "(无权限)";

            SelectListItem sl = new SelectListItem()
            {
                Selected = true,
                Text     = noAuth,
                Value    = "200"
            };

            selecteditemsRoles = GetRoleListItem().ToList();
            selecteditemsRoles.Add(sl);

            var    u = UserManager.FindById(uid);
            string username = null, roleNameList = null;


            if (u != null)
            {
                username = u.UserName;
                var r = GetRoleNamesUser(u);
                if (r != null)
                {
                    selecteditemsRoles.RemoveAll(a => r.Contains(a.Text));
                    if (selecteditemsRoles.Count == 0)
                    {
                        selecteditemsRoles = new List <SelectListItem>()
                        {
                            new SelectListItem()
                            {
                                Text = noAuth, Value = "-1"
                            }
                        };
                    }
                    roleNameList = string.Join(",", r);
                }
                else
                {
                    roleNameList = noAuth;
                }
            }


            mdl = new ChangeUserRoleViewModel()
            {
                SelectListRoles = selecteditemsRoles,
                Uid             = uid,
                UserName        = username,
                RoleList        = roleNameList
            };
            return(mdl);
        }
Example #8
0
        public async Task <IActionResult> Index()
        {
            var model = new ChangeUsersViewModel();

            var users = _userManager.Users.OrderBy(x => x.UserName).ToList();

            foreach (var user in users)
            {
                var userRoles = await _userManager.GetRolesAsync(user);

                var userRole = userRoles.FirstOrDefault();
                var userVM   = new ChangeUserRoleViewModel
                {
                    UserName    = user.UserName,
                    Email       = user.Email,
                    CurrentRole = userRole,
                    IsUser      = userRole == "User",
                    IsModerator = userRole == "Moderator",
                    IsAdmin     = userRole == "Admin",
                };
                switch (userRole)
                {
                case "Admin":
                {
                    model.Administrators.Add(userVM);
                    break;
                }

                case "Moderator":
                {
                    model.Moderators.Add(userVM);
                    break;
                }

                default:
                {
                    model.Users.Add(userVM);
                    break;
                }
                }
            }

            var roles = _roleManager.Roles.Select(r => r.Name).ToList();

            //var theusers = _roleManager.Roles.Where(r=>r.Name=="Admin").Select(r => r.Users);
            model.Roles = roles;
            //_roleManager.
            return(View(model));
        }
Example #9
0
        public async Task <IActionResult> SaveUserRole(ChangeUserRoleViewModel model)
        {
            var adminUsers = await _userManager.GetUsersInRoleAsync("Admin");

            IList <ApplicationUser> blockedAdmins = adminUsers.Where(auser => auser.IsBlocked).ToList();

            //If there is less than one admin, return error to user
            try
            {
                var user = await _userManager.FindByEmailAsync(model.Email);

                var oldRole = _userManager.GetRolesAsync(user).Result;

                //Checks if user is an admin, there will at least be one unblocked admin and if the user is not currently blocked
                if (model.OldRole == "Admin" &&
                    (_userManager.GetUsersInRoleAsync(model.OldRole).Result.Count == 1 ||
                     blockedAdmins.Count >= adminUsers.Count - 1) &&
                    !user.IsBlocked)
                {
                    model.Roles = GetUserIdentityRoles();
                    throw new Exception("There Must be AT LEAST 1 unblocked Admin!");
                    //return View("ChangeRole", model);

                    //return BadRequest("There must be AT LEAST 1 Admin!");
                }
                await _userManager.RemoveFromRoleAsync(user, model.OldRole);

                await _userManager.AddToRoleAsync(user, model.UserRole);

                model.Roles = GetUserIdentityRoles();

                var viewModel = new ChangeUserRoleViewModel
                {
                    UserRole = "",
                    OldRole  = oldRole[0],
                    Roles    = model.Roles,
                    Email    = user.Email
                };

                return(View("ChangeRole", viewModel));
            }
            catch (Exception e)
            {
                return(View("Error", new ErrorViewModel {
                    RequestId = e.Message
                }));
            }
        }
Example #10
0
        public async Task <IActionResult> ChangeUserRole(ChangeUserRoleViewModel model)
        {
            if (model == null)
            {
                return(BadRequest());
            }
            ServerUser serverUser = await _context.ServerUser.Where(su => su.ServerId == model.ServerId && su.UserId == model.UserId).FirstOrDefaultAsync();

            if (serverUser == null)
            {
                return(NotFound(model));
            }
            serverUser.RoleId = model.NewRoleId;
            await _context.SaveChangesAsync();

            return(Ok(serverUser));
        }
Example #11
0
        public async Task <IActionResult> Edit(ChangeUserRoleViewModel model)
        {
            if (model == null)
            {
                return(NotFound());
            }

            var user = await _userHelper.GetUserByIdAsync(model.UserId);

            if (ModelState.IsValid)
            {
                await _userHelper.UpdateUserAsync(user);

                await _userHelper.ChangeUserRoleAsync(user, User.Identity.Name, model.RoleName);

                return(RedirectToAction(nameof(Index)));
            }
            return(View(model));
        }
Example #12
0
        public async Task <IActionResult> Edit(string id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var user = await _userHelper.GetUserByIdAsync(id);

            if (user == null)
            {
                return(NotFound());
            }

            var model = new ChangeUserRoleViewModel
            {
                UserId = user.Id,
                Roles  = _userHelper.GetComboRoles()
            };

            return(View(model));
        }
Example #13
0
        // You should be able to add another role to user
        // GET: /SystemRoles/AddNewRole/5
        public ActionResult AddNewRoleToUser(string id, string role)
        {
            ChangeUserRoleViewModel model = new ChangeUserRoleViewModel();

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            if (role == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var user = UserManager.FindByIdAsync(id);

            if (user.Result == null)
            {
                ModelState.AddModelError(string.Empty, "System was unable to find user.");
                return(View());
            }
            //IList<string> userroles = await UserManager.GetRolesAsync(id);
            //if (userroles.Count < 1)
            //{
            //    ModelState.AddModelError(string.Empty, "No role found for this user.");
            //    return View();
            //}
            //string rolename = string.Empty;
            //foreach (string role in userroles)
            //{
            //    rolename = role;
            //}
            model.Email     = user.Result.Email;
            model.UserName  = user.Result.UserName;
            model.UserId    = user.Result.Id;
            model.RoleInUse = role;

            //get list of role
            ViewBag.RoleId = new SelectList(_roleRepository.GetRoles(), "Id", "Name", model.RoleId);
            return(View(model));
        }
Example #14
0
        public async Task <IActionResult> ChangeRole(string userEmail)
        {
            var roles = GetUserIdentityRoles();

            var user = await _userManager.FindByEmailAsync(userEmail);

            var oldRole = _userManager.GetRolesAsync(user).Result;

            if (user.Equals(null))
            {
                return(NotFound());
            }

            var model = new ChangeUserRoleViewModel
            {
                UserRole = "",
                OldRole  = oldRole[0],
                Roles    = roles,
                Email    = user.Email
            };

            return(View(model));
        }
        public object ChangeUserRoleInProject(ChangeUserRoleViewModel changeUserRoleViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new BaseResponse(ResponseStatus.ValidationError.ToString(), ModelState.Values.ToList()[0].Errors[0].ErrorMessage)));
            }

            CurrentUserInfo currentUserInfo = _tokenHelper.GetUserInfo();

            if (!_projectLogic.IsProjectExist(currentUserInfo.Id, changeUserRoleViewModel.ProjectId))
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound, new BaseResponse(ResponseStatus.Notfound.ToString(), ResponseMessagesModel.ProjectNotFound)));
            }

            if (!_projectLogic.IsUserAdminOrCreatorOfProject(currentUserInfo.Id, changeUserRoleViewModel.ProjectId) || changeUserRoleViewModel.UserRole == UserRole.Creator)
            {
                return(Request.CreateResponse(HttpStatusCode.MethodNotAllowed, new BaseResponse(ResponseStatus.ValidationError.ToString(), ResponseMessagesModel.PermissionDenied)));
            }

            if (!_accountLogic.IsUserExist(changeUserRoleViewModel.UserId))
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound, new BaseResponse(ResponseStatus.Notfound.ToString(), ResponseMessagesModel.UserIsNotFound)));
            }

            if (_projectTeamLogic.IsUserExistInProject(changeUserRoleViewModel.UserId, changeUserRoleViewModel.ProjectId))
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new BaseResponse(ResponseStatus.ValidationError.ToString(), ResponseMessagesModel.UserAlreadyExistInProject)));
            }

            ProjectTeamData projectTeamData = ChangeUserRoleViewModel.GetProjectTeamData(changeUserRoleViewModel);

            _projectTeamLogic.ChangeUserRole(projectTeamData);

            return(Request.CreateResponse(HttpStatusCode.OK, new BaseResponse(ResponseStatus.Success.ToString(),
                                                                              ResponseMessagesModel.Success)));
        }
Example #16
0
        public ActionResult EditUserRole(ChangeUserRoleViewModel model)
        {
            var i = _roleSv.ChangeUserRole(model.Uid, model.SelectedRole, model.IsAdd);

            return(Json(new { i }, JsonRequestBehavior.AllowGet));
        }
        public async Task<ActionResult> ChangeUserRole(ChangeUserRoleViewModel model)
        {
            await mediator.SendAsync(new UpdateInternalUserRole(model.UserId, model.Role));

            return RedirectToAction("ChangeUserRoleSuccess", new { userId = model.UserId });
        }
Example #18
0
        public async Task <ActionResult> ChangeUserRole(ChangeUserRoleViewModel model)
        {
            await mediator.SendAsync(new UpdateInternalUserRole(model.UserId, model.Role));

            return(RedirectToAction("ChangeUserRoleSuccess", new { userId = model.UserId }));
        }