Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        public override SCObjectSet Execute(HttpRequest req)
        {
            string[] ids = req.Form.GetValues("id");

            if (ids == null && ids.Length == 0)
            {
                throw new HttpException("当获取功能对象时,必须提供ID参数");
            }

            string appId = req.Form["appId"];

            if (string.IsNullOrEmpty(appId))
            {
                throw new HttpException("当获取功能对象时,必须提供appId参数");
            }

            SCObjectSet objectSet = new SCObjectSet();

            objectSet.Scope = "AppPermissions";

            PC.SCApplication appObj = (PC.SCApplication)PC.Adapters.SchemaObjectAdapter.Instance.Load(appId);
            if (appObj == null || appObj.Status != SchemaObjectStatus.Normal)
            {
                throw new HttpException("指定的应用不存在或者已删除");
            }

            objectSet.Objects = ExportQueryHelper.LoadObjects(ids, null);

            objectSet.Membership = ExportQueryHelper.LoadMembershipFor(ids, appId);
            return(objectSet);
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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 = "AllUsers";

            objectSet.Objects = ExportQueryHelper.LoadObjects(ids, null);

            objectSet.Relations = ExportQueryHelper.LoadFullRelations(ids);

            objectSet.Membership = ExportQueryHelper.LoadFullMemberships(ids);

            return(objectSet);
        }
Exemplo n.º 7
0
        public override SCObjectSet Execute(HttpRequest req)
        {
            string[] ids = req.Form.GetValues("id");

            if (ids == null && ids.Length == 0)
            {
                throw new HttpException("当获取角色对象时,必须提供ID参数");
            }

            string appId = req.Form["appId"];

            if (string.IsNullOrEmpty(appId))
            {
                throw new HttpException("当获取角色对象时,必须提供appId参数");
            }

            SCObjectSet objectSet = new SCObjectSet();

            objectSet.Scope = "AppRoles";

            PC.SCApplication appObj = (PC.SCApplication)PC.Adapters.SchemaObjectAdapter.Instance.Load(appId);
            if (appObj == null || appObj.Status != SchemaObjectStatus.Normal)
            {
                throw new HttpException("指定的应用不存在或者已删除");
            }

            objectSet.Objects = ExportQueryHelper.LoadObjects(ids, null);

            objectSet.Membership = ExportQueryHelper.LoadFullMemberships(ids);        // 应用与角色的关系 & 应用的成员关系

            objectSet.Conditions = ExportQueryHelper.LoadConditions(ids);             // 保存对象的条件

            objectSet.Relations = ExportQueryHelper.LoadFullRelations(ids);           // 与权限的绑定关系

            return(objectSet);
        }