diff --git a/islandora.module b/islandora.module index 96836f4c..9b81a388 100644 --- a/islandora.module +++ b/islandora.module @@ -444,13 +444,13 @@ function islandora_user_access($object, array $permissions, $content_models = ar // Check for access. $accessible_namespace = islandora_namespace_accessible($object->id); if ($access_any) { - $has_required_permissions = function ($permissions, $datastream, $object) { + $has_required_permissions = function ($permissions, $datastream, $object, $user) { foreach ($permissions as $p) { if ($datastream !== NULL) { - $check = islandora_datastream_access($p, $datastream); + $check = islandora_datastream_access($p, $datastream, $user); } else { - $check = islandora_object_access($p, $object); + $check = islandora_object_access($p, $object, $user); } if ($check) { @@ -461,13 +461,13 @@ function islandora_user_access($object, array $permissions, $content_models = ar $has_required_content_models = empty($content_models) ? TRUE : count(array_intersect($object->models, $content_models)) > 0; } else { - $has_required_permissions = function ($permissions, $datastream, $object) { + $has_required_permissions = function ($permissions, $datastream, $object, $user) { foreach ($permissions as $p) { if ($datastream !== NULL) { - $check = islandora_datastream_access($p, $datastream); + $check = islandora_datastream_access($p, $datastream, $user); } else { - $check = islandora_object_access($p, $object); + $check = islandora_object_access($p, $object, $user); } if (!$check) { @@ -479,7 +479,7 @@ function islandora_user_access($object, array $permissions, $content_models = ar } return $accessible_namespace && - $has_required_permissions($permissions, $datastream, $object) && + $has_required_permissions($permissions, $datastream, $object, $account) && $has_required_content_models; } @@ -1188,6 +1188,9 @@ function islandora_object_access($op, $object, $user = NULL) { if (!isset($cache[$op][$object->id][$user->uid])) { module_load_include('inc', 'islandora', 'includes/utilities'); + if (!($object instanceof AbstractObject)) { + ddebug_backtrace(); + } $results = islandora_invoke_hook_list('islandora_object_access', $object->models, array( $op, $object,