private static PC.SCRoleCollection InnerGetRoles(OP.IApplication application) { var app = (PC.SCApplication)PC.Adapters.SchemaObjectAdapter.Instance.Load(application.ID); var roles = app.CurrentRoles; return roles; }
public OP.PermissionCollection GetPermissions(OP.IApplication application) { if (application == null) throw new ArgumentNullException("application"); var permissions = InnerGetPermission(application); return new OP.PermissionCollection((from p in permissions select this.CastPermission(p, application)).ToArray()); }
public OP.RoleCollection GetRoles(OP.IApplication application) { if (application == null) throw new ArgumentNullException("application"); var roles = InnerGetRoles(application); return new OP.RoleCollection((from p in roles select this.CastRole(p, application)).ToArray()); }
public OP.RoleCollection GetUserRoles(OP.IApplication application, OP.IUser user) { bool includeDeleted = Util.GetContextIncludeDeleted(); //var allRoles = GetRoles(application); var roles = PC.Adapters.SCSnapshotAdapter.Instance.QueryUserBelongToRoles(PC.SchemaInfo.FilterByCategory("Roles").ToSchemaNames(), application.CodeName, new string[] { user.ID }, false, DateTime.MinValue); ////var relations = PC.Adapters.SCSnapshotAdapter.Instance.QueryUserBelongToContainersByIDs(new string[] { "Roles" }, new string[] { user.ID }, includeDeleted, DateTime.MinValue); //return new OP.RoleCollection((from role in allRoles join r in relations on role.ID equals r.ID select role).ToArray()); return new OP.RoleCollection((from role in roles select this.CastRole(role, application)).ToArray()); }
public OP.PermissionCollection GetUserPermissions(OP.IApplication application, OP.IUser user) { //var allFuns = InnerGetPermission(application); //var allFunIds = allFuns.ToIDArray(); bool includeDeleted = Util.GetContextIncludeDeleted(); var appPermission = application.Permissions; var userAllPermissions = PC.Adapters.SCSnapshotAdapter.Instance.QueryPermissionsByUserIDs(new string[] { user.ID }, includeDeleted, DateTime.MinValue); return new OP.PermissionCollection((from p in userAllPermissions join appp in appPermission on p.ID equals appp.ID select this.CastPermission(p, application)).ToArray()); }
private OP.IRole CastRole(PC.SchemaObjectBase obj, OP.IApplication app) { OP.RoleImpl role = Util.GetPermissionObjectFactory().CreateObject(typeof(OP.IRole)) as OP.RoleImpl; var wrapper = role as OP.IApplicationMemberPropertyAccessible; if (wrapper == null) throw new InvalidCastException("工厂创建的对象应实现IApplicationMemberPropertyAccessible,否则无法适用此工厂。"); wrapper.CodeName = obj.Properties.GetValue<string>("CodeName", string.Empty); wrapper.Description = obj.Properties.GetValue<string>("Description", string.Empty); wrapper.ID = obj.ID; wrapper.Name = obj.Properties.GetValue<string>("Name", string.Empty); wrapper.Application = app; return role; }
private OP.IPermission CastPermission(PC.SchemaObjectBase obj, OP.IApplication app) { OP.IPermission per = (OP.IPermission)Util.GetPermissionObjectFactory().CreateObject(typeof(OP.IPermission)); if (per is OP.IApplicationMemberPropertyAccessible) { OP.IApplicationMemberPropertyAccessible wrapper = (OP.IApplicationMemberPropertyAccessible)per; wrapper.CodeName = obj.Properties.GetValue<string>("CodeName", string.Empty); wrapper.Description = obj.Properties.GetValue<string>("Description", string.Empty); wrapper.ID = obj.ID; wrapper.Name = obj.Properties.GetValue<string>("Name", string.Empty); wrapper.Application = app; } else { throw new InvalidCastException("工厂创建的对象应实现IPermissionPropertyAccessible"); } return per; }
private static PC.SCPermissionCollection InnerGetPermission(OP.IApplication application) { var permissions = ((PC.SCApplication)PC.Adapters.SchemaObjectAdapter.Instance.Load(application.ID)).CurrentPermissions; return permissions; }