예제 #1
0
        public void ValidateTenantHierarchyCondition_IsValid_IfOwningTenant()
        {
            AccessControlEntry ace = _testHelper.CreateAceWithOwningTenant();

            AccessControlEntryValidationResult result = ace.Validate();

            Assert.That(result.IsValid, Is.True);
        }
예제 #2
0
        // Called before each test gets executed.
        public override void SetUp()
        {
            base.SetUp();
            TestHelper = new AccessControlTestHelper();

            // base class TearDown()-method (by MK) calls ClientTransactionScope.ResetActiveScope(),
            // discarding the transaction opened by EnterNonDiscardingScope below.
            TestHelper.Transaction.EnterNonDiscardingScope();


            ReadAccessType   = TestHelper.CreateReadAccessType();   // read access
            WriteAccessType  = TestHelper.CreateWriteAccessType();  // write access
            DeleteAccessType = TestHelper.CreateDeleteAccessType(); // delete permission

            AccessTypeDefinitions  = new[] { ReadAccessType, WriteAccessType, DeleteAccessType };
            AccessTypeDefinitions2 = new[] { ReadAccessType, DeleteAccessType };


            Tenant   = TestHelper.CreateTenant("Da Tenant");
            Group    = TestHelper.CreateGroup("Da Group", null, Tenant);
            Position = TestHelper.CreatePosition("Supreme Being");
            User     = TestHelper.CreateUser("DaUs", "Da", "Usa", "Dr.", Group, Tenant);
            Role     = TestHelper.CreateRole(User, Group, Position);
            Ace      = TestHelper.CreateAceWithOwningTenant();

            TestHelper.AttachAccessType(Ace, ReadAccessType, null);
            TestHelper.AttachAccessType(Ace, WriteAccessType, true);
            TestHelper.AttachAccessType(Ace, DeleteAccessType, null);


            Group2    = TestHelper.CreateGroup("Anotha Group", null, Tenant);
            Position2 = TestHelper.CreatePosition("Working Drone");
            User2     = TestHelper.CreateUser("mr.smith", "", "Smith", "Mr.", Group2, Tenant);
            Role2     = TestHelper.CreateRole(User2, Group2, Position2);
            Ace2      = TestHelper.CreateAceWithSpecificTenant(Tenant);

            TestHelper.AttachAccessType(Ace2, ReadAccessType, true);
            TestHelper.AttachAccessType(Ace2, WriteAccessType, null);
            TestHelper.AttachAccessType(Ace2, DeleteAccessType, true);


            Group3    = TestHelper.CreateGroup("Da 3rd Group", null, Tenant);
            Position3 = TestHelper.CreatePosition("Combatant");
            User3     = TestHelper.CreateUser("ryan_james", "Ryan", "James", "", Group3, Tenant);
            Role3     = TestHelper.CreateRole(User3, Group3, Position3);
            Ace3      = TestHelper.CreateAceWithPositionAndGroupCondition(Position3, GroupCondition.None);

            TestHelper.AttachAccessType(Ace3, ReadAccessType, true);
            TestHelper.AttachAccessType(Ace3, WriteAccessType, true);
            TestHelper.AttachAccessType(Ace3, DeleteAccessType, null);


            //--------------------------------
            // Create ACLs
            //--------------------------------

            SecurableClassDefinition orderClass = SetUpFixture.OrderClassHandle.GetObject();
            var aclList = orderClass.StatefulAccessControlLists;

            Assert.That(aclList.Count, Is.GreaterThanOrEqualTo(2));

            Acl = aclList[0];
            TestHelper.AttachAces(Acl, Ace, Ace2, Ace3);

            var ace2_1 = TestHelper.CreateAceWithAbstractRole();
            var ace2_2 = TestHelper.CreateAceWithPositionAndGroupCondition(Position2, GroupCondition.OwningGroup);

            Acl2 = aclList[1];
            TestHelper.AttachAces(Acl2, ace2_1, ace2_2, Ace3);

            // Additional roles for users
            TestHelper.CreateRole(User2, Group, Position2);
            TestHelper.CreateRole(User2, Group2, Position);
            TestHelper.CreateRole(User2, Group3, Position2);

            TestHelper.CreateRole(User3, Group, Position);
            TestHelper.CreateRole(User3, Group2, Position2);
            TestHelper.CreateRole(User3, Group3, Position3);
            TestHelper.CreateRole(User3, Group, Position3);
            TestHelper.CreateRole(User3, Group2, Position);
        }