private static void AddRolesFor(this ClaimsIdentity identity, ServiceClaim claim)
        {
            switch (claim)
            {
            case ServiceClaim.DAA:
                identity.AddRole(RoleNames.HasAccountOwnerPermission);
                identity.AddRole(RoleNames.HasContributorWithApprovalOrAbovePermission);
                identity.AddRole(RoleNames.HasContributorOrAbovePermission);
                identity.AddRole(RoleNames.HasViewerOrAbovePermission);
                identity.AddRole(RoleNames.DasPermission);
                break;

            case ServiceClaim.DAB:
                identity.AddRole(RoleNames.HasContributorWithApprovalOrAbovePermission);
                identity.AddRole(RoleNames.HasContributorOrAbovePermission);
                identity.AddRole(RoleNames.HasViewerOrAbovePermission);
                identity.AddRole(RoleNames.DasPermission);
                break;

            case ServiceClaim.DAC:
                identity.AddRole(RoleNames.HasContributorOrAbovePermission);
                identity.AddRole(RoleNames.HasViewerOrAbovePermission);
                identity.AddRole(RoleNames.DasPermission);
                break;

            case ServiceClaim.DAV:
                identity.AddRole(RoleNames.HasViewerOrAbovePermission);
                identity.AddRole(RoleNames.DasPermission);
                break;
            }
        }
Esempio n. 2
0
        public static bool HasPermission(this ClaimsPrincipal user, ServiceClaim minimumRequiredClaim)
        {
            var serviceClaims = user
                                .FindAll(c => c.Type == ProviderRecruitClaims.IdamsUserServiceTypeClaimTypeIdentifier)
                                .Select(c => c.Value)
                                .ToList();

            ServiceClaim?highestClaim = null;

            if (serviceClaims.Contains(ServiceClaim.DAA.ToString()))
            {
                highestClaim = ServiceClaim.DAA;
            }
            else if (serviceClaims.Contains(ServiceClaim.DAB.ToString()))
            {
                highestClaim = ServiceClaim.DAB;
            }
            else if (serviceClaims.Contains(ServiceClaim.DAC.ToString()))
            {
                highestClaim = ServiceClaim.DAC;
            }
            else if (serviceClaims.Contains(ServiceClaim.DAV.ToString()))
            {
                highestClaim = ServiceClaim.DAV;
            }

            return(highestClaim.HasValue && highestClaim.Value >= minimumRequiredClaim);
        }
Esempio n. 3
0
        public void ShouldReturnHasPermission(ServiceClaim minimumServiceClaim, ServiceClaim[] actualServiceClaims, bool expected)
        {
            var claims = actualServiceClaims.Select(a => new Claim(ProviderRecruitClaims.IdamsUserServiceTypeClaimTypeIdentifier, a.ToString()));

            var identity        = new ClaimsIdentity(claims, "TestAuthType");
            var claimsPrincipal = new ClaimsPrincipal(identity);

            bool result = claimsPrincipal.HasPermission(minimumServiceClaim);

            result.Should().Be(expected);
        }
Esempio n. 4
0
        public void ShouldHandleNonDasClaimPermissions(ServiceClaim minimumServiceClaim, string[] actualServiceClaims, bool expected)
        {
            var claims = actualServiceClaims.Select(a => new Claim(ProviderClaims.Service, a));

            var identity        = new ClaimsIdentity(claims, "TestAuthType");
            var claimsPrincipal = new ClaimsPrincipal(identity);

            bool result = claimsPrincipal.HasPermission(minimumServiceClaim);

            Assert.AreEqual(expected, result);
        }
        public IList <ServiceClaim> GetServiceClaimForOrder(IUnitOfWork uow, Vodovoz.Domain.Orders.Order order)
        {
            ServiceClaim serviceClaimAlias = null;

            Vodovoz.Domain.Orders.Order initialOrderAlias = null, finalOrderAlias = null;

            var queryOver = uow.Session.QueryOver(() => serviceClaimAlias)
                            .JoinAlias(s => s.InitialOrder, () => initialOrderAlias, NHibernate.SqlCommand.JoinType.LeftOuterJoin)
                            .JoinAlias(s => s.FinalOrder, () => finalOrderAlias, NHibernate.SqlCommand.JoinType.LeftOuterJoin)
                            .Where(s => initialOrderAlias.Id == order.Id || finalOrderAlias.Id == order.Id);

            return(queryOver.List <ServiceClaim> ());
        }
        public QueryOver <ServiceClaim> GetDoneClaimsForClient(Vodovoz.Domain.Orders.Order order)
        {
            ServiceClaim serviceClaimAlias = null;
            Counterparty counterpartyAlias = null;

            var queryOver = QueryOver.Of(() => serviceClaimAlias)
                            .JoinAlias(s => s.Counterparty, () => counterpartyAlias)
                            .Where(s => counterpartyAlias.Id == order.Client.Id &&
                                   s.Status == ServiceClaimStatus.Ready &&
                                   s.FinalOrder == null &&
                                   s.Payment == order.PaymentType);

            return(queryOver);
        }
Esempio n. 7
0
        public async Task Verify_Minimum_Claim_Requirement(
            ServiceClaim userServiceClaim, ServiceClaim minimumRequirementClaim, bool hasSucceeded)
        {
            WhenHandlingRequestFixture fixture = new WhenHandlingRequestFixture();
            var context = fixture.SetWithProviderUserServiceClaims(new List <ServiceClaim> {
                userServiceClaim
            },
                                                                   new MinimumServiceClaimRequirement(minimumRequirementClaim));

            //Act
            await fixture.Handle(context);

            //Assert
            context.HasSucceeded.Should().Equals(hasSucceeded);
        }
Esempio n. 8
0
 public MinimumServiceClaimRequirement(ServiceClaim minimumServiceClaim)
 {
     MinimumServiceClaim = minimumServiceClaim;
 }
Esempio n. 9
0
 public ClaimController()
 {
     myService = new ServiceClaim();
 }