public ActionResult ChangeUserRole(CompanyUsersVm model) { try { if (model.ActionToTake == "add") { UserManager.AddToRole(model.Id.ToString(), model.Role.Trim()); } else if (model.ActionToTake == "remove") { UserManager.RemoveFromRole(model.Id.ToString(), model.Role.Trim()); } Db.SaveChanges(); return(Json(new JsonResponse() { IsSucess = true }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new JsonResponse() { IsSucess = false, ErrorMessage = ex.Message }, JsonRequestBehavior.AllowGet)); } }
public string GetActionsUsers(CompanyUsersVm user) { StringBuilder sb = new StringBuilder(); if (user.Status == "Active") { sb.AppendFormat(@"<a href='#' id='btnLock' class='btn btn-default btnLock' data-tooltip='tooltip' data-id='{0}' title='Lock'> <i class='fa fa-lock' aria-hidden='true'></i> </span> </a>", user.Id.ToString()); } else { sb.AppendFormat(@"<a href='#' id='btnUnLock' class='btn btn-default btnLock' data-tooltip='tooltip' data-id='{0}' title='Un-Lock'> <i class='fa fa-unlock' aria-hidden='true'></i> </span> </a>", user.Id.ToString()); } sb.AppendFormat(@"<a href='#' id='btnOpenChangePassword' name='btnOpenChangePassword' class='btn btn-default btnOpenChangePassword' title='Change Password' data-toggle = 'modal' data-target = '#myModal' data-id = '{0}' data-user = '******' ><i class='fa fa-key' aria-hidden='true'></i></a> <a class='btnDelete' data-id={0} href='#' data-tooltip='tooltip' title='Delete'> <span class='glyphicon glyphicon-trash'></span> </a>", user.Id.ToString(), user.Name); return(sb.ToString()); }
public string GetRoles(CompanyUsersVm user) { StringBuilder sb = new StringBuilder(); sb.AppendFormat(@"<select class='roles' multiple='multiple' style='width:100%' id='{0}'>", user.Id); foreach (var item in user.Roles) { var selected = item.Selected ? "selected" : ""; sb.AppendFormat(@"<option value = '{0}' {1} > {2} </option>", item.Value, selected, item.Text); } sb.AppendFormat(@"</select>"); return(sb.ToString()); }
public ActionResult SaveUser(CompanyUsersVm model) { try { var user = UserManager.FindById(model.Id.ToString()); switch (model.Action) { case "lock": if (user.Status == (int)UserStatus.Active) { user.Status = (int)UserStatus.Locked; user.LockoutEndDateUtc = new DateTime(9999, 12, 30); bool a = UserManager.IsLockedOut(user.Id); } else if (user.Status == (int)UserStatus.Locked) { user.Status = (int)UserStatus.Active; user.LockoutEndDateUtc = null; bool a = UserManager.IsLockedOut(user.Id); } break; case "type": switch (user.UserType) { case (int)UserType.Admin: user.UserType = (int)UserType.User; break; case (int)UserType.User: user.UserType = (int)UserType.Admin; break; } break; case "tests": user.IsTestsCreatives = !user.IsTestsCreatives; break; case "password": if (!string.IsNullOrEmpty(model.Password)) { string resetToken = UserManager.GeneratePasswordResetToken(user.Id); IdentityResult passwordChangeResult = UserManager.ResetPassword(user.Id, resetToken, model.Password); if (passwordChangeResult != IdentityResult.Success) { throw new AdsException(passwordChangeResult.Errors.FirstOrDefault()); } } break; case "delete": UserManager.Delete(user); break; } Db.SaveChanges(); return(Json(new JsonResponse() { IsSucess = true }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new JsonResponse() { IsSucess = false, ErrorMessage = ex.Message }, JsonRequestBehavior.AllowGet)); } }
public ActionResult SaveUser(CompanyUsersVm model) { try { var user = UserManager.FindById(model.Id.ToString()); switch (model.ActionToTake) { case "lock": if (user.Status == (int)UserStatusEnum.Active) { user.Status = (int)UserStatusEnum.Locked; user.LockoutEndDateUtc = new DateTime(9999, 12, 30); bool a = UserManager.IsLockedOut(user.Id); } else if (user.Status == (int)UserStatusEnum.Locked) { user.Status = (int)UserStatusEnum.Active; user.LockoutEndDateUtc = null; bool a = UserManager.IsLockedOut(user.Id); } break; case "password": if (!string.IsNullOrEmpty(model.Password)) { string resetToken = UserManager.GeneratePasswordResetToken(user.Id); IdentityResult passwordChangeResult = UserManager.ResetPassword(user.Id, resetToken, model.Password); if (passwordChangeResult != IdentityResult.Success) { throw new Exception(passwordChangeResult.Errors.FirstOrDefault()); } } break; case "create": var newUser = new WFPUser() { Id = Guid.NewGuid().ToString(), CreatedAt = DateTime.Now, UserName = model.Name.Trim(), Email = model.Name.Trim() + "@wfp.org", FirstName = model.FirstName, LastName = model.LastName, }; var result = UserManager.CreateAsync(newUser, model.Password); if (result.Result != IdentityResult.Success) { throw new Exception("There is an error while creating user." + result.Result.Errors.FirstOrDefault()); } break; case "delete": UserManager.Delete(user); break; } Db.SaveChanges(); return(Json(new JsonResponse() { IsSucess = true }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new JsonResponse() { IsSucess = false, ErrorMessage = ex.Message }, JsonRequestBehavior.AllowGet)); } }
public ActionResult InitializeUsers([ModelBinder(typeof(DataTablesBinder))] IDataTablesRequest requestModel) { List <CompanyUsersVm> users = new List <CompanyUsersVm>(); List <WFPUser> usersList = UserManager.Users.ToList(); List <SelectItemPair> roles = RoleManager.Roles.Select(x => new SelectItemPair() { Text = x.Name, Value = x.Id }).ToList(); foreach (var user in usersList) { var u = new CompanyUsersVm() { Id = Guid.Parse(user.Id), Name = user.UserName, FirstName = user.FirstName, LastName = user.LastName, Status = ((UserStatusEnum)user.Status).ToString(), }; UserManager.GetRoles(user.Id); List <SelectItemPair> rolesThisUser = new List <SelectItemPair>(); foreach (var role in roles) { SelectItemPair roleThisUser = new SelectItemPair() { Text = role.Text, Value = role.Value }; if (user.Roles.Select(x => x.RoleId).Contains(role.Value)) { roleThisUser.Selected = true; } rolesThisUser.Add(roleThisUser); } u.Roles = rolesThisUser; users.Add(u); } var totalCount = users.Count(); #region Filtering // Apply filters for searching if (requestModel.Search.Value != string.Empty) { var value = requestModel.Search.Value.Trim(); users = users.Where(p => p.Name.Contains(value)).ToList(); } var filteredCount = users.Count(); #endregion Filtering #region Sorting // Sorting var sortedColumns = requestModel.Columns.GetSortedColumns(); var orderByString = String.Empty; if (sortedColumns.Count() > 0) { foreach (var column in sortedColumns) { if (column.Data == "Name") { users = column.SortDirection.ToString() == "Ascendant" ? users.OrderBy(x => x.Name).ToList() : users.OrderByDescending(x => x.Name).ToList(); } if (column.Data == "FirstName") { users = column.SortDirection.ToString() == "Ascendant" ? users.OrderBy(x => x.FirstName).ToList() : users.OrderByDescending(x => x.FirstName).ToList(); } if (column.Data == "LastName") { users = column.SortDirection.ToString() == "Ascendant" ? users.OrderBy(x => x.LastName).ToList() : users.OrderByDescending(x => x.LastName).ToList(); } } orderByString = "Ordered"; } if (orderByString == string.Empty) { users = users.OrderBy(x => x.Name).ToList(); } #endregion Sorting // Paging if (requestModel.Length != -1) { users = users.Skip(requestModel.Start).Take(requestModel.Length).ToList(); } var result = users. ToList() .Select(x => new { Id = x.Id.ToString(), Name = x.Name, FirstName = x.FirstName, LastName = x.LastName, Status = x.Status, Roles = GetRoles(x), Actions = GetActionsUsers(x), }); return(Json(new DataTablesResponse (requestModel.Draw, result, filteredCount, totalCount), JsonRequestBehavior.AllowGet)); }