예제 #1
0
        public void ApplyToPermissionView(EntityPackage package, IPermissionView view)
        {
            if (package.HasRelation(Keys.ParentRelation))
            {
                view.parentId = package.GetRelation(Keys.ParentRelation).entityId1;
            }

            view.permissions = ToPerms(package.Relations);
        }
예제 #2
0
        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);
        }