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();
 }
Exemple #6
0
        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));
 }