aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engine/classes/ElggMetadata.php6
-rw-r--r--engine/lib/entities.php7
2 files changed, 10 insertions, 3 deletions
diff --git a/engine/classes/ElggMetadata.php b/engine/classes/ElggMetadata.php
index ed3f8614f..32e7b32f1 100644
--- a/engine/classes/ElggMetadata.php
+++ b/engine/classes/ElggMetadata.php
@@ -45,11 +45,13 @@ class ElggMetadata extends ElggExtender {
/**
* Determines whether or not the user can edit this piece of metadata
*
+ * @param int $user_guid The GUID of the user (defaults to currently logged in user)
+ *
* @return true|false Depending on permissions
*/
- function canEdit() {
+ function canEdit($user_guid = 0) {
if ($entity = get_entity($this->get('entity_guid'))) {
- return $entity->canEditMetadata($this);
+ return $entity->canEditMetadata($this, $user_guid);
}
return false;
}
diff --git a/engine/lib/entities.php b/engine/lib/entities.php
index 1f6434533..fcd4544bf 100644
--- a/engine/lib/entities.php
+++ b/engine/lib/entities.php
@@ -1837,7 +1837,12 @@ function can_edit_entity_metadata($entity_guid, $user_guid = 0, $metadata = null
$return = can_edit_entity($entity_guid, $user_guid);
}
- $user = get_entity($user_guid);
+ if ($user_guid) {
+ $user = get_entity($user_guid);
+ } else {
+ $user = elgg_get_logged_in_user_entity();
+ }
+
$params = array('entity' => $entity, 'user' => $user, 'metadata' => $metadata);
$return = elgg_trigger_plugin_hook('permissions_check:metadata', $entity->type, $params, $return);
return $return;