public async Task HandleAsync(AuthorizationHandlerContext context) { var isAuthenticated = context.User.Identity.IsAuthenticated; if (isAuthenticated) { var user = await GetUserAsync(HttpUserModel.GenerateHttpUserModel(_httpContextAccessor)); //TODO: Add user to service var pendingRequirements = context.PendingRequirements.ToList(); //TODO: Add permission and Role filter } await Task.CompletedTask; }
private async Task <UserModel> GetUserAsync(HttpUserModel httpUser) { using (await _lock.LockAsync().ConfigureAwait(true)) { var user = await _mediator.Send(new GetUserByIdentityQuery() { Identity = httpUser.Identity, Provider = httpUser.Provider }); if (user == null) { user = await _mediator.Send(new CreateUserByIdentityCommand() { User = _mapper.Map <UserModel>(httpUser) }); } return(user); } }