示例#1
0
        public IdentityResult DeleteMemberShipUser(ApplicationUser user)
        {
            // first, remove all the roles for this user
            _userManager.RemoveFromRoles(user.Id);
            //then remove the user completely



            var logins = user.Logins;

            foreach (var login in logins.ToList())
            {
                _userManager.RemoveLogin(login.UserId, new UserLoginInfo(login.LoginProvider, login.ProviderKey));
            }

            var rolesForUser = _userManager.GetRoles(user.Id);

            if (rolesForUser.Any())
            {
                foreach (var item in rolesForUser.ToList())
                {
                    // item should be the name of the role
                    var result = _userManager.RemoveFromRole(user.Id, item);
                }
            }

            return(_userManager.Delete(user));
        }
示例#2
0
        /// <summary>
        /// getting context
        /// getting userid
        /// getting user from row
        /// getting userid from row
        /// create a user manager
        /// use user manager to get new roles
        /// get rid of old roles
        /// get index from role
        /// find the control by calling row
        /// get selected row value
        /// add new role
        /// save changed and bind grid
        /// </summary>
        /// <param name="sender"></param> is the grid view
        /// <param name="e"></param> is the event
        protected void GridViewRoles_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            ApplicationDbContext db       = new ApplicationDbContext();
            GridView             grdRoles = (GridView)sender;
            GridViewRow          userRow  = (GridViewRow)grdRoles.Parent.Parent;
            int    index  = userRow.RowIndex;
            string userId = gridViewUser.DataKeys[index]["Id"].ToString();
            var    user   = db.Users.Find(userId);
            var    um     = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db));
            var    roles  = um.GetRoles(userId);

            um.RemoveFromRoles(userId, roles.ToArray());
            GridViewRow  row  = grdRoles.Rows[e.RowIndex];
            DropDownList ddl  = (DropDownList)row.FindControl("DropDownList1");
            string       role = ddl.SelectedValue.ToString();


            um.RemoveFromRoles(userId, roles.ToArray());
            um.AddToRole(userId, role.ToString());

            db.SaveChanges();


            BindGridView();
        }
        public void DisableUser(string UserId)
        {
            var roles = userManager.GetRoles(UserId).ToArray();

            if (roles.Count() > 0)
            {
                userManager.RemoveFromRoles(UserId, roles);
            }
        }
示例#4
0
文件: Roles.cs 项目: radtek/Aicard
        public void EditUserRole(string userID, IEnumerable <string> roles)
        {
            var old = _appUserManager.GetRoles(userID).ToArray();

            _appUserManager.RemoveFromRoles(userID, old);
            foreach (var item in roles)
            {
                _appUserManager.AddToRole(userID, item);
            }
        }
示例#5
0
        public ActionResult Delete(string[] ids)
        {
            try
            {
                if (ids.Length != 0)
                {
                    foreach (var id in ids)
                    {
                        var userId  = Guid.Parse(id);
                        var objUser = (from user in ids select UserManager.FindById(userId)).FirstOrDefault();

                        //Task<IList<UserLoginInfo>> loginInfo = _userLoginStore.GetLoginsAsync(objUser);
                        //_userLoginStore.RemoveLoginAsync(objUser, loginInfo);

                        var lstUserRole = UserManager.GetRoles(userId);
                        UserManager.RemoveFromRoles(userId, lstUserRole.ToArray());
                        UserManager.Update(objUser);
                        UserManager.Delete(objUser);
                    }
                }
            }
            catch (Exception ex)
            {
                LogText.Log(string.Concat("Post.Delete: ", ex.Message));
            }
            return(RedirectToAction("Index"));
        }
        //        [Permission(Action = ActionName.CanUpdate)]
        public IHttpActionResult Edit(string id, [FromBody] AppUserDto user)
        {
            return(CreateResponse(() =>
            {
                if (!ModelState.IsValid)
                {
                    return BadRequest(ModelState);
                }

                var model = UserManager.FindById(id);

                Mapper.Map(user, model);

                UserManager.Update(model);

                if (user.Roles.Any())
                {
                    var userRoles = UserManager.GetRoles(model.Id);
                    UserManager.RemoveFromRoles(model.Id, userRoles.ToArray());
                    UserManager.AddToRoles(model.Id, user.Roles.ToArray());
                }

                return Ok();
            }));
        }
