示例#1
0
 public ActionResult UserRoles(SelectUserRolesViewModel model)
 {
     if (ModelState.IsValid)
     {
         var idManager = new ApplicationDbContext.IdentityManager();
         var Db        = new ApplicationDbContext();
         var user      = Db.Users.First(u => u.UserName == model.UserName);
         idManager.ClearUserRoles(user.Id);
         foreach (var role in model.Roles)
         {
             if (role.Selected)
             {
                 idManager.AddUserToRole(user.Id, role.RoleName);
             }
         }
         return(RedirectToAction("index"));
     }
     return(View());
 }
示例#2
0
        private OperationResult EditUserRoles(UserViewModel model)
        {
            var operationResult = new OperationResult();

            operationResult.Success = true;

            if (model.UserId != null)
            {
                var idManager = new ApplicationDbContext.IdentityManager();

                var roles = model.Roles.OrderBy(x => x.RoleName).ToList();

                foreach (var role in roles)
                {
                    if (role.Selected)
                    {
                        if (!UserManager.IsInRole(model.UserId, role.RoleName))
                        {
                            try
                            {
                                operationResult.Success = idManager.AddUserToRole(model.UserId, role.RoleName);

                                if (!operationResult.Success)
                                {
                                    operationResult.Message = "Error adding user to role " + role.RoleName;
                                    break;
                                }
                            }
                            catch (Exception ex)
                            {
                                operationResult.Success = false;
                                operationResult.Message = "Error adding user to role " + role.RoleName;
                                logger.ErrorFormat("Error adding user to role " + role.RoleName + ": { 0} ", ex.ToString());
                                break;
                            }
                        }
                    }
                    else
                    {
                        if (UserManager.IsInRole(model.UserId, role.RoleName))
                        {
                            try
                            {
                                var result = UserManager.RemoveFromRole(model.UserId, role.RoleName);

                                if (!result.Succeeded)
                                {
                                    operationResult.Success = false;
                                    operationResult.Message = "Error removing user from role " + role.RoleName;
                                    break;
                                }
                                else
                                {
                                    operationResult.Success = true;
                                }
                            }
                            catch (Exception ex)
                            {
                                operationResult.Success = false;
                                operationResult.Message = "Error removing user from role " + role.RoleName;
                                logger.ErrorFormat("Error removing user to role " + role.RoleName + ": { 0} ", ex.ToString());
                                break;
                            }
                        }
                    }
                }
            }

            return(operationResult);
        }