Beispiel #1
0
        public void ValidateSpecificUser_IsValid()
        {
            var tenant = _testHelper.CreateTenant("TestTenant");
            var user   = _testHelper.CreateUser("TestUser", "user", "user", null, _testHelper.CreateGroup("TestGroup", null, tenant), tenant);
            var ace    = _testHelper.CreateAceWithSpecificUser(user);

            AccessControlEntryValidationResult result = ace.Validate();

            Assert.That(result.IsValid, Is.True);
        }
Beispiel #2
0
        public void Initialize_WithRoles()
        {
            Tenant tenant = _testHelper.CreateTenant("tenant");
            User   user   = _testHelper.CreateUser("userName", null, "lastName", null, null, null);

            Role[]    roles     = new[] { CreateRole(tenant), CreateRole(tenant) };
            Principal principal = PrincipalTestHelper.Create(tenant, user, roles);

            Assert.That(principal.Tenant, Is.EqualTo(tenant).Using(DomainObjectHandleComparer.Instance));
            Assert.That(principal.User, Is.EqualTo(user).Using(DomainObjectHandleComparer.Instance));
            Assert.That(principal.Roles, Is.EquivalentTo(roles).Using(PrincipalRoleComparer.Instance));
            Assert.That(principal.IsNull, Is.False);
        }
Beispiel #3
0
        public void ClearSpecificUser()
        {
            var tenant = _testHelper.CreateTenant("TestTenant");
            var user   = _testHelper.CreateUser("TestUser", "user", "user", null, _testHelper.CreateGroup("TestGroup", null, tenant), tenant);
            var ace    = _testHelper.CreateAceWithSpecificUser(user);

            using (ClientTransaction.Current.CreateSubTransaction().EnterDiscardingScope())
            {
                ace.UserCondition = UserCondition.Owner;

                Assert.That(ace.SpecificUser, Is.Not.Null);
                ClientTransactionScope.CurrentTransaction.Commit();
                Assert.That(ace.SpecificUser, Is.Null);
            }
        }
Beispiel #4
0
        public void CascadeToAccessControlEntry()
        {
            DatabaseFixtures        dbFixtures = new DatabaseFixtures();
            AccessControlTestHelper testHelper = new AccessControlTestHelper();

            using (testHelper.Transaction.EnterNonDiscardingScope())
            {
                dbFixtures.CreateEmptyDomain();
                var tenant      = testHelper.CreateTenant("TestTenant");
                var owningGroup = testHelper.CreateGroup("group", null, tenant);
                var user        = testHelper.CreateUser("user", null, "user", null, owningGroup, tenant);
                var ace         = testHelper.CreateAceWithSpecificUser(user);
                ClientTransaction.Current.Commit();

                user.Delete();

                ClientTransaction.Current.Commit();

                Assert.That(ace.State, Is.EqualTo(StateType.Invalid));
            }
        }
Beispiel #5
0
 protected User CreateUser(Tenant tenant, Group group)
 {
     return(_testHelper.CreateUser("test.user", "Test", "User", null, group, tenant));
 }
Beispiel #6
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);
        }