示例#7
0
        private static void CreateUpdateUser(UserManager <ErasmusUser> manager, string email, string username, string role, int?uniId = null)
        {
            //Check for existing user
            var user = manager.Users.SingleOrDefault(x => x.Email == email);

            if (user == null)
            {
                //Doesn't exist - create
                user = new ErasmusUser
                {
                    Email        = email, UserName = username, EmailConfirmed = true,
                    Birthday     = new DateTime(1990, 1, 1),
                    UniversityId = uniId
                };
                manager.Create(user, "Slaptaþodis1");
                manager.AddToRole(user.Id, role);
            }
            else
            {
                //Exists update
                user.UserName       = username;
                user.EmailConfirmed = true;
                manager.RemovePassword(user.Id);
                manager.AddPassword(user.Id, "Slaptaþodis1");
                manager.Update(user);
                manager.RemoveFromRoles(user.Id, UserRoles.AllRoles);
                manager.AddToRole(user.Id, role);
            }
        }
示例#8
0
        public async Task <ActionResult> UserForm(ApplicationUser model, FormCollection form)
        {
            var role = form["Roles"];
            var pw   = form["Password"];
            var cpw  = form["ConfirmPassword"];
            var user = UserManager.FindByEmail(model.Email);

            if (user != null)
            {
                user.FirstName = model.FirstName;
                user.LastName  = model.LastName;
                user.MI        = model.MI;

                var result = await UserManager.UpdateAsync(user);

                //Get roles of user
                var roles = UserManager.GetRoles(user.Id);

                //remove old roles
                UserManager.RemoveFromRoles(user.Id, roles.ToArray());

                //add new roles
                UserManager.AddToRole(user.Id, role);
            }
            else
            {
                var result = await UserManager.CreateAsync(model, pw);

                //add role
                UserManager.AddToRole(model.Id, role);
            }
            return(RedirectToAction("UserForm", new { id = model.Id }));
        }
示例#9
0
        public bool SetRole(string userId, int roleId)
        {
            try
            {
                using (var context = this.GetDataContext())
                {
                    var user = context.Users.FirstOrDefault(it => it.Id == userId);
                    if (user == null)
                    {
                        return(false);
                    }

                    var userStore   = new UserStore <ApplicationUser>(context);
                    var userManager = new UserManager <ApplicationUser>(userStore);
                    userManager.RemoveFromRoles(user.Id, new string[] { "Admin", "Owner" });
                    if (roleId == 1)
                    {
                        userManager.AddToRole(user.Id, "Admin");
                    }
                    else
                    {
                        userManager.AddToRole(user.Id, "Owner");
                    }
                }
            }
            catch (System.Exception ex)
            {
                Debug.WriteLine(ex);
                return(false);
            }
            return(true);
        }
示例#10
0
        public void RemoveAllRoles(string userId)
        {
            var user = um.FindById(userId);

            string[] allRoles = um.GetRoles(userId).ToArray();
            um.RemoveFromRoles(userId, allRoles);
        }
示例#11
0
        public ActionResult Roles(UserRoleViewModel user)
        {
            if (ModelState.IsValid)
            {
                var roles = db.AspNetUsers.Find(user.Id).AspNetRoles.ToList();
                foreach (var item in roles)
                {
                    UserManager.RemoveFromRoles(user.Id, item.Name);
                }
                db.SaveChanges();


                AspNetUser users = db.AspNetUsers.Find(user.Id);
                var        role  = db.AspNetRoles.Find(user.RoleId.ToString());
                UserManager.AddToRole(user.Id, role.Name);
                db.SaveChanges();


                // users.AspNetRoles.Select();

                // db.Entry(users).State = EntityState.Modified;

                return(RedirectToAction("Index"));
            }

            ViewBag.RoleId = new SelectList(Utilities.Utilities.GetRoles(), "Id", "Name", user.RoleId);
            return(View(user));
        }
