public virtual JObject GetACL(HttpContext context) { YZRequest request = new YZRequest(context); string rsid = request.GetString("rsid"); string table = request.GetString("table"); string key = request.GetString("key"); string datasource = request.GetString("datasource", null); JObject rv = new JObject(); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); UserResource userResource = UserResource.Open(cn, rsid); UserResourcePermisionCollection perms = UserResource.GetPermisions(cn, rsid); RDACL acl = RecordSecurityManager.LoadACL(cn, table, key, datasource); JArray jperms = new JArray(); rv["perms"] = jperms; foreach (UserResourcePermision perm in perms) { if (perm.PermType != UserResourcePermisionType.Record) { continue; } JObject jperm = new JObject(); jperms.Add(jperm); jperm["PermName"] = perm.PermName; jperm["PermType"] = perm.PermType.ToString(); jperm["PermDisplayName"] = perm.PermDisplayName; } JObject jacl = new JObject(); rv["acl"] = jacl; JArray jaces = new JArray(); jacl["aces"] = jaces; URACECollection uraces = this.RDACEs2URACEs(acl.ACEs); foreach (URACE ace in uraces) { //获得ACE角色的显示名 string displayName = ace.GetSIDDisplayName(cn); if (String.IsNullOrEmpty(displayName)) { continue; } JObject jace = JObject.FromObject(ace); jaces.Add(jace); jace["DisplayName"] = displayName; } } return(rv); }
public virtual void SaveACL(HttpContext context) { YZRequest request = new YZRequest(context); string rsid = request.GetString("rsid"); string table = request.GetString("table"); string key = request.GetString("key"); string datasource = request.GetString("datasource", null); JArray post = request.GetPostData <JArray>(); URACECollection uraces = post.ToObject <URACECollection>(request.Serializer); RDACECollection rdaces = this.URACEs2RDACEs(uraces); using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); RDACL acl = new RDACL(); acl.ACEs = rdaces; RecordSecurityManager.SaveACL(cn, table, key, acl, datasource); } }