diff options
-rw-r--r-- | engine/lib/entities.php | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/engine/lib/entities.php b/engine/lib/entities.php index 94f3e56e7..0985298f7 100644 --- a/engine/lib/entities.php +++ b/engine/lib/entities.php @@ -1632,8 +1632,12 @@ // Test user if possible - should default to false unless a plugin hook says otherwise if (!is_null($user)) { - if ($entity->getOwner() == $user->getGUID()) return true; - if ($entity->type == "user" && $entity->getGUID() == $user->getGUID()) return true; + if ($entity->getOwner() == $user->getGUID()) return true;
+ if ($entity->container_guid == $user->getGUID()) return true; + if ($entity->type == "user" && $entity->getGUID() == $user->getGUID()) return true;
+ if ($container_entity = get_entity($entity->container_guid)) {
+ if ($container_entity->canEdit()) return true;
+ } } return trigger_plugin_hook('permissions_check',$entity->type,array('entity' => $entity, 'user' => $user),false); |