示例#12
0
        public IdentityResult RefreshUserGroupRoles(string userId)
        {
            var user = _userManager.FindById(userId);

            if (user == null)
            {
                throw new ArgumentNullException("User");
            }

            var oldUserRoles = _userManager.GetRoles(userId);

            if (oldUserRoles.Count > 0)
            {
                _userManager.RemoveFromRoles(userId, oldUserRoles.ToArray());
            }

            var newGroupRoles = GetUserGroupRoles(userId);
            var allRoles      = _roleManager.Roles.ToList();
            var addTheseRoles = allRoles.Where(r => newGroupRoles.Any(gr => gr.RoleId == r.Id));
            var roleNames     = addTheseRoles.Select(n => n.Name).ToArray();

            _userManager.AddToRoles(userId, roleNames);

            return(IdentityResult.Success);
        }
示例#13
0
 public ActionResult Edit([Bind(Include = "Email,Id")] EditUserViewModel editUser, params string[] selectedRoles)
 {
     if (ModelState.IsValid)
     {
         var user = UserManager.FindById(editUser.Id);
         user.UserName = editUser.Email;
         user.Email    = editUser.Email;
         var userRoles = UserManager.GetRoles(user.Id);
         selectedRoles = selectedRoles ?? new string[] {};
         var result = UserManager.AddToRoles(user.Id, selectedRoles.Except(userRoles).ToArray <string>());
         if (!result.Succeeded)
         {
             ModelState.AddModelError("", result.Errors.First());
             return(View());
         }
         result = UserManager.RemoveFromRoles(user.Id, userRoles.Except(selectedRoles).ToArray <string>());
         if (!result.Succeeded)
         {
             ModelState.AddModelError("", result.Errors.First());
             return(View());
         }
         return(RedirectToAction("Index"));
     }
     return(View());
 }
示例#14
0
        public ActionResult Edit(User user_1)
        {
            var user = userManager.FindById(user_1.UserId);

            //var user = userManager.Users.FirstOrDefault(a => a.Id == user_1.UserId);
            if (user != null)
            {
                user.StoreId = user_1.StoreId;
                user.Email   = user_1.Email;
                //if (user_1.UserName != user.UserName)
                //{
                //    user.UserName = user_1.UserName;
                //}
                user.FullName = user_1.FullName;
            }
            try
            {
                var result = userManager.Update(user);
                var role   = roleManager.FindById(user.Id);
                if (role != null)
                {
                    var roles = userManager.GetRoles(user.Id);
                    userManager.RemoveFromRoles(user.Id, roles.ToArray());
                }
                var result2 = userManager.AddToRole(user.Id, user_1.Role);
            }
            catch (Exception e)
            {
            }

            return(Json(new { success = true }));
        }
示例#15
0
        public ActionResult SaveUser(EditUserViewModel model)
        {
            if (ModelState.IsValid)
            {
                TimesheetService.IManagement service = new TimesheetService.ManagementClient();
                TimesheetService.Employee    emp     = new TimesheetService.Employee();
                emp.Id       = model.ApiId;
                emp.LastName = model.LastName;
                emp.Name     = model.Name;
                emp.Email    = model.Email;
                service.UpdateEmployee(model.ApiId.ToString(), emp);
                var roles        = RoleManager.Roles;
                var currentRoles = UserManager.FindById(model.Id).Roles;
                foreach (var role in model.Roles)
                {
                    role.Name = roles.Single(t => t.Id == role.Id).Name;
                }
                List <string> toRemove = new List <string>();
                foreach (var item in currentRoles)
                {
                    toRemove.Add(RoleManager.FindById(item.RoleId).Name);
                }
                var toAdd = model.Roles.Where(r => r.Selected == true).Select(r => r.Name).ToArray();

                UserManager.RemoveFromRoles(model.Id, toRemove.ToArray());
                UserManager.AddToRoles(model.Id, toAdd);
                return(RedirectToAction("UserDetails", "Manage", new { id = model.Id }));
            }
            return(RedirectToAction("EditUser", "Manage", new { id = model.Id }));
        }
