public void ApplyToPermissionView(EntityPackage package, IPermissionView view) { if (package.HasRelation(Keys.ParentRelation)) { view.parentId = package.GetRelation(Keys.ParentRelation).entityId1; } view.permissions = ToPerms(package.Relations); }
public override bool CanUser(Requester requester, string action, EntityPackage package) { var result = base.CanUser(requester, action, package); if (cachedSupers == null) { logger.LogWarning("CanUser called without cached supers"); } else { var parentId = package.HasRelation(Keys.ParentRelation) ? package.GetRelation(Keys.ParentRelation).entityId1 : -1; result = result || action != Keys.ReadAction && (cachedSupers.ContainsKey(parentId) && cachedSupers[parentId].Contains(requester.userId) || cachedSupers.ContainsKey(package.Entity.id) && cachedSupers[package.Entity.id].Contains(requester.userId)); } return(result); }