コード例 #1
0
        public async Task <UpdateUserCommand> ExecuteAsync(GetByIdQuery <UpdateUserCommand> query, IExecutionContext executionContext)
        {
            var dbUser = await _dbContext
                         .Users
                         .AsNoTracking()
                         .FilterCanLogIn()
                         .FilterById(query.Id)
                         .SingleOrDefaultAsync();

            if (dbUser == null)
            {
                return(null);
            }

            if (dbUser.UserAreaCode == CofoundryAdminUserArea.AreaCode)
            {
                _permissionValidationService.EnforceCurrentUserOrHasPermission <CofoundryUserReadPermission>(query.Id, executionContext.UserContext);
            }
            else
            {
                _permissionValidationService.EnforceCurrentUserOrHasPermission <NonCofoundryUserReadPermission>(query.Id, executionContext.UserContext);
            }

            var user = _mapper.Map <UpdateUserCommand>(dbUser);

            return(user);
        }
コード例 #2
0
        private void ValidatePermission(GetUserMicroSummaryByIdQuery query, IExecutionContext executionContext, UserMicroSummary user)
        {
            if (user == null)
            {
                return;
            }

            if (user.UserArea.UserAreaCode == CofoundryAdminUserArea.AreaCode)
            {
                _permissionValidationService.EnforceCurrentUserOrHasPermission <CofoundryUserReadPermission>(query.UserId, executionContext.UserContext);
            }
            else
            {
                _permissionValidationService.EnforceCurrentUserOrHasPermission <NonCofoundryUserReadPermission>(query.UserId, executionContext.UserContext);
            }
        }
コード例 #3
0
        public async Task <UpdateUserCommand> ExecuteAsync(GetPatchableCommandByIdQuery <UpdateUserCommand> query, IExecutionContext executionContext)
        {
            var dbUser = await _dbContext
                         .Users
                         .AsNoTracking()
                         .FilterNotDeleted()
                         .FilterNotSystemAccount()
                         .FilterById(query.Id)
                         .SingleOrDefaultAsync();

            if (dbUser == null)
            {
                return(null);
            }

            if (dbUser.UserAreaCode == CofoundryAdminUserArea.Code)
            {
                _permissionValidationService.EnforceCurrentUserOrHasPermission <CofoundryUserReadPermission>(query.Id, executionContext.UserContext);
            }
            else
            {
                _permissionValidationService.EnforceCurrentUserOrHasPermission <NonCofoundryUserReadPermission>(query.Id, executionContext.UserContext);
            }

            var userArea = _userAreaDefinitionRepository.GetByCode(dbUser.UserAreaCode);

            var user = new UpdateUserCommand()
            {
                Email                 = dbUser.Email,
                FirstName             = dbUser.FirstName,
                LastName              = dbUser.LastName,
                RequirePasswordChange = dbUser.RequirePasswordChange,
                RoleId                = dbUser.RoleId,
                UserId                = dbUser.UserId,
                IsAccountVerified     = dbUser.AccountVerifiedDate.HasValue,
                IsActive              = !dbUser.DeactivatedDate.HasValue
            };

            if (!userArea.UseEmailAsUsername)
            {
                user.Username = dbUser.Username;
            }

            return(user);
        }
コード例 #4
0
        public async Task <UserDetails> ExecuteAsync(GetByIdQuery <UserDetails> query, IExecutionContext executionContext)
        {
            var user = await _dbContext
                       .Users
                       .AsNoTracking()
                       .Where(u => u.UserId == query.Id)
                       .ProjectTo <UserDetails>()
                       .SingleOrDefaultAsync();

            if (user != null && user.UserArea.UserAreaCode == CofoundryAdminUserArea.AreaCode)
            {
                _permissionValidationService.EnforceCurrentUserOrHasPermission <CofoundryUserReadPermission>(query.Id, executionContext.UserContext);
            }
            else if (user != null)
            {
                _permissionValidationService.EnforceCurrentUserOrHasPermission <NonCofoundryUserReadPermission>(query.Id, executionContext.UserContext);
            }

            return(user);
        }
コード例 #5
0
        public async Task <UserDetails> ExecuteAsync(GetUserDetailsByIdQuery query, IExecutionContext executionContext)
        {
            var dbUser = await _dbContext
                         .Users
                         .AsNoTracking()
                         .Include(u => u.Creator)
                         .Include(u => u.Role)
                         .Where(u => u.UserId == query.UserId)
                         .SingleOrDefaultAsync();

            var user = _userDetailsMapper.Map(dbUser);

            if (user != null && user.UserArea.UserAreaCode == CofoundryAdminUserArea.Code)
            {
                _permissionValidationService.EnforceCurrentUserOrHasPermission <CofoundryUserReadPermission>(query.UserId, executionContext.UserContext);
            }
            else if (user != null)
            {
                _permissionValidationService.EnforceCurrentUserOrHasPermission <NonCofoundryUserReadPermission>(query.UserId, executionContext.UserContext);
            }

            return(user);
        }
コード例 #6
0
        public async Task <UpdateUserCommand> ExecuteAsync(GetUpdateCommandByIdQuery <UpdateUserCommand> query, IExecutionContext executionContext)
        {
            var dbUser = await _dbContext
                         .Users
                         .AsNoTracking()
                         .FilterCanLogIn()
                         .FilterById(query.Id)
                         .SingleOrDefaultAsync();

            if (dbUser == null)
            {
                return(null);
            }

            if (dbUser.UserAreaCode == CofoundryAdminUserArea.AreaCode)
            {
                _permissionValidationService.EnforceCurrentUserOrHasPermission <CofoundryUserReadPermission>(query.Id, executionContext.UserContext);
            }
            else
            {
                _permissionValidationService.EnforceCurrentUserOrHasPermission <NonCofoundryUserReadPermission>(query.Id, executionContext.UserContext);
            }

            var user = new UpdateUserCommand()
            {
                Email                 = dbUser.Email,
                FirstName             = dbUser.FirstName,
                IsEmailConfirmed      = dbUser.IsEmailConfirmed,
                LastName              = dbUser.LastName,
                RequirePasswordChange = dbUser.RequirePasswordChange,
                RoleId                = dbUser.RoleId,
                UserId                = dbUser.RoleId,
                Username              = dbUser.Username
            };

            return(user);
        }