示例#16
0
        public ActionResult Edit(UserEditViewModel model, string[] selectedRoles)
        {
            var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new ApplicationDbContext()));

            if (User.Identity.IsAuthenticated)
            {
                try
                {
                    var UserToUpdate = db.AspNetUsers.Find(model.Id);
                    var roles        = userManager.GetRoles(model.Id).ToArray();
                    userManager.RemoveFromRoles(model.Id, roles);
                    userManager.AddToRoles(model.Id, selectedRoles);
                    return(RedirectToAction("Index"));
                }
                catch (RetryLimitExceededException)
                {
                    ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists, see your system administrator.");
                }
            }
            else
            {
                return(RedirectToAction("Login", "Account"));
            }
            return(View(model));
        }
示例#17
0
        public IActionResult UpdateProfile([FromBody] UpdateUser user)
        {
            System.Diagnostics.Debug.WriteLine($"{user.Email} {user.FirstName} {user.SecondName} {user.LastName} {user.Roles}");
            var u = _userManager.GetByEmail(user.Email);

            if (u != null)
            {
                if (u.FirstName != user.FirstName)
                {
                    _logger.LogInformation($"User[{u.Email}], Changed FirstName: [{u.FirstName}] -> [{user.FirstName}] |");
                    u.FirstName = user.FirstName;
                }

                if (u.SecondName != user.SecondName)
                {
                    _logger.LogInformation($"User[{u.Email}], Changed SecondName: [{u.SecondName}] -> [{user.SecondName}] |");
                    u.SecondName = user.SecondName;
                }

                if (u.LastName != user.LastName)
                {
                    _logger.LogInformation($"User[{u.Email}], Changed LastName: [{u.LastName}] -> [{user.LastName}] |");
                    u.LastName = user.LastName;
                }

                var rolesBefore = _roleManager.GetAllRolesByUserId(u.Id);
                _userManager.RemoveFromRoles(u.Email, rolesBefore.ToList());
                var rolesAfter = user.Roles;
                _userManager.AddToRoles(u.Email, rolesAfter.ToList());
                rolesAfter = _roleManager.GetAllRolesByUserId(u.Id);
                _userManager.UpdateUser(u);
                return(Ok());
            }
            return(BadRequest(new { message = "No such user." }));
        }
示例#18
0
        /// <summary>
        /// change user role
        /// </summary>
        /// <param name="uid"></param>
        /// <param name="roleId"></param>
        /// <param name="isAdd"></param>
        /// <returns></returns>
        public AppConfigs.OperResult ChangeUserRole(string uid, string roleId, bool isAdd = true)
        {
            if (string.IsNullOrEmpty(uid) || string.IsNullOrWhiteSpace(roleId))
            {
                return(AppConfigs.OperResult.failDueToArgu);
            }

            ApplicationUser user = UserManager.FindById(uid);

            string[] roles = UserManager.GetRoles(uid).ToArray();

            if (roleId == "200" && roles.Length > 0)
            {
                UserManager.RemoveFromRoles(uid, roles);
                return(AppConfigs.OperResult.success);
            }

            ApplicationRole rn = RoleManager.Roles.SingleOrDefault(a => a.Id == roleId); //find user role .

            if (isAdd)
            {
                if (user.Roles.All(a => a.RoleId != roleId))
                {
                    UserManager.AddToRole(uid, rn.Name);
                    return(AppConfigs.OperResult.success);
                }

                return(AppConfigs.OperResult.failDueToExist);
            }
            else
            {
                UserManager.RemoveFromRole(uid, rn.Name);
                return(AppConfigs.OperResult.success);
            }
        }
