Browse Source

Fix for Islandora 504 reverted SecurityClass changes

pull/96/head
Paul Pound 13 years ago
parent
commit
a41a256be2
  1. 25
      SecurityClass.inc

25
SecurityClass.inc

@ -23,16 +23,14 @@ class SecurityClass {
} }
/** /**
* reads the specified stream of the parent object to see if the user can ingest in this collection. * canIngestHere ??
* * @global type $user
* @global object $user * @param type $collection_pid
* @param string $collection_pid * @return type
* @return boolean
*/ */
function canIngestHere($collection_pid) { function canIngestHere($collection_pid) {
global $user; global $user;
module_load_include('inc', 'fedora_repository', 'ObjectHelper'); module_load_include('inc', 'fedora_repository', 'ObjectHelper');
module_load_include('inc', 'islandora_xacml_api', 'Xacml');
$objectHelper = new ObjectHelper(); $objectHelper = new ObjectHelper();
// get the childsecurity policy from the collection. // get the childsecurity policy from the collection.
$policyStream = $objectHelper->getStream($collection_pid, SECURITYCLASS :: $SECURITY_CLASS_SECURITY_STREAM, FALSE); $policyStream = $objectHelper->getStream($collection_pid, SECURITYCLASS :: $SECURITY_CLASS_SECURITY_STREAM, FALSE);
@ -41,9 +39,13 @@ class SecurityClass {
// maybe we should return FALSE here?? would be more secure. // maybe we should return FALSE here?? would be more secure.
return TRUE; return TRUE;
} }
$xacml = new Xacml($policyStream); $allowedUsersAndRoles = $this->getAllowedUsersAndRoles($policyStream);
$allowedUsers = $xacml->managementRule->getUsers(); if (!$allowedUsersAndRoles) {
$allowedRoles = $xacml->managementRule->getRoles(); // error processing stream so don't let them ingest here.
return FALSE;
}
$allowedUsers = $allowedUsersAndRoles["users"];
$allowedRoles = $allowedUsersAndRoles["roles"];
foreach ($user->roles as $role) { foreach ($user->roles as $role) {
if (in_array($role, $allowedRoles)) { if (in_array($role, $allowedRoles)) {
@ -58,10 +60,7 @@ class SecurityClass {
} }
/** /**
* Depracated should use the xacml api for this
*
* parses our simple xacml policies checking for users or roles that are allowed to ingest * parses our simple xacml policies checking for users or roles that are allowed to ingest
*
* @param type $policyStream * @param type $policyStream
* @return type * @return type
*/ */
@ -154,8 +153,6 @@ class SecurityClass {
} }
/** /**
* Depracated should use the xacml api for this
*
* Add a list of allowed users and roles to the given policy stream and return it. * Add a list of allowed users and roles to the given policy stream and return it.
* *
* @param string $policy_stream * @param string $policy_stream

Loading…
Cancel
Save