public static function obtainPermissionsXML($node, $pkg = null) { // this function reads a file in, and grabs all the various filesystem permissions xml that applies to that file // and returns it in a DOM object $node = SinglePage::sanitizePath($node); // first, we operate on this if it's not in a package if (!is_object($pkg)) { if (is_dir(DIR_FILES_CONTROLLERS . '/' . $node) || is_dir(DIR_FILES_CONTROLLERS_REQUIRED . '/' . $node)) { if (is_dir(DIR_FILES_CONTROLLERS . '/' . $node)) { $pathToPerms = DIR_FILES_CONTROLLERS . '/' . $node; if (file_exists($pathToPerms . '/' . FILENAME_COLLECTION_ACCESS)) { $xmlweb = $pathToPerms . '/' . FILENAME_COLLECTION_ACCESS; } } if (is_dir(DIR_FILES_CONTROLLERS_REQUIRED . '/' . $node)) { $pathToPerms = DIR_FILES_CONTROLLERS_REQUIRED . '/' . $node; if (file_exists($pathToPerms . '/' . FILENAME_COLLECTION_ACCESS)) { $xmlcore = $pathToPerms . '/' . FILENAME_COLLECTION_ACCESS; } } } else { if (strpos($node, '/') === false) { if (file_exists(DIR_FILES_CONTROLLERS . '/' . FILENAME_COLLECTION_ACCESS)) { $xmlweb = DIR_FILES_CONTROLLERS . '/' . FILENAME_COLLECTION_ACCESS; } else if (file_exists(DIR_FILES_CONTROLLERS_REQUIRED . '/' . FILENAME_COLLECTION_ACCESS)) { $xmlcore = DIR_FILES_CONTROLLERS_REQUIRED . '/' . FILENAME_COLLECTION_ACCESS; } } } if (isset($xmlweb)) { $perms = SinglePage::checkPermissionsXML($xmlweb, $node); if ($perms != null) { return $perms; } } if (isset($xmlcore)) { $perms = SinglePage::checkPermissionsXML($xmlcore, $node); if ($perms != null) { return $perms; } } } else { if (is_dir(DIR_PACKAGES . '/' . $pkg->getPackageHandle())) { $dirp = DIR_PACKAGES; } else { $dirp = DIR_PACKAGES_CORE; } $file1 = $dirp . '/' . $pkg->getPackageHandle() . '/' . DIRNAME_PAGES . '/' . $node . '/' . FILENAME_COLLECTION_VIEW; $file2 = $dirp . '/' . $pkg->getPackageHandle() . '/' . DIRNAME_PAGES . '/' . $node . '.php'; if (file_exists($file1)) { $pathToPerms = $dirp . '/' . $pkg->getPackageHandle() . '/' . DIRNAME_CONTROLLERS . '/' . $node; } else if (file_exists($file2)) { $pathNode = '/' . substr($node, 0, strrpos($node, '/')); $pathToPerms = $dirp . '/' . $pkg->getPackageHandle() . '/' . DIRNAME_CONTROLLERS . $pathNode; } if (file_exists($pathToPerms . '/' . FILENAME_COLLECTION_ACCESS)) { $xml = $pathToPerms . '/' . FILENAME_COLLECTION_ACCESS; } if (isset($xml)) { $perms = SinglePage::checkPermissionsXML($xml, $node); if ($perms != null) { return $perms; } } } return false; }