示例#19
0
        public IHttpActionResult SetOwner(SetRoleBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = _context.Users.SingleOrDefault(u => u.Id == model.AccountId);

            if (user == null)
            {
                return(BadRequest("The user have account id " + model.AccountId + " does not exist."));
            }

            var owner = _context.Owners.SingleOrDefault(o => o.AccountId == user.Id);

            if (owner == null)
            {
                return(BadRequest("The user have account id " + model.AccountId + " is not an Owner."));
            }

            var listRole = _userManager.GetRoles(user.Id);

            if (listRole.Count > 0)
            {
                _userManager.RemoveFromRoles(user.Id, listRole.ToArray());
            }
            _userManager.AddToRole(user.Id, RoleName.Owner);

            return(Ok("Approved"));
        }
示例#20
0
        public ActionResult EditUser(UserEditViewModel model, string[] selectedRoles)
        {
            var uM = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new ApplicationDbContext()));

            if (User.Identity.IsAuthenticated)             // if the user is already logged in
            {
                try
                {
                    var UserToUpdate = db.AspNetUsers.Find(model.Id);



                    var roles = uM.GetRoles(model.Id).ToArray();
                    uM.RemoveFromRoles(model.Id, roles);
                    uM.AddToRoles(model.Id, selectedRoles);

                    return(RedirectToAction("UserList"));
                }
                catch (RetryLimitExceededException /* dex */)
                {
                    ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists, see your system administrator.");
                }
            }
            else
            {
                return(RedirectToAction("Login", "Account"));
            }


            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        public ResultObj UpdateProfile(Profile profile)
        {
            ResultObj results;

            try
            {
                if (!IsValidProfile(profile))
                {
                    return(WebHelpers.BuildResponse(profile, "Role must have a name and at least one profile.", false, 1));
                }
                var oldRoles = new BaseRepository <Profile>().Get(profile.Id).Privileges.Split(',');
                var newRoles = profile.Privileges.Split(',');

                var users = _userRepo.Get(new UserFilter {
                    ProfileId = profile.Id
                });
                foreach (var user in users)
                {
                    UserManager.RemoveFromRoles(user.Id, oldRoles);
                    var user1 = user;
                    newRoles.ForEach(r => UserManager.AddToRole(user1.Id, r.Trim()));
                }

                new BaseRepository <Profile>().Update(profile);

                results = WebHelpers.BuildResponse(profile, "Role Update Successfully.", true, 1);
            }
            catch (Exception ex)
            {
                results = WebHelpers.ProcessException(ex);
            }

            return(results);
        }
示例#22
0
        private void DeleteUserById(string id)
        {
            ApplicationUser entity = GetUser(id); // not use "await DoGet(id);" in synchronized function

            var logins = entity.Logins.ToList();
            var claims = entity.Claims.ToList();

            foreach (var login in logins)
            {
                entity.Logins.Remove(login);
            }
            foreach (var claim in claims)
            {
                entity.Claims.Remove(claim);
            }

            //是否有修改角色
            var childUserRoleId = GetIdentityRole(id).Id;
            var userManager     = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context));

            string childUserRoleName = GetRoleName(childUserRoleId);

            if (!string.IsNullOrEmpty(childUserRoleName))
            {
                userManager.RemoveFromRoles(id, childUserRoleName);
            }

            userManager.Delete(entity);
        }
示例#23
0
        public void ClearUserRoles(string userId)
        {
            var user  = UserManager.FindById(userId);
            var roles = _db.Roles.Where(p => user.Roles.Any(p1 => p1.RoleId == p.Id)).Select(p => p.Name).ToArray();

            UserManager.RemoveFromRoles(userId, roles);
        }
 internal bool UpdateUser(string username, string realUsername, string permission)
 {
     IdentityResult result = null;
     Models.ApplicationDbContext context = new Models.ApplicationDbContext();
     var userMgr = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
     var user = userMgr.FindByName(username);
     if (!string.IsNullOrEmpty(realUsername))
     {
         user.RealUserName = realUsername;
         result = userMgr.Update(user);
     }
     if (!string.IsNullOrEmpty(permission) && !userMgr.IsInRole(user.Id, permission))
     {
         userMgr.RemoveFromRoles(user.Id, "read", "edit", "administrator");
         switch (permission)
         {
             case "administrator":
                 result = userMgr.AddToRole(user.Id, "administrator");
                 break;
             case "edit":
                 result = userMgr.AddToRole(user.Id, "edit");
                 break;
             default:
                 result = userMgr.AddToRole(user.Id, "read");
                 break;
         }
     }
     if (result == IdentityResult.Success) return true; else return false;
 }
