Browse Source

ISLANDORA-1985 Add a permission to access inactive or deleted objects.

pull/677/head
Rosie Le Faive 9 years ago
parent
commit
7429f1b18b
  1. 11
      islandora.module

11
islandora.module

@ -34,6 +34,7 @@ define('ISLANDORA_INGEST', 'ingest fedora objects');
define('ISLANDORA_PURGE', 'delete fedora objects and datastreams');
define('ISLANDORA_MANAGE_PROPERTIES', 'manage object properties');
define('ISLANDORA_VIEW_DATASTREAM_HISTORY', 'view old datastream versions');
define('ISLANDORA_ACCESS_INACTIVE_AND_DELETED_OBJECTS', 'access inactive and deleted objects');
define('ISLANDORA_MANAGE_DELETED_OBJECTS', 'manage deleted objects');
define('ISLANDORA_REVERT_DATASTREAM', 'revert to old datastream');
define('ISLANDORA_REGENERATE_DERIVATIVES', 'regenerate derivatives for an object');
@ -611,6 +612,10 @@ function islandora_permission() {
'title' => t('Revert datastream history'),
'description' => t('Revert to a previous version of a datastream.'),
),
ISLANDORA_ACCESS_INACTIVE_AND_DELETED_OBJECTS => array(
'title' => t('Access inactive and deleted objects'),
'description' => t('Access objects with a Fedora state of Inactive or Deleted'),
),
ISLANDORA_MANAGE_DELETED_OBJECTS => array(
'title' => t('Manage deleted objects'),
'description' => t('Purge or revert deleted objects.'),
@ -1681,9 +1686,13 @@ function islandora_object_access($op, $object, $user = NULL) {
*/
function islandora_islandora_object_access($op, $object, $user) {
module_load_include('inc', 'islandora', 'includes/utilities');
if ($object->state != 'A') {
return islandora_namespace_accessible($object->id) && user_access($op, $user) && user_access(ISLANDORA_ACCESS_INACTIVE_AND_DELETED_OBJECTS, $user);
}
else {
return islandora_namespace_accessible($object->id) && user_access($op, $user);
}
}
/**
* Hookable access callback for datastreams.

Loading…
Cancel
Save