Toolbox::testWriteAccessToDirectory PHP Méthode

testWriteAccessToDirectory() static public méthode

Check Write Access to a directory
static public testWriteAccessToDirectory ( $dir ) : 2
$dir string: directory to check
Résultat 2
    static function testWriteAccessToDirectory($dir)
    {
        $rand = rand();
        // Check directory creation which can be denied by SElinux
        $sdir = sprintf("%s/test_glpi_%08x", $dir, $rand);
        if (!mkdir($sdir)) {
            return 4;
        }
        if (!rmdir($sdir)) {
            return 3;
        }
        // Check file creation
        $path = sprintf("%s/test_glpi_%08x.txt", $dir, $rand);
        $fp = fopen($path, 'w');
        if (empty($fp)) {
            return 2;
        }
        $fw = fwrite($fp, "This file was created for testing reasons. ");
        fclose($fp);
        $delete = unlink($path);
        if (!$delete) {
            return 1;
        }
        return 0;
    }

Usage Example

Exemple #1
1
   public function testDir() {

      // From Toolbox::commonCheckForUseGLPI
      $this->assertTrue(error_log("PHPUnit\n", 3, GLPI_LOG_DIR."/php-errors.log"),
                        "Fail: no write access to ".GLPI_LOG_DIR);
      $this->assertEquals(0, Toolbox::testWriteAccessToDirectory(GLPI_DUMP_DIR),
                          "Fail: no write access to ".GLPI_DUMP_DIR);
      $this->assertEquals(0, Toolbox::testWriteAccessToDirectory(GLPI_DOC_DIR),
                          "Fail: no write access to ".GLPI_DOC_DIR);
      $this->assertEquals(0, Toolbox::testWriteAccessToDirectory(GLPI_CONFIG_DIR),
                          "Fail: no write access to ".GLPI_CONFIG_DIR);
      $this->assertEquals(0, Toolbox::testWriteAccessToDirectory(GLPI_SESSION_DIR),
                          "Fail: no write access to ".GLPI_SESSION_DIR);
      $this->assertEquals(0, Toolbox::testWriteAccessToDirectory(GLPI_CRON_DIR),
                          "Fail: no write access to ".GLPI_CRON_DIR);
      $this->assertEquals(0, Toolbox::testWriteAccessToDirectory(GLPI_CACHE_DIR),
                          "Fail: no write access to ".GLPI_CACHE_DIR);
   }
All Usage Examples Of Toolbox::testWriteAccessToDirectory