From d73a986c1579cec32ff839cdcca0a209d9c4def7 Mon Sep 17 00:00:00 2001 From: Jaime Perez Crespo <jaime.perez@uninett.no> Date: Tue, 21 Apr 2015 11:56:47 +0200 Subject: [PATCH] Move SimpleSAML_Utilities:::resolvePath() to SimpleSAML\Utils\HTTP::resolvePath() and deprecate the former. --- lib/SimpleSAML/Utilities.php | 45 ++--------------------------- lib/SimpleSAML/Utils/HTTP.php | 53 +++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 43 deletions(-) diff --git a/lib/SimpleSAML/Utilities.php b/lib/SimpleSAML/Utilities.php index 334f5846b..81d8a28e8 100644 --- a/lib/SimpleSAML/Utilities.php +++ b/lib/SimpleSAML/Utilities.php @@ -749,51 +749,10 @@ class SimpleSAML_Utilities { /** - * Resolve a (possibly) relative path from the given base path. - * - * A path which starts with a '/' is assumed to be absolute, all others are assumed to be - * relative. The default base path is the root of the simpleSAMPphp installation. - * - * @param $path The path we should resolve. - * @param $base The base path, where we should search for $path from. Default value is the root - * of the simpleSAMLphp installation. - * @return An absolute path referring to $path. + * @deprecated This method will be removed in SSP 2.0. Please use SimpleSAML\Utils\HTTP::resolvePath() instead. */ public static function resolvePath($path, $base = NULL) { - if($base === NULL) { - $config = SimpleSAML_Configuration::getInstance(); - $base = $config->getBaseDir(); - } - - /* Remove trailing slashes from $base. */ - while(substr($base, -1) === '/') { - $base = substr($base, 0, -1); - } - - /* Check for absolute path. */ - if(substr($path, 0, 1) === '/') { - /* Absolute path. */ - $ret = '/'; - } else { - /* Path relative to base. */ - $ret = $base; - } - - $path = explode('/', $path); - foreach($path as $d) { - if($d === '.') { - continue; - } elseif($d === '..') { - $ret = dirname($ret); - } else { - if(substr($ret, -1) !== '/') { - $ret .= '/'; - } - $ret .= $d; - } - } - - return $ret; + return \SimpleSAML\Utils\HTTP::resolvePath($path, $base); } diff --git a/lib/SimpleSAML/Utils/HTTP.php b/lib/SimpleSAML/Utils/HTTP.php index 74f3421e5..5c504277c 100644 --- a/lib/SimpleSAML/Utils/HTTP.php +++ b/lib/SimpleSAML/Utils/HTTP.php @@ -241,4 +241,57 @@ class HTTP } return $res; } + + + /** + * Resolve a (possibly) relative path from the given base path. + * + * A path which starts with a '/' is assumed to be absolute, all others are assumed to be + * relative. The default base path is the root of the SimpleSAMPphp installation. + * + * @param string $path The path we should resolve. + * @param string|null $base The base path, where we should search for $path from. Default value is the root of the + * SimpleSAMLphp installation. + * + * @return string An absolute path referring to $path. + * + * @author Olav Morken, UNINETT AS <olav.morken@uninett.no> + */ + public static function resolvePath($path, $base = null) + { + if ($base === null) { + $config = \SimpleSAML_Configuration::getInstance(); + $base = $config->getBaseDir(); + } + + // remove trailing slashes from $base + while (substr($base, -1) === '/') { + $base = substr($base, 0, -1); + } + + // check for absolute path + if (substr($path, 0, 1) === '/') { + // absolute path. */ + $ret = '/'; + } else { + // path relative to base + $ret = $base; + } + + $path = explode('/', $path); + foreach ($path as $d) { + if ($d === '.') { + continue; + } elseif ($d === '..') { + $ret = dirname($ret); + } else { + if (substr($ret, -1) !== '/') { + $ret .= '/'; + } + $ret .= $d; + } + } + + return $ret; + } } \ No newline at end of file -- GitLab