Exemple #1
0
        public void LoadCurrentContainerAndPermissionsTest()
        {
            SCAclAdapter adapter = SCAclAdapter.Instance;

            SCObjectGenerator.PreareTestOguObjectForDelete();
            var parent1 = (SCOrganization)SchemaObjectAdapter.Instance.LoadByCodeName("Organizations", "groupHQ", SchemaObjectStatus.Normal, DateTime.MinValue);

            var role1 = (SCRole)SchemaObjectAdapter.Instance.LoadByCodeName("Roles", "系统管理员", SchemaObjectStatus.Normal, DateTime.MinValue);

            var role2 = (SCRole)SchemaObjectAdapter.Instance.LoadByCodeName("Roles", "系统维护员", SchemaObjectStatus.Normal, DateTime.MinValue);

            var container = new PC.Permissions.SCAclContainer(parent1);

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

            container.Members.Add("UpdateChildren", role2);
            container.Members.Add("EditPermissionsOfChildren", role2);
            container.Members.Add("AddChildren", role2);

            PC.Executors.SCObjectOperations.Instance.UpdateObjectAcl(container);

            var user = (SCUser)SchemaObjectAdapter.Instance.LoadByCodeName("Users", "fanhy", SchemaObjectStatus.Normal, DateTime.MinValue);

            Thread.Sleep(2000);

            var result = adapter.LoadCurrentContainerAndPermissions(user.ID, new string[] { parent1.ID });

            Assert.IsTrue((from PC.Permissions.SCContainerAndPermission p in result where p.ContainerPermission == "AddChildren" && p.ContainerID == parent1.ID select p).Any());

            Assert.IsTrue((from PC.Permissions.SCContainerAndPermission p in result where p.ContainerPermission == "DeleteChildren" && p.ContainerID == parent1.ID select p).Any());
        }
Exemple #2
0
        public void ReplaceAcl()
        {
            SCObjectGenerator.PreareTestOguObjectForDelete();
            var parent1 = (SCOrganization)SchemaObjectAdapter.Instance.LoadByCodeName("Organizations", "groupHQ", SchemaObjectStatus.Normal, DateTime.MinValue);

            var parent2 = (SCOrganization)SchemaObjectAdapter.Instance.LoadByCodeName("Organizations", "流程管理部", SchemaObjectStatus.Normal, DateTime.MinValue);

            var role1 = (SCRole)SchemaObjectAdapter.Instance.LoadByCodeName("Roles", "系统管理员", SchemaObjectStatus.Normal, DateTime.MinValue);

            var role2 = (SCRole)SchemaObjectAdapter.Instance.LoadByCodeName("Roles", "系统维护员", SchemaObjectStatus.Normal, DateTime.MinValue);

            var container = new PC.Permissions.SCAclContainer(parent1);

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

            container.Members.Add("UpdateChildren", role2);
            container.Members.Add("EditPermissionsOfChildren", role2);
            container.Members.Add("AddChildren", role2);

            PC.Executors.SCObjectOperations.Instance.UpdateObjectAcl(container);

            var childAcls = PC.Adapters.SCAclAdapter.Instance.LoadByContainerID(parent2.ID, DateTime.MinValue);

            Assert.IsTrue(childAcls.Count == 0);

            SCReplaceAclRecursivelyExecutor executor = new SCReplaceAclRecursivelyExecutor(SOA.DataObjects.Security.Actions.SCOperationType.ReplaceAclRecursively, parent1)
            {
            };

            executor.Execute();

            childAcls = PC.Adapters.SCAclAdapter.Instance.LoadByContainerID(parent2.ID, DateTime.MinValue);
            Assert.IsTrue(childAcls.Count == 5);

            Assert.IsTrue((from p in childAcls where p.ContainerID == parent2.ID && p.ContainerPermission == "AddChildren" && p.MemberID == role1.ID select p).Any());
            Assert.IsTrue((from p in childAcls where p.ContainerID == parent2.ID && p.ContainerPermission == "DeleteChildren" && p.MemberID == role1.ID select p).Any());
            Assert.IsTrue((from p in childAcls where p.ContainerID == parent2.ID && p.ContainerPermission == "UpdateChildren" && p.MemberID == role2.ID select p).Any());
            Assert.IsTrue((from p in childAcls where p.ContainerID == parent2.ID && p.ContainerPermission == "EditPermissionsOfChildren" && p.MemberID == role2.ID select p).Any());
            Assert.IsTrue((from p in childAcls where p.ContainerID == parent2.ID && p.ContainerPermission == "AddChildren" && p.MemberID == role2.ID select p).Any());
        }
Exemple #3
0
        public void DeleteObjectsRecursivelyTest()
        {
            // 调用SCObjectGenerator,准备测试数据,包括人员、组织群组、组织中包含子组织和人员
            SCObjectGenerator.PreareTestOguObjectForDelete();
            SCOrganization parent = (SCOrganization)SchemaObjectAdapter.Instance.Load("91841971-44CB-4895-8B31-D9EA7432A74A");             // cityCompany

            SchemaObjectCollection objectsToDelete = new SchemaObjectCollection()
            {
                SchemaObjectAdapter.Instance.Load("471F24D5-962E-46B9-849B-639D0AEB2B16")  // beijingYuanlian
            };

            ProcessProgress.Clear();
            ProcessProgress.Current.RegisterResponser(TestProgressResponser.Instance);

            // 执行删除,过程中会输出状态信息
            SCObjectOperations.Instance.DeleteObjectsRecursively(objectsToDelete, parent);

            // 输出
            Console.Error.WriteLine("Error: {0}", ProcessProgress.Current.GetDefaultError());
            Console.WriteLine("Output: {0}", ProcessProgress.Current.GetDefaultOutput());

            // 验证结果

            Assert.IsFalse(this.ObjectDeleted("2B67F7D0-9362-401F-977F-3E267E87298B"));            // wangfaping
            Assert.IsFalse(this.ObjectDeleted("3729DAC3-80E0-476C-8C4A-264E0F67BBC2"));            // liumh
            Assert.IsTrue(this.ObjectDeleted("066352AA-8349-4D21-B83F-C909BA5B8352"));             // beijingYuanlianExecutives
            Assert.IsTrue(this.ObjectDeleted("2F28C437-BBF9-4969-9C07-639BD9716B1E"));             // yuanyangAobei

            Assert.IsFalse(this.ObjectDeleted("16903BF9-74B5-4B58-9204-8BB20F341D88"));            // beijingZhonglian

            Assert.IsTrue(this.ObjectDeleted("CA093A1E-B207-48DB-B3B2-B085A81DA36A"));             // groupA

            Assert.IsTrue(this.ObjectDeleted("A465FFC8-A742-41F3-A1B6-0D40FC5EA3D5"));             // groupB

            Assert.IsFalse(this.ObjectDeleted("D1C28431-DD5D-496E-865B-85C6D89ED3D6"));            // zhaolin1
        }
Exemple #4
0
 public void GenDataTest()
 {
     SCObjectGenerator.PreareTestOguObjectForDelete();
 }