public function Local::chmodJailed

Implements Drupal\Core\FileTransfer\ChmodInterface::chmodJailed().

Overrides ChmodInterface::chmodJailed

File

drupal/core/lib/Drupal/Core/FileTransfer/Local.php, line 101
Definition of Drupal\Core\FileTransfer\Local.

Class

Local
Defines the local connection class for copying files as the httpd user.

Namespace

Drupal\Core\FileTransfer

Code

public function chmodJailed($path, $mode, $recursive) {
  if ($recursive && is_dir($path)) {
    foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::SELF_FIRST) as $filename => $file) {
      if (@(!chmod($filename, $mode))) {
        throw new FileTransferException('Cannot chmod %path.', NULL, array(
          '%path' => $filename,
        ));
      }
    }
  }
  elseif (@(!chmod($path, $mode))) {
    throw new FileTransferException('Cannot chmod %path.', NULL, array(
      '%path' => $path,
    ));
  }
}