aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/install/module/requirements/task/check_filesystem.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/install/module/requirements/task/check_filesystem.php')
-rw-r--r--phpBB/install/module/requirements/task/check_filesystem.php273
1 files changed, 0 insertions, 273 deletions
diff --git a/phpBB/install/module/requirements/task/check_filesystem.php b/phpBB/install/module/requirements/task/check_filesystem.php
deleted file mode 100644
index 5b944b8415..0000000000
--- a/phpBB/install/module/requirements/task/check_filesystem.php
+++ /dev/null
@@ -1,273 +0,0 @@
-<?php
-/**
- *
- * This file is part of the phpBB Forum Software package.
- *
- * @copyright (c) phpBB Limited <https://www.phpbb.com>
- * @license GNU General Public License, version 2 (GPL-2.0)
- *
- * For full copyright and license information, please see
- * the docs/CREDITS.txt file.
- *
- */
-
-namespace phpbb\install\module\requirements\task;
-
-/**
- * Checks filesystem requirements
- */
-class check_filesystem extends \phpbb\install\task_base
-{
- /**
- * @var \phpbb\filesystem\filesystem_interface
- */
- protected $filesystem;
-
- /**
- * @var array
- */
- protected $files_to_check;
-
- /**
- * @var bool
- */
- protected $tests_passed;
-
- /**
- * @var string
- */
- protected $phpbb_root_path;
-
- /**
- * @var \phpbb\install\helper\iohandler\iohandler_interface
- */
- protected $response;
-
- /**
- * Constructor
- *
- * @param \phpbb\filesystem\filesystem_interface $filesystem filesystem handler
- * @parma \phpbb\install\helper\iohandler\iohandler_interface $response response helper
- * @param string $phpbb_root_path relative path to phpBB's root
- * @param string $php_ext extension of php files
- */
- public function __construct(\phpbb\filesystem\filesystem_interface $filesystem,
- \phpbb\install\helper\iohandler\iohandler_interface $response,
- $phpbb_root_path,
- $php_ext)
- {
- parent::__construct(true);
-
- $this->filesystem = $filesystem;
- $this->response = $response;
- $this->phpbb_root_path = $phpbb_root_path;
-
- $this->tests_passed = false;
-
- // Files/Directories to check
- // All file/directory names must be relative to phpBB's root path
- $this->files_to_check = array(
- array(
- 'path' => 'cache/',
- 'failable' => false,
- 'is_file' => false,
- ),
- array(
- 'path' => 'store/',
- 'failable' => false,
- 'is_file' => false,
- ),
- array(
- 'path' => 'files/',
- 'failable' => false,
- 'is_file' => false,
- ),
- array(
- 'path' => 'images/avatars/upload/',
- 'failable' => true,
- 'is_file' => false,
- ),
- array(
- 'path' => "config.$php_ext",
- 'failable' => false,
- 'is_file' => true,
- ),
- );
- }
-
- /**
- * {@inheritdoc}
- */
- public function run()
- {
- $this->tests_passed = true;
-
- // Check files/directories to be writable
- foreach ($this->files_to_check as $file)
- {
- if ($file['is_file'])
- {
- $this->check_file($file['path'], $file['failable']);
- }
- else
- {
- $this->check_dir($file['path'], $file['failable']);
- }
- }
-
- return $this->tests_passed;
- }
-
- /**
- * Sets $this->tests_passed
- *
- * @param bool $is_passed
- */
- protected function set_test_passed($is_passed)
- {
- // If one test failed, tests_passed should be false
- $this->tests_passed = (!$this->tests_passed) ? false : $is_passed;
- }
-
- /**
- * Check if a file is readable and writable
- *
- * @param string $file Filename
- * @param bool $failable Whether failing test should interrupt installation process
- */
- protected function check_file($file, $failable = false)
- {
- $path = $this->phpbb_root_path . $file;
- $exists = $writable = true;
-
- // Try to create file if it does not exists
- if (!file_exists($path))
- {
- $fp = @fopen($path, 'w');
- @fclose($fp);
- try
- {
- $this->filesystem->phpbb_chmod($path,
- \phpbb\filesystem\filesystem_interface::CHMOD_READ | \phpbb\filesystem\filesystem_interface::CHMOD_WRITE
- );
- $exists = true;
- }
- catch (\phpbb\filesystem\exception\filesystem_exception $e)
- {
- // Do nothing
- }
- }
-
- if (file_exists($path))
- {
- if (!$this->filesystem->is_writable($path))
- {
- $writable = false;
- }
- }
- else
- {
- $exists = $writable = false;
- }
-
- $this->set_test_passed(($exists && $writable) || $failable);
-
- if (!($exists && $writable))
- {
- $title = ($exists) ? 'FILE_NOT_WRITABLE' : 'FILE_NOT_EXISTS';
- $description = array($title . '_EXPLAIN', $file);
-
- if ($failable)
- {
- $this->response->add_warning_message($title, $description);
- }
- else
- {
- $this->response->add_error_message($title, $description);
- }
- }
- }
-
- /**
- * Check if a directory is readable and writable
- *
- * @param string $dir Filename
- * @param bool $failable Whether failing test should abort the installation process
- */
- protected function check_dir($dir, $failable = false)
- {
- $path = $this->phpbb_root_path . $dir;
- $exists = $writable = false;
-
- // Try to create the directory if it does not exist
- if (!file_exists($path))
- {
- try
- {
- $this->filesystem->mkdir($path, 0777);
- $this->filesystem->phpbb_chmod($path,
- \phpbb\filesystem\filesystem_interface::CHMOD_READ | \phpbb\filesystem\filesystem_interface::CHMOD_WRITE
- );
- $exists = true;
- }
- catch (\phpbb\filesystem\exception\filesystem_exception $e)
- {
- // Do nothing
- }
- }
-
- // Now really check
- if (file_exists($path) && is_dir($path))
- {
- try
- {
- $exists = true;
- $this->filesystem->phpbb_chmod($path,
- \phpbb\filesystem\filesystem_interface::CHMOD_READ | \phpbb\filesystem\filesystem_interface::CHMOD_WRITE
- );
- }
- catch (\phpbb\filesystem\exception\filesystem_exception $e)
- {
- // Do nothing
- }
- }
-
- if ($this->filesystem->is_writable($path))
- {
- $writable = true;
- }
-
- $this->set_test_passed(($exists && $writable) || $failable);
-
- if (!($exists && $writable))
- {
- $title = ($exists) ? 'DIRECTORY_NOT_WRITABLE' : 'DIRECTORY_NOT_EXISTS';
- $description = array($title . '_EXPLAIN', $dir);
-
- if ($failable)
- {
- $this->response->add_warning_message($title, $description);
- }
- else
- {
- $this->response->add_error_message($title, $description);
- }
- }
- }
-
- /**
- * {@inheritdoc}
- */
- static public function get_step_count()
- {
- return 0;
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_task_lang_name()
- {
- return '';
- }
-}