Risoluzione del bug #83

Risoluzione del bug #83, causato da un problema di confronto tra percorsi.
This commit is contained in:
Thomas Zilio 2017-12-22 11:44:27 +01:00
parent c432209ea6
commit a2c6a6984d
4 changed files with 20 additions and 3 deletions

View File

@ -127,7 +127,7 @@ $dbo = Database::getConnection();
// Controllo sulla presenza dei permessi di accesso basilari
$continue = $dbo->isInstalled() && !Update::isUpdateAvailable() && (Auth::check() || API::isAPIRequest());
if (!$continue && slashes($_SERVER['SCRIPT_FILENAME']) != slashes(DOCROOT.'/index.php')) {
if (!$continue && getURLPath() != slashes(ROOTDIR.'/index.php')) {
if (Auth::check()) {
Auth::logout();
}

View File

@ -879,3 +879,20 @@ function isMobile()
{
return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER['HTTP_USER_AGENT']);
}
/**
* Restituisce il percorso derivante dal file in esecuzione.
*
* @return string
*/
function getURLPath()
{
$path = $_SERVER['SCRIPT_FILENAME'];
$prefix = $_SERVER['DOCUMENT_ROOT'];
if (substr($path, 0, strlen($prefix)) == $prefix) {
$path = substr($path, strlen($prefix));
}
return slashes($path);
}

View File

@ -339,7 +339,7 @@ class API extends \Util\Singleton
*/
public static function isAPIRequest()
{
return slashes($_SERVER['SCRIPT_FILENAME']) == slashes(DOCROOT.'/api/index.php');
return getURLPath() == slashes(ROOTDIR.'/api/index.php');
}
/**

View File

@ -67,7 +67,7 @@ class Permissions
$result = true;
if (!self::getSkip()) {
if (!Auth::check() && slashes($_SERVER['SCRIPT_FILENAME']) == slashes(DOCROOT.'/index.php')) {
if (!Auth::check() && getURLPath() == slashes(ROOTDIR.'/index.php')) {
redirect(ROOTDIR.'/index.php');
exit();
$result = false;