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); }
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); } }
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); }
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); }
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); }
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); }