public void HasAccess_WithRequiredAccessTypesMatchingAllowedAccessTypes_ReturnsTrue()
        {
            _securityProviderMock
            .Expect(_ => _.GetAccess(SecurityContext.CreateStateless(_securableType), _principalStub))
            .Return(
                new[]
            {
                AccessType.Get(GeneralAccessTypes.Create),
                AccessType.Get(GeneralAccessTypes.Delete),
                AccessType.Get(GeneralAccessTypes.Read)
            });

            bool hasAccess = _strategy.HasAccess(
                _securableType,
                _securityProviderMock,
                _principalStub,
                new[]
            {
                AccessType.Get(GeneralAccessTypes.Delete),
                AccessType.Get(GeneralAccessTypes.Create)
            });

            Assert.That(hasAccess, Is.EqualTo(true));
            _securityProviderMock.VerifyAllExpectations();
        }
Пример #2
0
 public void ExpectFunctionalSecurityStrategyHasAccess(Type securableObjectType, Enum accessTypeEnum, HasStatelessAccessDelegate doDelegate)
 {
     Expect.Call(
         _mockFunctionalSecurityStrategy.HasAccess(
             Arg.Is(securableObjectType),
             Arg.Is(_mockSecurityProvider),
             Arg.Is(_stubUser),
             Arg <IReadOnlyList <AccessType> > .List.Equal(new[] { AccessType.Get(accessTypeEnum) })))
     .WhenCalled(mi => CheckTransaction())
     .WhenCalled(mi => CheckTransaction())
     .Do(doDelegate);
 }
 private void ExpectFunctionalSecurityStrategyHasAccessForSecurableObject (Enum accessTypeEnum, bool returnValue)
 {
   Expect
       .Call (
           _mockFunctionalSecurityStrategy.HasAccess (
               Arg.Is (typeof (SecurableObject)),
               Arg.Is (_mockSecurityProvider),
               Arg.Is (_stubUser),
               Arg<IReadOnlyList<AccessType>>.List.Equal (new[] { AccessType.Get (accessTypeEnum) })))
       .Return (returnValue);
 }
 public void ExpectFunctionalSecurityStrategyHasAccess(Enum[] requiredAccessTypes, bool returnValue)
 {
     Expect
     .Call(
         _mockFunctionalSecurityStrategy.HasAccess(
             Arg.Is(typeof(SecurableObject)),
             Arg.Is(_mockSecurityProvider),
             Arg.Is(_userStub),
             Arg <IReadOnlyList <AccessType> > .List.Equal(ConvertAccessTypeEnums(requiredAccessTypes))))
     .Return(returnValue);
 }
Пример #5
0
 public void ExpectHasStatelessAccessForSecurableObject(Enum[] accessTypeEnums, bool returnValue)
 {
     AccessType[] accessTypes = Array.ConvertAll <Enum, AccessType> (accessTypeEnums, AccessType.Get);
     Expect
     .Call(
         _mockFunctionalSecurityStrategy.HasAccess(
             Arg.Is(typeof(SecurableObject)),
             Arg.Is(_mockSecurityProvider),
             Arg.Is(_stubUser),
             Arg <IReadOnlyList <AccessType> > .List.Equal(accessTypes)))
     .Return(returnValue);
 }
Пример #6
0
        public virtual bool HasStatelessAccess(Type securableClass, ISecurityPrincipal principal, IReadOnlyList <AccessType> requiredAccessTypes)
        {
            ArgumentUtility.CheckNotNull("securableClass", securableClass);
            ArgumentUtility.CheckNotNull("principal", principal);
            ArgumentUtility.CheckNotNull("requiredAccessTypes", requiredAccessTypes);

            if (SecurityFreeSection.IsActive)
            {
                return(true);
            }

            return(_functionalSecurityStrategy.HasAccess(securableClass, _securityProvider, principal, requiredAccessTypes));
        }