コード例 #1
0
        public async Task GetEffectivePermissionsForUser_WhenUserIsAdmin_ThenReturnFullPermissions()
        {
            // Arrange
            string          specificationId = "spec123";
            string          userId          = "testuser";
            ClaimsPrincipal user            = BuildClaimsPrincipal(userId, true);

            IAuthorizationService authorizationService = Substitute.For <IAuthorizationService>();
            IUsersApiClient       usersClient          = Substitute.For <IUsersApiClient>();

            AuthorizationHelper authHelper = CreateAuthenticationHelper(authorizationService, usersClient);

            // Act
            Common.ApiClient.Users.Models.EffectiveSpecificationPermission permissions = await authHelper.GetEffectivePermissionsForUser(user, specificationId);

            // Assert
            permissions.CanAdministerFundingStream.Should().BeTrue("CanAdministerFundingStream");
            permissions.CanApproveFunding.Should().BeTrue("CanApproveFunding");
            permissions.CanApproveSpecification.Should().BeTrue("CanApproveSpecification");
            permissions.CanChooseFunding.Should().BeTrue("CanChooseFunding");
            permissions.CanCreateQaTests.Should().BeTrue("CanCreateQaTests");
            permissions.CanCreateSpecification.Should().BeTrue("CanCreateSpecification");
            permissions.CanEditCalculations.Should().BeTrue("CanEditCalculations");
            permissions.CanEditQaTests.Should().BeTrue("CanEditQaTests");
            permissions.CanEditSpecification.Should().BeTrue("CanEditSpecification");
            permissions.CanMapDatasets.Should().BeTrue("CanMapDatasets");
            permissions.CanPublishFunding.Should().BeTrue("CanPublishFunding");
            permissions.CanRefreshFunding.Should().BeTrue("CanRefreshFunding");
        }
コード例 #2
0
        public async Task <IActionResult> GetEffectivePermissions(string specificationId)
        {
            Guard.IsNullOrWhiteSpace(specificationId, nameof(specificationId));

            Common.ApiClient.Users.Models.EffectiveSpecificationPermission effectivePermissions = await _authorizationHelper.GetEffectivePermissionsForUser(User, specificationId);

            return(Ok(effectivePermissions));
        }