public static SCObjectSet ExportAUSchemas(string[] auSchemaIDs) { auSchemaIDs.NullCheck("auSchemaIDs"); if (auSchemaIDs.Length == 0) { throw new ArgumentException("至少应包含一个AUSchemaID", "auSchemaIDs"); } SCObjectSet objectSet = new SCObjectSet(); objectSet.Scope = "AUSchemas"; AUCommon.DoDbAction(() => { var schemas = ExportQueryHelper.LoadObjects(auSchemaIDs, AUCommon.SchemaAUSchema); if (schemas.Count > 0) { var members = ExportQueryHelper.LoadMembershipOf(schemas.ToIDArray()); //查找Schema中的角色关系 var roles = ExportQueryHelper.LoadObjects(members.Select(m => m.ID).ToArray(), AUCommon.SchemaAUSchemaRole); objectSet.Objects = schemas + roles; objectSet.Membership = members; } }); return(objectSet); }
private static void LookupMemberObjects(SCObjectSet objectSet, string[] memberIDs, string schemaType) { if (memberIDs != null && memberIDs.Length > 0) { var members = ExportQueryHelper.LoadObjects(memberIDs, schemaType, false); objectSet.Objects.Merge(members); //查找角色的固定成员 var roleMembers = ExportQueryHelper.LoadMembershipOf(memberIDs); objectSet.Membership.AddRange(roleMembers); } }
public override SCObjectSet Execute(HttpRequest req) { string[] ids = req.Form.GetValues("id"); if (ids == null || ids.Length < 0) { throw new HttpException("当获取应用数据时,必须提供ID参数"); } SCObjectSet objectSet = new SCObjectSet(); objectSet.Scope = "AllApps"; objectSet.Objects = ExportQueryHelper.LoadObjects(ids, "Applications"); // 查找应用下的角色和功能 objectSet.Membership = ExportQueryHelper.LoadMembershipOf(ids, "Applications"); var memberObjects = ExportQueryHelper.LoadObjects((from obj in objectSet.Membership select obj.ID).ToArray(), null); objectSet.Acls = ExportQueryHelper.LoadAclsFor(ids); // ACL foreach (var obj in memberObjects) { if (objectSet.Objects.ContainsKey(obj.ID) == false) { objectSet.Objects.Add(obj); // 成员对象(角色和功能) } } var roleIds = (from m in memberObjects where m is PC.SCRole select m.ID).ToArray(); if (roleIds.Length > 0) { var roleMembers = ExportQueryHelper.LoadMembershipOf(roleIds); objectSet.Membership.CopyFrom(roleMembers); // 角色→固定成员 objectSet.Conditions = ExportQueryHelper.LoadConditions(roleIds); // 角色→条件 objectSet.Relations = ExportQueryHelper.LoadFullRelations(roleIds); } return(objectSet); }
public static SCObjectSet ExportAUSchemas(string category) { SCObjectSet objectSet = new SCObjectSet(); objectSet.Scope = "AUSchemas"; var schemas = Adapters.AUSnapshotAdapter.Instance.LoadAUSchemaByCategory(category, true, DateTime.MinValue); AUCommon.DoDbAction(() => { if (schemas.Count > 0) { var members = ExportQueryHelper.LoadMembershipOf(schemas.ToIDArray()); //查找Schema中的角色关系 var roles = ExportQueryHelper.LoadObjects(members.Select(m => m.ID).ToArray(), AUCommon.SchemaAUSchemaRole); objectSet.Objects = schemas + roles; objectSet.Membership = members; } }); return(objectSet); }