示例#25
0
 public ActionResult DeleteRole(string UserName, string RoleName)
 {
     try
     {
         if ((UserName == null) || (RoleName == null))
         {
             return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
         }
         UserName = UserName.ToLower();
         //Check that we have an actual user
         ExpandedUserDTO objExpandedUserDTO = GetUser(UserName);
         if (objExpandedUserDTO == null)
         {
             return(HttpNotFound());
         }
         if (UserName.ToLower() == this.User.Identity.Name.ToLower() && RoleName == "Administrator")
         {
             ModelState.AddModelError(string.Empty, "Error: Cannot delete Administrator Role for the current user");
         }
         //Go get the user
         ApplicationUser user = UserManager.FindByName(UserName);
         //Remove User from Role
         UserManager.RemoveFromRoles(user.Id, RoleName);
         UserManager.Update(user);
         ViewBag.AddRole = new SelectList(RolesUserIsNotIn(UserName));
         return(RedirectToAction("EditRoles", new { UserName = UserName }));
     }
     catch (Exception ex)
     {
         ModelState.AddModelError(string.Empty, "Error: " + ex);
         ViewBag.AddRole = new SelectList(RolesUserIsNotIn(UserName));
         UserAndRoleDTO objUserAndRolesDTO = GetUserAndRoles(UserName);
         return(View("EditRoles", objUserAndRolesDTO));
     }
 }
        public ActionResult ConfirmWedding(int WeddingId, WeddingViewModels WeddingViewModels, bool Confirmed)
        {
            using (var db = new OtherDbContext())
            {
                var UserContextWedding = db.Weddings.Where(x => x.Id == WeddingId).FirstOrDefault();
                UserContextWedding.IsConfirmed = Confirmed;

                var UserId = UserContextWedding.UserId;

                db.Weddings.Add(UserContextWedding);
                db.Entry(UserContextWedding).State = EntityState.Modified;
                db.SaveChanges();


                //Wysyłanie maila do pary młodej oraz nadawanie automatycznie uprawnień superusera.
                using (var userdb = new ApplicationDbContext())
                {
                    var UserWithWedding = userdb.Users.Where(x => x.Id == UserId).FirstOrDefault();
                    EmailHelper.SendEmail("Administrator portalu BlueBinders.pl potwierdzil Twoje wesele i nadal Ci specjalne uprawnienia!" +
                                          " Od teraz mozesz zarzadzac zadaniami i profilem!", "Zatwierdzono wesele", UserWithWedding.Email);

                    List <IdentityRole> ir = userdb.Roles.Include(r => r.Users).ToList();
                    var userStore          = new UserStore <IdentityUser>();
                    var manager            = new UserManager <IdentityUser>(userStore);
                    var currentRole        = manager.GetRoles(UserWithWedding.Id);
                    manager.RemoveFromRoles(UserWithWedding.Id, currentRole[0]);
                    manager.AddToRole(UserWithWedding.Id, "suser");
                    userdb.Users.Add(UserWithWedding);
                    userdb.Entry(UserWithWedding).State = EntityState.Modified;
                    userdb.SaveChanges();
                }
            }
            return(RedirectToAction("UsersList"));
        }
        //public void ClearUserRoles(string userId)
        //{
        //    var um = new UserManager<ApplicationUser>(
        //        new UserStore<ApplicationUser>(new ApplicationDbContext()));
        //    var user = um.FindById(userId);
        //    var currentRoles = new List<IdentityUserRole>();
        //    currentRoles.AddRange(user.Roles);
        //    foreach (var role in currentRoles)
        //    {
        //        //um.RemoveFromRole(userId, role.Role.Name);
        //        um.RemoveFromRole(userId, role.RoleId);
        //    }
        //}

        public void ClearUserRoles(string userId)
        {
            var um = new UserManager <ApplicationUser>(
                new UserStore <ApplicationUser>(new ApplicationDbContext()));

            um.RemoveFromRoles(userId);
        }
