PageRenderTime 44ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/core/model/modx/processors/browser/directory/chmod.php

http://modx-revo-ja.googlecode.com/
PHP | 36 lines | 20 code | 5 blank | 11 comment | 7 complexity | a7955f0534346aaf76882b084c6fe701 MD5 | raw file
Possible License(s): AGPL-1.0, LGPL-2.1, GPL-2.0, GPL-3.0
  1. <?php
  2. /**
  3. * Chmod a directory
  4. *
  5. * @param string $mode The mode to chmod to
  6. * @param string $dir The absolute path of the dir
  7. * @param boolean $prependPath (optional) If true, will prepend rb_base_dir to
  8. * the final path
  9. * @package modx
  10. * @subpackage processors.browser.directory
  11. */
  12. if (!$modx->hasPermission('directory_chmod')) return $modx->error->failure($modx->lexicon('permission_denied'));
  13. $modx->lexicon->load('file');
  14. if (empty($scriptProperties['mode'])) return $modx->error->failure($modx->lexicon('file_err_chmod_ns'));
  15. if (empty($scriptProperties['dir'])) return $modx->error->failure($modx->lexicon('file_folder_err_ns'));
  16. /* get base paths and sanitize incoming paths */
  17. $modx->getService('fileHandler','modFileHandler');
  18. $root = $modx->fileHandler->getBasePath();
  19. $directory = $modx->fileHandler->sanitizePath($scriptProperties['dir']);
  20. $directory = $modx->fileHandler->postfixSlash($directory);
  21. $directory = $root.$directory;
  22. if (!is_dir($directory)) return $modx->error->failure($modx->lexicon('file_folder_err_invalid'));
  23. if (!is_readable($directory) || !is_writable($directory)) {
  24. return $modx->error->failure($modx->lexicon('file_folder_err_perms'));
  25. }
  26. $octalPerms = $scriptProperties['mode'];
  27. if (!$modx->fileHandler->chmod($directory,$octalPerms)) {
  28. return $modx->error->failure($modx->lexicon('file_err_chmod'));
  29. }
  30. $modx->logManagerAction('directory_chmod','',$directory);
  31. return $modx->error->success();