protected virtual RDACECollection URACEs2RDACEs(URACECollection uraces) { RDACECollection rdaces = new RDACECollection(); foreach (URACE urace in uraces) { if (urace.AllowPermision.Count == 0) { urace.AllowPermision.Add(""); } foreach (string permision in urace.AllowPermision) { RDACE rdace = new RDACE(); rdaces.Add(rdace); rdace.SIDType = urace.SIDType; rdace.SID = urace.SID; rdace.Permision = permision; rdace.LeadershipToken = urace.LeadershipTokenPermision.Contains(permision); } } return(rdaces); }
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); } }
protected virtual URACECollection RDACEs2URACEs(RDACECollection rdaces) { URACECollection uraces = new URACECollection(); foreach (RDACE rdace in rdaces) { URACE urace = this.FindURACE(uraces, rdace); if (urace != null) { if (!urace.AllowPermision.Contains(rdace.Permision)) { urace.AllowPermision.Add(rdace.Permision); } } else { urace = new URACE(); uraces.Add(urace); urace.SIDType = rdace.SIDType; urace.SID = rdace.SID; urace.AllowPermision.Add(rdace.Permision); if (rdace.LeadershipToken) { urace.LeadershipTokenPermision.Add(rdace.Permision); } urace.Inherited = false; urace.Inheritable = false; urace.CreateDate = rdace.CreateDate; urace.CreateBy = rdace.CreateBy; } } return(uraces); }