示例#1
0
        public void InheritAclPermissionsTest()
        {
            //准备组织数据
            SCOrganization parent = SCObjectGenerator.PrepareOrganizationObject();

            SCObjectOperations.Instance.AddOrganization(parent, SCOrganization.GetRoot());

            //准备应用
            SCApplication application = SCObjectGenerator.PrepareApplicationObject();

            SCObjectOperations.Instance.AddApplication(application);

            SCRole role1 = SCObjectGenerator.PrepareRoleObject();

            //准备角色
            SCObjectOperations.Instance.AddRole(role1, application);

            //准备人员
            SCUser user1 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1");

            SCObjectOperations.Instance.AddUser(user1, parent);

            //将人员添加到角色
            SCObjectOperations.Instance.AddMemberToRole(user1, role1);

            SCRole role2 = SCObjectGenerator.PrepareRoleObject();

            //准备角色
            SCObjectOperations.Instance.AddRole(role2, application);

            //准备人员
            SCUser user2 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1");

            SCObjectOperations.Instance.AddUser(user2, parent);

            //将人员添加到角色
            SCObjectOperations.Instance.AddMemberToRole(user2, role2);

            //准备Container
            SCAclContainer container = new SCAclContainer(parent);

            container.Members.Add("AddChildren", role1);
            container.Members.Add("AddChildren", role2);

            SCObjectOperations.Instance.UpdateObjectAcl(container);

            SCOrganization organization = SCObjectGenerator.PrepareOrganizationObject();

            SCObjectOperations.Instance.AddOrganization(organization, parent);

            SCAclMemberCollection members = SCAclAdapter.Instance.LoadByContainerID(organization.ID, DateTime.MinValue);

            Assert.IsTrue(members.ContainsKey("AddChildren", role1.ID));
            Assert.AreEqual(SchemaObjectStatus.Normal, members["AddChildren", role1.ID].Status);

            Assert.IsTrue(members.ContainsKey("AddChildren", role2.ID));
            Assert.AreEqual(SchemaObjectStatus.Normal, members["AddChildren", role2.ID].Status);
        }
示例#2
0
        public void DeleteAclMemberTest()
        {
            //准备组织数据
            SCOrganization organization = SCObjectGenerator.PrepareOrganizationObject();

            SCObjectOperations.Instance.AddOrganization(organization, SCOrganization.GetRoot());

            //准备应用
            SCApplication application = SCObjectGenerator.PrepareApplicationObject();

            SCObjectOperations.Instance.AddApplication(application);

            SCRole role1 = SCObjectGenerator.PrepareRoleObject();

            //准备角色
            SCObjectOperations.Instance.AddRole(role1, application);

            //准备人员
            SCUser user1 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1");

            SCObjectOperations.Instance.AddUser(user1, organization);

            //将人员添加到角色
            SCObjectOperations.Instance.AddMemberToRole(user1, role1);

            SCRole role2 = SCObjectGenerator.PrepareRoleObject();

            //准备角色
            SCObjectOperations.Instance.AddRole(role2, application);

            //准备人员
            SCUser user2 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1");

            SCObjectOperations.Instance.AddUser(user2, organization);

            //将人员添加到角色
            SCObjectOperations.Instance.AddMemberToRole(user2, role2);

            //准备Container
            SCAclContainer container = new SCAclContainer(organization);

            container.Members.Add("AddChildren", role1);
            container.Members.Add("AddChildren", role2);

            SCObjectOperations.Instance.UpdateObjectAcl(container);

            Console.WriteLine("ContainerID: {0}", container.ContainerID);

            SCObjectOperations.Instance.DeleteRole(role1);
            SCObjectOperations.Instance.DeleteRole(role2);

            SCAclMemberCollection members = SCAclAdapter.Instance.LoadByContainerID(organization.ID, DateTime.MinValue);

            Assert.IsFalse(members.ContainsKey("AddChildren", role1.ID));
            Assert.IsFalse(members.ContainsKey("AddChildren", role2.ID));
        }