private UserWithPermissions LoadUserWithPermissions(string userName) { var allPermissionIds = GetAllPermissions().Select(p => p.Id).ToArray(); var user = new UserWithPermissions(); using (var repository = _platformRepository()) { var account = repository.Accounts .Include(a => a.RoleAssignments.Select(ra => ra.Role.RolePermissions)) .FirstOrDefault(a => a.UserName == userName); if (account != null) { user.IsActive = account.AccountState == AccountState.Approved; user.RegisterType = account.RegisterType; user.StoredPermissionIds = account.RoleAssignments .Select(ra => ra.Role) .SelectMany(r => r.RolePermissions) .Select(rp => rp.PermissionId) .Distinct(StringComparer.OrdinalIgnoreCase) .ToArray(); } } user.ActivePermissionIds = allPermissionIds.Intersect(user.StoredPermissionIds).ToArray(); return(user); }
public async Task <ActionResult> Edit(Guid?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var userDTO = await _customUserManager.FindByIdAsync(id.ToString()); if (userDTO == null) { return(HttpNotFound()); } Dropdown(); AuctionList(); var userVM = Mapper.Map <AdminUserViewModel>(userDTO); var listPermissions = await _customUserManager.GetPermissionsAsync(userVM.Id); List <Models.PermissionViewModel> listPermissionsVM = new List <Models.PermissionViewModel>(); foreach (var permissionDTO in listPermissions) { var permissionsVM = new Models.PermissionViewModel() { UserId = permissionDTO.UserId, Role = (Presentation.Models.Role)(int) permissionDTO.Role, AuctionId = permissionDTO.AuctionId, CategoriesId = new List <Guid>() }; permissionsVM.CategoriesId = permissionDTO.CategoriesId; listPermissionsVM.Add(permissionsVM); } userVM.Password = string.Empty; var userWithPermissions = new UserWithPermissions() { User = userVM, Permissions = listPermissionsVM }; return(View(userWithPermissions)); }
private UserWithPermissions LoadUserWithPermissions(string userName) { var allPermissionIds = GetAllPermissions().Select(p => p.Id).ToArray(); var user = new UserWithPermissions(); using (var repository = _platformRepository()) { var account = repository.Accounts .Include(a => a.RoleAssignments.Select(ra => ra.Role.RolePermissions)) .FirstOrDefault(a => a.UserName == userName); if (account != null) { user.IsActive = account.AccountState == AccountState.Approved; user.RegisterType = account.RegisterType; user.StoredPermissionIds = account.RoleAssignments .Select(ra => ra.Role) .SelectMany(r => r.RolePermissions) .Select(rp => rp.PermissionId) .Distinct(StringComparer.OrdinalIgnoreCase) .ToArray(); } } user.ActivePermissionIds = allPermissionIds.Intersect(user.StoredPermissionIds).ToArray(); return user; }