示例#28
0
 public IHttpActionResult UpdateUser(FrontendUserModel model)
 {
     if (ModelState.IsValid)
     {
         bool passwordOk      = true;
         bool passwordPresent = false;
         if (model.Password != null && model.Password != "")
         {
             passwordOk      = Task.Run(async() => { return(await UserManager.PasswordValidator.ValidateAsync(model.Password)); }).Result.Succeeded;
             passwordPresent = true;
         }
         if (passwordOk)
         {
             ApplicationUser user = UserManager.FindByName(model.Username);
             if (user != null)
             {
                 string newPasswordHash = UserManager.PasswordHasher.HashPassword(model.Password);
                 if (passwordPresent)
                 {
                     user.PasswordHash = newPasswordHash;
                 }
                 if (UserManager.Update(user).Succeeded)
                 {
                     UserManager.RemoveFromRoles(user.Id, ApplicationRoleManager.DefinedRoles.ToArray());
                     foreach (string roleName in model.Roles)
                     {
                         UserManager.AddToRole(user.Id, roleName);
                     }
                     return(Ok());
                 }
             }
         }
     }
     return(BadRequest());
 }
        public async Task <IHttpActionResult> DeleteUser(DeleteUserBindingModel model)
        {
            if (string.IsNullOrEmpty(model.Id))
            {
                return(BadRequest());
            }

            try
            {
                var user = await UserManager.FindByIdAsync(model.Id);

                IdentityResult result = await UserManager.DeleteAsync(user);

                if (!result.Succeeded)
                {
                    return(GetErrorResult(result));
                }
                else
                {
                    UserManager.RemoveFromRoles(model.Id, UserManager.GetRoles(model.Id).ToArray());
                    return(Ok());
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public IdentityResult DeleteUser(string username)
        {
            var user         = _userManager.FindByName(username);
            var rolesForUser = _userManager.GetRoles(user.Id);

            string[] rolesArray = new string[rolesForUser.Count];

            for (int i = 0; i < rolesForUser.Count(); i++)
            {
                rolesArray[i] = rolesForUser.ElementAt(i).ToString();
            }
            var remFromRole = _userManager.RemoveFromRoles(user.Id, rolesArray);

            if (remFromRole.Succeeded)
            {
                var results = _userManager.Delete(user);
                if (results.Succeeded)
                {
                    return(results);
                }
                else
                {
                    return(results);
                }
            }
            else
            {
                return(remFromRole);
            }
        }
示例#31
0
        public void EditUser(UserRoleViewModel viewModel)
        {
            //seed file concept, M4 L11
            viewModel.AppUser.UserName = viewModel.AppUser.Email;
            var store   = new UserStore <AppUser>(dealerDb);
            var userMgr = new UserManager <AppUser>(new UserStore <AppUser>(dealerDb));
            var roleMgr = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(dealerDb));

            AppUser update = userMgr.FindById(viewModel.AppUser.Id);

            update.FirstName = viewModel.AppUser.FirstName;
            update.LastName  = viewModel.AppUser.LastName;
            update.Email     = viewModel.AppUser.Email;

            if (!string.IsNullOrEmpty(viewModel.Password) && !string.IsNullOrEmpty(viewModel.ConfirmPassword))
            {
                update.PasswordHash = userMgr.PasswordHasher.HashPassword(viewModel.ConfirmPassword);
            }

            userMgr.RemoveFromRoles(update.Id, userMgr.GetRoles(update.Id).ToArray());
            userMgr.Update(update);

            var user = userMgr.FindById(viewModel.AppUser.Id);
            var role = roleMgr.FindById(viewModel.RoleId);

            userMgr.AddToRole(user.Id, role.Name);
            dealerDb.SaveChanges();
        }
 public async Task<ActionResult> AssignRole(string username, string rolename)
 {
     UserStore<ApplicationUser> userStore = new UserStore<ApplicationUser>(_identityDb);
     UserManager<ApplicationUser> userManager = new UserManager<ApplicationUser>(userStore);
     var user = userManager.Users.FirstOrDefault(u => u.UserName == username);
     await Task.Run(() => userManager.RemoveFromRoles(user.Id, userManager.GetRoles(user.Id).ToArray()));
     //var role = roles.FirstOrDefault(r => r == rolename);
     //if(role == null)
     userManager.AddToRole(user.Id, rolename);
     return RedirectToAction("Users", "Admin");
 }
        protected void grvUsers_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            var row = grvUsers.Rows[e.RowIndex];
            var id = grvUsers.DataKeys[e.RowIndex].Value.ToString();

            var firstName = ((TextBox)row.FindControl("txtFirstName")).Text;
            var lastName = ((TextBox)row.FindControl("txtLastName")).Text;
            var email = ((TextBox)row.FindControl("txtEmail")).Text;
            var currentPassword = ((TextBox)row.FindControl("txtCurrentPassword")).Text;
            var newPassword = ((TextBox)row.FindControl("txtNewPassword")).Text;
            var role = ((DropDownList)row.FindControl("ddlRoleEdit")).Text;
            var jobClinic = ((DropDownList)row.FindControl("ddlJobClinicEdit")).Text; //TODO: Automatically edit RelationType (exept Writer) on files.
            var isActive = ((CheckBox)row.FindControl("chkIsActive")).Checked;

            var userStore = new UserStore<IdentityUser>();
            var userManager = new UserManager<IdentityUser>(userStore);
            var user = userManager.FindById(id);

            if (user != null && (
                userManager.FindById(SharedClass.CurrentUser).UserName == "Admin" ||
                user.UserName != "Admin"
                ))
            {
                if (newPassword != "")
                {
                    var result = userManager.ChangePassword(id, currentPassword, newPassword);
                }
                userManager.SetEmail(id, email);
                userManager.RemoveFromRoles(id, userManager.GetRoles(id).ToArray());
                userManager.AddToRole(id, role);

                using (Medical_Clinic_Entities mc = new Medical_Clinic_Entities())
                {
                    BSI__Clinic_Employee employee = mc.BSI__Clinic_Employees.Where(o => o.Id == id).First();
                    employee.First_Name = firstName;
                    employee.Last_Name = lastName;
                    employee.Job_Clinic = jobClinic;
                    employee.Is_Active = isActive;

                    mc.SaveChanges();
                }
            }
            grvUsers.EditIndex = -1;
        }
        private JsonResult ChangeUserAdminStatus(string userId, bool admin)
        {
            var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(_db));
            ApplicationUser user = userManager.FindById(userId);
            IdentityResult result = null;
            
            if (admin)
                result = userManager.AddToRole(userId, "Admin");
            else
                result = userManager.RemoveFromRoles(userId, "Admin");

            string errors = "";

            foreach (string er in result.Errors)
            {
                errors += er + " ";
            }

            if (result.Succeeded)
                return Json(new AppMessage() { Type = AppMessage.Success, Message = String.Format(AppString.UserIsNow, user.Email, admin ? AppString.PartialIsNowAdmin : AppString.PartialIsNoLongerAdmin) });
            else
                return Json(new AppMessage() { Type = AppMessage.Error, Message = String.Format(AppString.UpdateForTypeFailed, AppString.User)  + " " + errors  });
        }
        public ActionResult Edit([Bind(Include = "FirstName,LastName,Email,PhoneNumber,UserName")] ApplicationUser applicationUser)
        {
            if (ModelState.IsValid)
            {
                var userStore = new UserStore<ApplicationUser>(db);
                var userManager = new UserManager<ApplicationUser>(userStore);

                string userId = userManager.FindByName(applicationUser.UserName).Id;

                userManager.RemoveFromRoles(userId, userManager.GetRoles(userId).ToArray());
                userManager.AddToRoles(userId, Request["Role"].Split(','));

                userManager.Update(applicationUser);

                return RedirectToAction("Index");
            }
            return View(applicationUser);
        }