public ActionResult CreateUser(CreateUserViewModel createUserViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(createUserViewModel));
            }

            try
            {
                if (createUserViewModel.Password != createUserViewModel.ConfirmPassword)
                {
                    throw new MembershipCreateUserException("Passwords do not match.");
                }

                var user = _userService.Create(
                    createUserViewModel.Username,
                    createUserViewModel.Password,
                    createUserViewModel.Email,
                    createUserViewModel.PasswordQuestion,
                    createUserViewModel.PasswordAnswer,
                    true);

                if (createUserViewModel.InitialRoles != null)
                {
                    var rolesToAddUserTo = createUserViewModel.InitialRoles.Where(x => x.Value).Select(x => x.Key);
                    foreach (var role in rolesToAddUserTo)
                    {
                        _rolesService.AddToRole(user, role);
                    }
                }

                return(RedirectToAction("Details", new { id = user.ProviderUserKey }));
            }
            catch (MembershipCreateUserException e)
            {
                ModelState.AddModelError(string.Empty, e.Message);
                return(View(createUserViewModel));
            }
        }
        public RedirectToRouteResult DeleteRole(string id)
        {
            List<MyRole> theRole = work.MyRoleRepository.Get(a => a.RoleName.Equals(id)).ToList();
            string Roler = theRole[0].RoleName;
            List<string> usersInRole = _rolesService.FindUserNamesByRole(Roler).ToList();
            if (usersInRole.Count() > 0)
            {
                foreach (string u in usersInRole)
                {
                    // var user = _userService.Get(id);
                    var user = _userService.Get(u);

                    _rolesService.RemoveFromRole(user, Roler);
                    _rolesService.AddToRole(user, "Default");

                }
            }
            _rolesService.Delete(id);

            work.MyRoleRepository.Delete(theRole[0]);
            work.Save();
            return RedirectToAction("Index");
        }
Exemplo n.º 3
0
 public RedirectToRouteResult AddToRole(Guid id, string role)
 {
     _rolesService.AddToRole(_userService.Get(id), role);
     return(RedirectToAction("UsersRoles", new { id }));
 }