public async Task Run() { const long ukprn = 10005077; const long accountLegalEntityId = 1; var hasPermissionRequest = new HasPermissionRequest { Ukprn = ukprn, AccountLegalEntityId = accountLegalEntityId, Operation = Operation.CreateCohort }; var hasPermission = await _providerRelationshipsApiClient.HasPermission(hasPermissionRequest); Console.WriteLine($"Calling HasPermission with Ukprn {hasPermissionRequest.Ukprn}, AccountLegalEntityId {hasPermissionRequest.AccountLegalEntityId}, Operation {hasPermissionRequest.Operation} returned {hasPermission}"); }
public Task <bool> HasPermission() { HasPermissionRequest = new HasPermissionRequest { Ukprn = 11111111, AccountLegalEntityId = 1, Operation = Operation.CreateCohort }; Mediator.Setup(m => m.Send(It.Is <HasPermissionQuery>(q => q.Ukprn == HasPermissionRequest.Ukprn && q.EmployerAccountLegalEntityId == HasPermissionRequest.AccountLegalEntityId && q.Operation == HasPermissionRequest.Operation), CancellationToken)) .ReturnsAsync(() => Relationships.Any()); return(ProviderRelationshipsApiClient.HasPermission(HasPermissionRequest, CancellationToken)); }
public Task <IActionResult> HasPermissionAsync([FromBody] HasPermissionRequest hasPermissionRequest) { return(CommonOperationAsync <IActionResult>(async() => { if (!ModelState.IsValid) { throw new ArgumentException(ModelState.ModelStateToString(LocalizationService)); } var hasPermission = await _permissionManager.HasPermission(hasPermissionRequest); return Ok(new ApiResponse(LocalizationService, Logger).Ok(hasPermission)); })); }
public async Task <bool> HasPermission(HasPermissionRequest hasPermissionRequest) { try { var userId = _apiRequest.UserId; if (_apiRequest.ApplicationId != hasPermissionRequest.ApplicationId) { throw new KeyNotFoundException("Uygulama id bulunamadı"); } var roles = (await _userRoleManager.GetRolesByUserIdAsync(userId)).ResultList; foreach (var permissionAttribute in hasPermissionRequest.PermissionAttributes) { if (permissionAttribute.ClaimType != null) { await CheckCustomClaimAsync(hasPermissionRequest.ApplicationId, userId, roles, permissionAttribute.ClaimType); } else if (permissionAttribute.Entity != null && permissionAttribute.Crud != null) { await CheckEntityClaimAsync(_apiRequest.ApplicationId, userId, roles, permissionAttribute.Entity, (Crud)permissionAttribute.Crud); } else { throw new KeyNotFoundException(); } } } catch (KeyNotFoundException ex) { throw new UnauthorizedAccessException(ex.Message); } catch (Exception ex) { _logger.LogCritical(ex.Message); throw; } return(true); }
public Task <bool> HasPermission(HasPermissionRequest request, CancellationToken cancellationToken = new CancellationToken()) { throw new NotImplementedException(); }
public async Task <bool> HasPermission(HasPermissionRequest request, CancellationToken cancellationToken = new CancellationToken()) { var result = await GetPermissionsForProvider(request.Ukprn, request.Operation, cancellationToken).ConfigureAwait(false); return(result.Any()); }
public Task <bool> HasPermission(HasPermissionRequest request, CancellationToken cancellationToken = default) { return(_mediator.Send(new HasPermissionQuery(request.Ukprn, request.AccountLegalEntityId, request.Operation), cancellationToken)); }