Ejemplo n.º 1
0
        public void TestExplicitDenyGroup()
        {
            User user_a = new User("User_A");
            User user_b = new User("User_B");

            Group group_root = new Group("Group_root");

            group_root.AddDescendant(user_b);

            Group group_a = new Group("Group_A");

            group_a.AddDescendant(user_a);
            group_root.AddDescendant(group_a);

            InMemoryAccessManager accessManager  = new InMemoryAccessManager();
            SampleResource        sampleResource = new SampleResource()
            {
                Identifier = "Key1"
            };

            accessManager.CreateAccessControlContainer(sampleResource, user_a);

            AccessControlEntry accessControlEntry = new AccessControlEntry(Permission.Allow, Operation.Read, sampleResource, group_root);

            accessManager.AddEntry(sampleResource, accessControlEntry, user_a);

            AccessControlEntry denyEntry = new AccessControlEntry(Permission.Deny, Operation.Read, sampleResource, group_a);

            accessManager.AddEntry(sampleResource, denyEntry, user_a);

            Assert.True(accessManager.ValidateAccess(sampleResource, Operation.Read, group_root));
            Assert.True(accessManager.ValidateAccess(sampleResource, Operation.Read, user_b));
            Assert.False(accessManager.ValidateAccess(sampleResource, Operation.Read, group_a));
            Assert.False(accessManager.ValidateAccess(sampleResource, Operation.Read, user_a));
        }
Ejemplo n.º 2
0
        public void TestSingleUser()
        {
            User user_a = new User("User_A");
            User user_b = new User("User_B");

            Group group_root = new Group("Group_root");

            group_root.AddDescendant(user_b);

            Group group_a = new Group("Group_A");

            group_a.AddDescendant(user_a);
            group_root.AddDescendant(group_a);

            Assert.True(group_root.HasDescendant(group_root));
            Assert.True(group_root.HasDescendant(user_a));
            Assert.True(group_root.HasDescendant(user_b));
            Assert.True(group_root.HasDescendant(group_a));
            Assert.True(group_a.HasDescendant(user_a));
            Assert.True(user_a.HasDescendant(user_a));
            Assert.False(group_a.HasDescendant(user_b));
            Assert.False(user_a.HasDescendant(user_b));
        }