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()); }
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()); }
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 }
public void GenDataTest() { SCObjectGenerator.PreareTestOguObjectForDelete(); }