/** * Set permissions on writebale directories for known frameworks. * * @return boolean True if permissions were skipped OR set succesfully * @throws Cake\Core\Exception\Exception */ public function setPermissions() { Log::debug("Updating directory permissions"); # Skip if no framework was detected if (!isset($this->options['framework_short'])) { Log::debug("* Skipping: unsupported/empty framework"); return true; } # Skip if the framework does not use writable directories if (!isset($this->Info->frameworkMeta[$this->options['framework_short']]['writable_dirs'])) { Log::debug("* Skipping: framework does not use writeable directories"); return true; } # Set permissions Log::debug("* Applying " . $this->options['framework_short'] . " folder permissions"); foreach ($this->Info->frameworkMeta[$this->options['framework_short']]['writable_dirs'] as $directory) { if (!CakeboxUtility::setFolderPermissions($this->options['path'] . DS . $directory)) { throw new Exception("Error setting permissions."); } } return true; }