Пример #1
0
        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;
        }