move isDirectoryUsable to System
This commit is contained in:
parent
6a9d73f7d9
commit
b79bd63231
4 changed files with 47 additions and 49 deletions
15
boot.php
15
boot.php
|
@ -22,6 +22,7 @@ use Friendica\BaseObject;
|
|||
use Friendica\Core\Config;
|
||||
use Friendica\Core\PConfig;
|
||||
use Friendica\Core\Protocol;
|
||||
use Friendica\Core\System;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\Model\Contact;
|
||||
use Friendica\Util\BasePath;
|
||||
|
@ -634,7 +635,7 @@ function get_temppath()
|
|||
|
||||
$temppath = Config::get("system", "temppath");
|
||||
|
||||
if (($temppath != "") && BasePath::isDirectoryUsable($temppath)) {
|
||||
if (($temppath != "") && System::isDirectoryUsable($temppath)) {
|
||||
// We have a temp path and it is usable
|
||||
return BasePath::getRealPath($temppath);
|
||||
}
|
||||
|
@ -643,7 +644,7 @@ function get_temppath()
|
|||
$temppath = sys_get_temp_dir();
|
||||
|
||||
// Check if it is usable
|
||||
if (($temppath != "") && BasePath::isDirectoryUsable($temppath)) {
|
||||
if (($temppath != "") && System::isDirectoryUsable($temppath)) {
|
||||
// Always store the real path, not the path through symlinks
|
||||
$temppath = BasePath::getRealPath($temppath);
|
||||
|
||||
|
@ -654,7 +655,7 @@ function get_temppath()
|
|||
mkdir($new_temppath);
|
||||
}
|
||||
|
||||
if (BasePath::isDirectoryUsable($new_temppath)) {
|
||||
if (System::isDirectoryUsable($new_temppath)) {
|
||||
// The new path is usable, we are happy
|
||||
Config::set("system", "temppath", $new_temppath);
|
||||
return $new_temppath;
|
||||
|
@ -736,7 +737,7 @@ function get_itemcachepath()
|
|||
}
|
||||
|
||||
$itemcache = Config::get('system', 'itemcache');
|
||||
if (($itemcache != "") && BasePath::isDirectoryUsable($itemcache)) {
|
||||
if (($itemcache != "") && System::isDirectoryUsable($itemcache)) {
|
||||
return BasePath::getRealPath($itemcache);
|
||||
}
|
||||
|
||||
|
@ -748,7 +749,7 @@ function get_itemcachepath()
|
|||
mkdir($itemcache);
|
||||
}
|
||||
|
||||
if (BasePath::isDirectoryUsable($itemcache)) {
|
||||
if (System::isDirectoryUsable($itemcache)) {
|
||||
Config::set("system", "itemcache", $itemcache);
|
||||
return $itemcache;
|
||||
}
|
||||
|
@ -764,7 +765,7 @@ function get_itemcachepath()
|
|||
function get_spoolpath()
|
||||
{
|
||||
$spoolpath = Config::get('system', 'spoolpath');
|
||||
if (($spoolpath != "") && BasePath::isDirectoryUsable($spoolpath)) {
|
||||
if (($spoolpath != "") && System::isDirectoryUsable($spoolpath)) {
|
||||
// We have a spool path and it is usable
|
||||
return $spoolpath;
|
||||
}
|
||||
|
@ -779,7 +780,7 @@ function get_spoolpath()
|
|||
mkdir($spoolpath);
|
||||
}
|
||||
|
||||
if (BasePath::isDirectoryUsable($spoolpath)) {
|
||||
if (System::isDirectoryUsable($spoolpath)) {
|
||||
// The new path is usable, we are happy
|
||||
Config::set("system", "spoolpath", $spoolpath);
|
||||
return $spoolpath;
|
||||
|
|
|
@ -13,7 +13,6 @@ use Friendica\Core\Config\ConfigCacheLoader;
|
|||
use Friendica\Database\DBA;
|
||||
use Friendica\Factory\ConfigFactory;
|
||||
use Friendica\Network\HTTPException\InternalServerErrorException;
|
||||
use Friendica\Util\BasePath;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
/**
|
||||
|
@ -194,7 +193,7 @@ class App
|
|||
$this->logger = $logger;
|
||||
$this->basePath = $this->config->get('system', 'basepath');
|
||||
|
||||
if (!BasePath::isDirectoryUsable($this->basePath, false)) {
|
||||
if (!Core\System::isDirectoryUsable($this->basePath, false)) {
|
||||
throw new Exception('Basepath ' . $this->basePath . ' isn\'t usable.');
|
||||
}
|
||||
$this->basePath = rtrim($this->basePath, DIRECTORY_SEPARATOR);
|
||||
|
|
|
@ -303,6 +303,44 @@ class System extends BaseObject
|
|||
return $processUser['name'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Checks if a given directory is usable for the system
|
||||
*
|
||||
* @param $directory
|
||||
* @param bool $check_writable
|
||||
*
|
||||
* @return boolean the directory is usable
|
||||
*/
|
||||
public static function isDirectoryUsable($directory, $check_writable = true)
|
||||
{
|
||||
if ($directory == '') {
|
||||
Logger::log('Directory is empty. This shouldn\'t happen.', Logger::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!file_exists($directory)) {
|
||||
Logger::log('Path "' . $directory . '" does not exist for user ' . static::getUser(), Logger::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (is_file($directory)) {
|
||||
Logger::log('Path "' . $directory . '" is a file for user ' . static::getUser(), Logger::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!is_dir($directory)) {
|
||||
Logger::log('Path "' . $directory . '" is not a directory for user ' . static::getUser(), Logger::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($check_writable && !is_writable($directory)) {
|
||||
Logger::log('Path "' . $directory . '" is not writable for user ' . static::getUser(), Logger::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// @todo Move the following functions from boot.php
|
||||
/*
|
||||
function killme()
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
|
||||
namespace Friendica\Util;
|
||||
|
||||
use Friendica\Core;
|
||||
|
||||
class BasePath
|
||||
{
|
||||
/**
|
||||
|
@ -52,42 +50,4 @@ class BasePath
|
|||
return $path;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Checks if a given directory is usable for the system
|
||||
*
|
||||
* @param $directory
|
||||
* @param bool $check_writable
|
||||
*
|
||||
* @return boolean the directory is usable
|
||||
*/
|
||||
public static function isDirectoryUsable($directory, $check_writable = true)
|
||||
{
|
||||
if ($directory == '') {
|
||||
Core\Logger::log('Directory is empty. This shouldn\'t happen.', Core\Logger::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!file_exists($directory)) {
|
||||
Core\Logger::log('Path "' . $directory . '" does not exist for user ' . Core\System::getUser(), Core\Logger::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (is_file($directory)) {
|
||||
Core\Logger::log('Path "' . $directory . '" is a file for user ' . Core\System::getUser(), Core\Logger::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!is_dir($directory)) {
|
||||
Core\Logger::log('Path "' . $directory . '" is not a directory for user ' . Core\System::getUser(), Core\Logger::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($check_writable && !is_writable($directory)) {
|
||||
Core\Logger::log('Path "' . $directory . '" is not writable for user ' . Core\System::getUser(), Core\Logger::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue