public void AddUserToGroupExecutorTest() { SCGroup group = SCObjectGenerator.PrepareGroupObject(); SCObjectOperations.Instance.AddGroup(group, SCOrganization.GetRoot()); SCUser user1 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCMemberRelation mr = SCObjectOperations.Instance.AddUserToGroup(user1, group); Assert.AreEqual(group.SchemaType, mr.ContainerSchemaType); Assert.AreEqual(user1.SchemaType, mr.MemberSchemaType); SCUser user2 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user2, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddUserToGroup(user2, group); Assert.AreEqual(2, group.CurrentUsers.Count); Assert.IsTrue(group.CurrentUsers.ContainsKey(user1.ID)); Assert.IsTrue(group.CurrentUsers.ContainsKey(user2.ID)); Assert.IsTrue(user1.CurrentGroups.ContainsKey(group.ID)); Assert.IsTrue(user2.CurrentGroups.ContainsKey(group.ID)); SameContainerUserAndContainerSnapshotCollection ugSnapshot = UserAndContainerSnapshotAdapter.Instance.LoadByContainerID(group.ID); Assert.IsTrue(ugSnapshot.ContainsKey(user1.ID)); Assert.IsTrue(ugSnapshot.ContainsKey(user2.ID)); }
private void DoDelete(string[] keys) { try { Util.EnsureOperationSafe(); var actor = SCObjectOperations.InstanceWithPermissions; var adapter = SchemaObjectAdapter.Instance; var errorAdapter = new ListErrorAdapter(this.notice.Errors); var root = SCOrganization.GetRoot(); var objects = DbUtil.LoadAndCheckObjects("组织", errorAdapter, keys); try { actor.DeleteObjectsRecursively(objects, root); } catch (Exception ex) { this.notice.AddErrorInfo(ex.Message); MCS.Web.Library.WebUtility.ShowClientError(ex); } this.InnerRefreshList(); } catch (Exception ex) { this.notice.AddErrorInfo(ex); MCS.Web.Library.WebUtility.ShowClientError(ex); } }
public void SetUserDefaultOrganizationTest() { SCUser user = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user, null); SCUser userLoaded = (SCUser)SchemaObjectAdapter.Instance.Load(user.ID); SCOrganization root = SCOrganization.GetRoot(); SCOrganization org1 = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(org1, root); SCOrganization org2 = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(org2, root); SCObjectOperations.Instance.AddUserToOrganization(user, org1); SCObjectOperations.Instance.AddUserToOrganization(user, org2); SCObjectOperations.Instance.SetUserDefaultOrganization(user, org2); SCRelationObject relation1 = SchemaRelationObjectAdapter.Instance.Load(org1.ID, userLoaded.ID); SCRelationObject relation2 = SchemaRelationObjectAdapter.Instance.Load(org2.ID, userLoaded.ID); Assert.IsFalse(relation1.Default); Assert.IsTrue(relation2.Default); }
public void AddSecretaryToUserExecutorTest() { SCUser secretary = SCObjectGenerator.PrepareUserObject("罗", "剑", "罗剑" + UuidHelper.NewUuidString()); SCObjectOperations.Instance.AddUser(secretary, SCOrganization.GetRoot()); SCUser user1 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCSecretaryRelation sr = SCObjectOperations.Instance.AddSecretaryToUser(secretary, user1); Assert.AreEqual(secretary.SchemaType, sr.ContainerSchemaType); Assert.AreEqual(user1.SchemaType, sr.MemberSchemaType); SCUser user2 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user2, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddSecretaryToUser(secretary, user2); Assert.IsTrue(user1.CurrentSecretaries.ContainsKey(secretary.ID)); Assert.IsTrue(user2.CurrentSecretaries.ContainsKey(secretary.ID)); Assert.IsTrue(secretary.CurrentSecretariesOf.ContainsKey(user1.ID)); Assert.IsTrue(secretary.CurrentSecretariesOf.ContainsKey(user2.ID)); }
public void MoveUserNotChangeOwnerTest() { SCOrganization root = SCOrganization.GetRoot(); SCUser user = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user, root); SCOrganization sidelineOrg = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(sidelineOrg, root); //设置了兼职 SCObjectOperations.Instance.AddUser(user, sidelineOrg); SCOrganization targetOrg = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(targetOrg, root); SCObjectOperations.Instance.MoveObjectToOrganization(sidelineOrg, user, targetOrg); user = (SCUser)SchemaObjectAdapter.Instance.Load(user.ID); user.ClearRelativeData(); targetOrg.ClearRelativeData(); sidelineOrg.ClearRelativeData(); root.ClearRelativeData(); Assert.IsTrue(user.CurrentParents.ContainsKey(targetOrg.ID)); Assert.IsTrue(targetOrg.CurrentChildren.ContainsKey(user.ID)); Assert.IsFalse(sidelineOrg.CurrentChildren.ContainsKey(user.ID)); Assert.AreNotEqual(targetOrg.ID, user.OwnerID); }
public void UpdateOrganizationNameTest() { SCOrganization root = SCOrganization.GetRoot(); SCOrganization newOrg = SCObjectGenerator.PrepareOrganizationObject(); SCUser user = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddOrganization(newOrg, root); SchemaObjectBase objLoaded = SchemaObjectAdapter.Instance.Load(newOrg.ID); Assert.AreEqual(newOrg.Name, objLoaded.Properties.GetValue("Name", string.Empty)); Assert.IsTrue(objLoaded.CurrentParents.Count > 0); Assert.AreEqual(root.ID, objLoaded.CurrentParents[0].ID); SCObjectOperations.Instance.AddUser(user, newOrg); newOrg.ClearRelativeData(); newOrg.Name = "ChangedOrgName"; SCObjectOperations.Instance.UpdateOrganization(newOrg); Console.WriteLine("Org ID: {0}, User ID: {1}", newOrg.ID, user.ID); }
public void ChangeOwnerTest() { SCOrganization root = SCOrganization.GetRoot(); SCUser user = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user, root); SCOrganization sidelineOrg = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(sidelineOrg, root); //设置了兼职 SCObjectOperations.Instance.AddUser(user, sidelineOrg); SCObjectOperations.Instance.ChangeOwner(user, sidelineOrg); user = (SCUser)SchemaObjectAdapter.Instance.Load(user.ID); user.ClearRelativeData(); sidelineOrg.ClearRelativeData(); root.ClearRelativeData(); Console.WriteLine(user.OwnerName); Assert.AreEqual(sidelineOrg.ID, user.OwnerID); }
public void SCQueryPermissionsByUserIDsSnapshotTest() { SCApplication application = SCObjectGenerator.PrepareApplicationObject(); SCObjectOperations.Instance.AddApplication(application); SCRole role = SCObjectGenerator.PrepareRoleObject(); SCObjectOperations.Instance.AddRole(role, application); SCPermission permission = SCObjectGenerator.PreparePermissionObject(); SCObjectOperations.Instance.AddPermission(permission, application); SCRelationObject relation = SCObjectOperations.Instance.JoinRoleAndPermission(role, permission); SCUser user1 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1"); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddMemberToRole(user1, role); SchemaObjectCollection result = SCSnapshotAdapter.Instance.QueryPermissionsByUserIDs(new string[] { user1.ID }, false, DateTime.MinValue); Assert.IsTrue(result.Count > 0); Console.WriteLine(result[0].Properties.GetValue("Name", string.Empty)); Assert.AreEqual(permission.ID, result[0].ID); }
public void UpdateUserImage() { var userImagePropName = "PhotoKey"; SCUser user = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user, SCOrganization.GetRoot()); ImageProperty image = ImageGenerator.PrepareImage(); image.ResourceID = user.ID; Assert.IsTrue(CanSerialize(image)); SCObjectOperations.Instance.UpdateObjectImageProperty(user, userImagePropName, image); SCUser userLoad = (SCUser)SchemaObjectAdapter.Instance.Load(user.ID); Assert.IsNotNull(userLoad); var imageLoad = JSONSerializerExecute.Deserialize <ImageProperty>(userLoad.Properties[userImagePropName].StringValue); MaterialContentCollection mcc = MaterialContentAdapter.Instance.Load(builder => builder.AppendItem("CONTENT_ID", imageLoad.ID)); Assert.AreEqual(image.Name, imageLoad.Name); Assert.IsNotNull(mcc); Assert.AreEqual(1, mcc.Count); Assert.AreEqual(image.Content.ContentData.Length, mcc[0].ContentData.Length); SCObjectOperations.Instance.UpdateObjectImageProperty(user, userImagePropName, null); userLoad = (SCUser)SchemaObjectAdapter.Instance.Load(user.ID); Assert.AreEqual("", userLoad.Properties[userImagePropName].StringValue); }
public void QueryDirectChildrenTest() { SCUser user = SCObjectGenerator.PrepareUserObject(); string ticks = DateTime.Now.Ticks.ToString(); SCOrganization parent3 = SCObjectGenerator.PrepareOrganizationObject("第三组织" + ticks, "第三组织"); SCObjectOperations.Instance.AddOrganization(parent3, SCOrganization.GetRoot()); SCOrganization parent32 = SCObjectGenerator.PrepareOrganizationObject("第三.二组织" + ticks, "第三.二组织"); SCObjectOperations.Instance.AddOrganization(parent32, parent3); SCUser user3 = SCObjectGenerator.PrepareUserObject("李", "琪" + ticks, "liqi"); SCObjectOperations.Instance.AddUser(user3, parent32); string path = string.Format(@"第三组织{0}\第三.二组织{0}\李琪{0}", ticks); SCObjectAndRelationCollection result = SCSnapshotAdapter.Instance.QueryObjectAndRelationByParentIDs(new string[0], new string[] { parent32.ID }, false, true, false, DateTime.MinValue); result.Sort((x, y) => (int)(x.InnerSort - y.InnerSort)); result.FillDetails(); Assert.IsTrue(result.Count > 0); Console.WriteLine(result[0].Detail.Properties.GetValue("Name", string.Empty)); Assert.AreEqual(user3.ID, result[0].Detail.ID); }
public void AddMemberToRoleTest() { SCApplication application = SCObjectGenerator.PrepareApplicationObject(); SCObjectOperations.Instance.AddApplication(application); SCRole role = SCObjectGenerator.PrepareRoleObject(); SCObjectOperations.Instance.AddRole(role, application); SCUser user1 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1"); SCUser user2 = SCObjectGenerator.PrepareUserObject("RU2", "User2", "RoleUser2"); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddUser(user2, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddMemberToRole(user1, role); SCObjectOperations.Instance.AddMemberToRole(user2, role); Assert.AreEqual(2, role.CurrentMembers.Count); Assert.IsTrue(role.CurrentMembers.ContainsKey(user1.ID)); Assert.IsTrue(role.CurrentMembers.ContainsKey(user2.ID)); Assert.IsTrue(user1.CurrentRoles.ContainsKey(role.ID)); Assert.IsTrue(user2.CurrentRoles.ContainsKey(role.ID)); }
private static Dictionary <string, SCSimpleObject> PrepareParentsList(string navOu) { Dictionary <string, SCSimpleObject> result = null; if (navOu != SCOrganization.RootOrganizationID) { Dictionary <string, SCSimpleObjectCollection> parents = PC.Adapters.SCSnapshotAdapter.Instance.LoadAllParentsInfo(true, navOu); if (parents != null && parents.ContainsKey(navOu)) { Dictionary <string, SCSimpleObject> queue = parents[navOu].ToDictionary(); result = parents[navOu].ToDictionary(); } } else { SCOrganization root = SCOrganization.GetRoot(); result = new Dictionary <string, SCSimpleObject>() { { root.ID, root.ToSimpleObject() } }; } return(result); }
protected override void OnPreRender(EventArgs e) { if (string.IsNullOrEmpty(this.lastVisitOrg.Value) == false) { this.Response.Redirect("OUExplorer.aspx?ou=" + Server.UrlEncode(this.lastVisitOrg.Value), true); } else { base.OnPreRender(e); SCOrganization root = SCOrganization.GetRoot(); if (this.IsPostBack == false) { this.navOUID.Value = WebUtility.GetRequestQueryString("ou", root.ID); } DeluxeTreeNode rootTreeNode = CreateTreeNode(root.ID, root.Name, root.DisplayName, string.Empty); rootTreeNode.Expanded = true; this.tree.Nodes.Add(rootTreeNode); rootTreeNode.ChildNodesLoadingType = ChildNodesLoadingTypeDefine.Normal; Dictionary <string, SCSimpleObject> parentsList = PrepareParentsList(this.navOUID.Value); PrepareTreeNodeRecursively(root.ToSimpleObject(), rootTreeNode, parentsList, Util.GetTime(), this.navOUID.Value); } }
public void AddOrRemoveUserToGroupExecutorTest() { SCGroup group = SCObjectGenerator.PrepareGroupObject(); SCObjectOperations.Instance.AddGroup(group, SCOrganization.GetRoot()); SCUser user1 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); Console.WriteLine("UserID: {0}, GroupID: {1}", user1.ID, group.ID); SCMemberRelation mr = SCObjectOperations.Instance.AddUserToGroup(user1, group); SCObjectOperations.Instance.RemoveUserFromGroup(user1, group); // 确认删除 Assert.IsFalse(group.CurrentMembersRelations.ContainsKey(user1.ID)); Assert.IsFalse(user1.CurrentMemberOfRelations.ContainsKey(group.ID)); SCObjectOperations.Instance.AddUserToGroup(user1, group); // 重置数据 group.ClearRelativeData(); user1.ClearRelativeData(); // 确认又加回来了 Assert.IsTrue(group.CurrentUsers.ContainsKey(user1.ID)); Assert.IsTrue(user1.CurrentGroups.ContainsKey(group.ID)); Console.WriteLine("UserID: {0}, GroupID: {1}", user1.ID, group.ID); }
public void SimpleConditionTest() { SCConditionOwner owner = new SCConditionOwner(); SCUser user1 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCUser user2 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user2, SCOrganization.GetRoot()); owner.OwnerID = UuidHelper.NewUuidString(); string expression = string.Format("Users.CodeName == \"{0}\"", user2.CodeName); owner.Conditions.Add(new SCCondition() { Description = "基本测试", Condition = expression }); SCConditionCalculator calculator = new SCConditionCalculator(); IEnumerable <SchemaObjectBase> result = calculator.Calculate(owner); Assert.AreEqual(1, result.Count()); foreach (SchemaObjectBase obj in result) { Console.WriteLine("ID:{0}, Name: {1}", obj.ID, obj.Properties.GetValue("Name", string.Empty)); } }
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); }
public void MergeUserInGroupExecutorTest() { // 准备4位用户。User1位状态不变,User2待删除,User3新增加,User4复活 SCGroup group = SCObjectGenerator.PrepareGroupObject(); SCObjectOperations.Instance.AddGroup(group, SCOrganization.GetRoot()); SCUser user1 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCMemberRelation mr = SCObjectOperations.Instance.AddUserToGroup(user1, group); Assert.AreEqual(group.SchemaType, mr.ContainerSchemaType); Assert.AreEqual(user1.SchemaType, mr.MemberSchemaType); SCUser user2 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user2, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddUserToGroup(user2, group); SCUser user3 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user3, SCOrganization.GetRoot()); SCUser user4 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user4, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddUserToGroup(user4, group); SCObjectOperations.Instance.RemoveUserFromGroup(user4, group); user4.Status = SchemaObjectStatus.Normal; SchemaObjectCollection needMergeUsers = new SchemaObjectCollection() { user1, user3, user4 }; UserAndContainerSnapshotAdapter.Instance.Merge(group.ID, group.SchemaType, needMergeUsers); Console.WriteLine("Group ID: {0}", group.ID); SameContainerUserAndContainerSnapshotCollection ugSnapshot = UserAndContainerSnapshotAdapter.Instance.LoadByContainerID(group.ID); Assert.IsTrue(ugSnapshot.ContainsKey(user1.ID)); Assert.AreEqual(SchemaObjectStatus.Normal, ugSnapshot[user1.ID].Status); Assert.IsTrue(ugSnapshot.ContainsKey(user2.ID)); Assert.AreEqual(SchemaObjectStatus.Deleted, ugSnapshot[user2.ID].Status); Assert.IsTrue(ugSnapshot.ContainsKey(user3.ID)); Assert.AreEqual(SchemaObjectStatus.Normal, ugSnapshot[user3.ID].Status); Assert.IsTrue(ugSnapshot.ContainsKey(user4.ID)); Assert.AreEqual(SchemaObjectStatus.Normal, ugSnapshot[user4.ID].Status); }
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)); }
public void AddOrganizationTest() { SCOrganization root = SCOrganization.GetRoot(); SCOrganization newOrg = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(newOrg, root); SchemaObjectBase objLoaded = SchemaObjectAdapter.Instance.Load(newOrg.ID); Assert.AreEqual(newOrg.Name, objLoaded.Properties.GetValue("Name", string.Empty)); Assert.IsTrue(objLoaded.CurrentParents.Count > 0); Assert.AreEqual(root.ID, objLoaded.CurrentParents[0].ID); }
protected void GenRoots(object sender, EventArgs e) { var root = SCOrganization.GetRoot(); for (int i = 0; i < 20; i++) { SCOrganization org = new SCOrganization(); org.ID = UuidHelper.NewUuidString(); org.Name = org.ID; org.DisplayName = org.ID; org.CreateDate = DateTime.MinValue; org.CodeName = org.ID; PC.Executors.SCObjectOperations.InstanceWithPermissions.AddOrganization(org, root); } }
public void AddGroupExecutorTest() { Trace.CorrelationManager.ActivityId = UuidHelper.NewUuid(); SCGroup group = SCObjectGenerator.PrepareGroupObject(); SCObjectOperations.Instance.AddGroup(group, SCOrganization.GetRoot()); SCGroup groupLoaded = (SCGroup)SchemaObjectAdapter.Instance.Load(group.ID); Assert.AreEqual(group.ID, groupLoaded.ID); SCOperationLog log = SCOperationLogAdapter.Instance.LoadByResourceID(group.ID).FirstOrDefault(); Assert.IsNotNull(log); Assert.AreEqual(Trace.CorrelationManager.ActivityId.ToString(), log.CorrelationID); }
public void DeleteUserAndRelationExecutorTest() { SCOrganization root = SCOrganization.GetRoot(); SCUser user = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user, root); SCUser userLoaded = (SCUser)SchemaObjectAdapter.Instance.Load(user.ID); SCObjectOperations.Instance.DeleteUser(userLoaded, null, false); userLoaded = (SCUser)SchemaObjectAdapter.Instance.Load(user.ID); Assert.AreEqual(SchemaObjectStatus.Deleted, userLoaded.Status); userLoaded.AllParentRelations.ForEach(r => Assert.AreEqual(SchemaObjectStatus.Deleted, r.Status)); }
public void LoadSimpleObjectTest() { SCOrganization root = SCOrganization.GetRoot(); SCOrganization newOrg = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(newOrg, root); root.ClearRelativeData(); SCSimpleObjectCollection simpleChildren = root.CurrentChildren.ToSimpleObjects(); SCSimpleObject simpleObj = simpleChildren.Find(obj => obj.ID == newOrg.ID); Console.WriteLine(simpleObj.DisplayName); Assert.IsNotNull(simpleObj); Assert.AreEqual(simpleObj.Name, simpleObj.DisplayName); }
public void RemoveUserFromGroupExecutorTest() { SCGroup group = SCObjectGenerator.PrepareGroupObject(); SCObjectOperations.Instance.AddGroup(group, SCOrganization.GetRoot()); SCUser user1 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddUserToGroup(user1, group); SCObjectOperations.Instance.RemoveUserFromGroup(user1, group); Assert.IsTrue(group.AllMembersRelations.ContainsKey(user1.ID)); Assert.IsFalse(group.CurrentMembersRelations.ContainsKey(user1.ID)); Assert.IsTrue(user1.AllMemberOfRelations.ContainsKey(group.ID)); Assert.IsFalse(user1.CurrentMemberOfRelations.ContainsKey(group.ID)); }
public static SCGroup PrepareGroupWithConditions(out SCUser userInGroup, out SCUser userNotInGroup) { userInGroup = PrepareUserObject(); SCObjectOperations.Instance.AddUser(userInGroup, SCOrganization.GetRoot()); userNotInGroup = PrepareUserObject(); SCObjectOperations.Instance.AddUser(userNotInGroup, SCOrganization.GetRoot()); SCGroup group = PrepareGroupObject(); SCObjectOperations.Instance.AddGroup(group, SCOrganization.GetRoot()); SCConditionOwner owner = new SCConditionOwner(); owner.OwnerID = group.ID; owner.Conditions.Add(new SCCondition(string.Format("Users.CodeName == \"{0}\"", userInGroup.CodeName))); SCConditionAdapter.Instance.UpdateConditions(owner); return(group); }
public void TestOfAdminAddRoleMembers() { this.InitAdmins(); var mainApp = this.CreateDefaultApp(); var mainRole = this.CreateDefaultRole(); Facade.AddUser(new SCUser() { ID = Guid.NewGuid().ToString(), Name = "范海燕", CodeName = "fanhy", DisplayName = "fanyh" }, SCOrganization.GetRoot()); var fanhy = GetSCUserByCodeName("fanhy"); FacadeWithAcl.AddMemberToRole(fanhy, mainRole); var members = PC.Adapters.SCMemberRelationAdapter.Instance.LoadByContainerID(mainRole.ID); Assert.IsTrue((from m in members where m.ID == fanhy.ID select m).Any()); }
public void DeleteRoleTest() { SCApplication application = SCObjectGenerator.PrepareApplicationObject(); SCObjectOperations.Instance.AddApplication(application); SCRole role = SCObjectGenerator.PrepareRoleObject(); SCObjectOperations.Instance.AddRole(role, application); Console.WriteLine("RoleID: {0}", role.ID); SCUser user1 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1"); SCUser user2 = SCObjectGenerator.PrepareUserObject("RU2", "User2", "RoleUser2"); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddUser(user2, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddMemberToRole(user1, role); SCObjectOperations.Instance.AddMemberToRole(user2, role); SCObjectAndRelationCollection relations = SCSnapshotAdapter.Instance.QueryRolesContainsMembers(new string[] { "Roles" }, new string[] { role.ID }, false, DateTime.MinValue); Assert.AreEqual(role.CurrentMembers.Count, relations.Count); SCObjectOperations.Instance.DeleteRole(role); Assert.AreEqual(0, application.CurrentRoles.Count); Assert.AreEqual(0, user1.CurrentRoles.Count); Assert.AreEqual(0, user2.CurrentRoles.Count); SCObjectAndRelationCollection relationDeleted = SCSnapshotAdapter.Instance.QueryRolesContainsMembers(new string[] { "Roles" }, new string[] { role.ID }, false, DateTime.MinValue); Assert.AreEqual(role.CurrentMembers.Count, relationDeleted.Count); SameContainerUserAndContainerSnapshotCollection containsUsers = UserAndContainerSnapshotAdapter.Instance.LoadByContainerID(role.ID); containsUsers.ForEach(u => Assert.AreEqual(SchemaObjectStatus.Deleted, u.Status)); }
public void MoveGroupTest() { SCOrganization root = SCOrganization.GetRoot(); SCGroup group = SCObjectGenerator.PrepareGroupObject(); SCObjectOperations.Instance.AddGroup(group, root); SCOrganization newOrg = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(newOrg, root); SCObjectOperations.Instance.MoveObjectToOrganization(null, group, newOrg); group.ClearRelativeData(); newOrg.ClearRelativeData(); root.ClearRelativeData(); Assert.IsTrue(group.CurrentParents.ContainsKey(newOrg.ID)); Assert.IsTrue(newOrg.CurrentChildren.ContainsKey(group.ID)); Assert.IsFalse(root.CurrentChildren.ContainsKey(group.ID)); }
public void QueryGroupMembersTest() { SCGroup group = SCObjectGenerator.PrepareGroupObject(); SCObjectOperations.Instance.AddGroup(group, SCOrganization.GetRoot()); SCUser user1 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCMemberRelation mr = SCObjectOperations.Instance.AddUserToGroup(user1, group); SCObjectAndRelationCollection result = SCSnapshotAdapter.Instance.QueryContainerContainsUsersByIDs(new string[] { "Groups" }, new string[] { group.ID }, false, DateTime.MinValue); Assert.IsTrue(result.Count > 0); result.FillDetails(); Console.WriteLine(result[0].Detail.Properties.GetValue("Name", string.Empty)); Console.WriteLine(result[0].ParentID); Assert.AreEqual(user1.ID, result[0].Detail.ID); }
protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); SCOrganization root = SCOrganization.GetRoot(); DeluxeTreeNode rootTreeNode = CreateTreeNode(root.ID, root.Name, root.DisplayName, string.Empty, root.SchemaType); rootTreeNode.Expanded = true; rootTreeNode.ShowCheckBox = false; this.tree.Nodes.Add(rootTreeNode); rootTreeNode.ChildNodesLoadingType = ChildNodesLoadingTypeDefine.Normal; string[] schemaTypes = this.Request.QueryString.GetValues("schemaType") ?? DefaultSearchSchemas; HashSet <string> union = new HashSet <string>(schemaTypes); union.UnionWith(alwaysVisibleSchemaObjects); SCObjectAndRelationCollection relations = SCSnapshotAdapter.Instance.QueryObjectAndRelationByParentIDs(union.ToArray(), new string[] { root.ID }, false, false, false, Util.GetTime()); BindObjectsToTreeNodes(relations, rootTreeNode.Nodes, schemaTypes); }