本文整理汇总了PHP中Filesystem::setPermissions方法的典型用法代码示例。如果您正苦于以下问题:PHP Filesystem::setPermissions方法的具体用法?PHP Filesystem::setPermissions怎么用?PHP Filesystem::setPermissions使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Filesystem
的用法示例。
在下文中一共展示了Filesystem::setPermissions方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: readKey
/**
* Read SSH key
*
* @return string - .ssh/authorized_keys file content
*/
private function readKey()
{
// Webdav path
$base = DS . 'webdav' . DS . 'home';
$user = DS . $this->member->get('username');
$ssh = DS . '.ssh';
$auth = DS . 'authorized_keys';
// Real home directory
$homeDir = $this->member->get('homeDirectory');
$key = '';
// First, make sure webdav is there and that the necessary folders are there
if (!Filesystem::exists($base)) {
// Not sure what to do here
return $key = false;
}
if (!Filesystem::exists($homeDir)) {
// Try to create their home directory
require_once PATH_CORE . DS . 'components' . DS . 'com_tools' . DS . 'helpers' . DS . 'utils.php';
if (!\Components\Tools\Helpers\Utils::createHomeDirectory($this->member->get('username'))) {
return $key = false;
}
}
if (!Filesystem::exists($base . $user . $ssh)) {
// User doesn't have an ssh directory, so try to create one (with appropriate permissions)
if (!Filesystem::makeDirectory($base . $user . $ssh, 0700, true, true)) {
return $key = false;
}
}
if (!Filesystem::exists($base . $user . $ssh . $auth)) {
// Try to create their authorized keys file
$content = '';
// J25 passes param by reference so couldn't use constant below
Filesystem::write($base . $user . $ssh . $auth, $content);
if (!Filesystem::exists($base . $user . $ssh . $auth)) {
return $key = false;
} else {
// Set correct permissions on authorized_keys file
Filesystem::setPermissions($base . $user . $ssh . $auth, '0600');
return $key;
}
}
// Read the file contents
$key = Filesystem::read($base . $user . $ssh . $auth);
return $key;
}
示例2: save
/**
* Method to store the source file contents.
*
* @param array The souce data to save.
*
* @return boolean True on success, false otherwise and internal error set.
* @since 1.6
*/
public function save($data)
{
// Get the template.
$template = $this->getTemplate();
if (empty($template)) {
return false;
}
$fileName = $this->getState('filename');
$client = JApplicationHelper::getClientInfo($template->client_id);
$filePath = \Hubzero\Filesystem\Util::normalizePath($client->path . '/templates/' . $template->element . '/' . $fileName);
// Set FTP credentials, if given.
JClientHelper::setCredentialsFromRequest('ftp');
$ftp = JClientHelper::getCredentials('ftp');
// Try to make the template file writeable.
if (!$ftp['enabled'] && JPath::isOwner($filePath) && !Filesystem::setPermissions($filePath, '0644')) {
$this->setError(Lang::txt('COM_TEMPLATES_ERROR_SOURCE_FILE_NOT_WRITABLE'));
return false;
}
// Trigger the onExtensionBeforeSave event.
$result = Event::trigger('extension.onExtensionBeforeSave', array('com_templates.source', &$data, false));
if (in_array(false, $result, true)) {
$this->setError($table->getError());
return false;
}
// [!] HUBZERO - Force line endings to be consistent with the server environment
$data['source'] = preg_replace('~\\R~u', PHP_EOL, $data['source']);
$return = Filesystem::write($filePath, $data['source']);
// Try to make the template file unwriteable.
if (!$ftp['enabled'] && JPath::isOwner($filePath) && !Filesystem::setPermissions($filePath, '0444')) {
$this->setError(Lang::txt('COM_TEMPLATES_ERROR_SOURCE_FILE_NOT_UNWRITABLE'));
return false;
} elseif (!$return) {
$this->setError(Lang::txt('COM_TEMPLATES_ERROR_FAILED_TO_SAVE_FILENAME', $fileName));
return false;
}
// Trigger the onExtensionAfterSave event.
Event::trigger('extension.onExtensionAfterSave', array('com_templates.source', &$table, false));
return true;
}
示例3: activateTask
/**
* Activate provisioned project
*
* @return void
*/
public function activateTask()
{
// Cannot proceed without project id/alias
if (!$this->model->exists()) {
throw new Exception(Lang::txt('COM_PROJECTS_PROJECT_NOT_FOUND'), 404);
return;
}
// Must be project creator
if (!$this->model->access('owner')) {
throw new Exception(Lang::txt('ALERTNOTAUTH'), 403);
return;
}
// Must be a provisioned project to be activated
if (!$this->model->isProvisioned()) {
// Redirect to project page
App::redirect(Route::url($this->model->link()));
return;
}
// Redirect to setup if activation not complete
if ($this->model->inSetup()) {
App::redirect(Route::url($this->model->link('setup')));
return;
}
// Get publication of a provisioned project
$pub = $this->model->getPublication();
if (empty($pub)) {
throw new Exception(Lang::txt('COM_PROJECTS_PROJECT_NOT_FOUND'), 404);
return;
}
// Incoming
$name = trim(Request::getVar('new-alias', '', 'post'));
$title = trim(Request::getVar('title', '', 'post'));
$confirm = trim(Request::getInt('confirm', 0, 'post'));
$name = preg_replace('/ /', '', $name);
$name = strtolower($name);
// Check incoming data
$verified = $this->model->check($name, $this->model->get('id'));
if ($confirm && !$verified) {
$error = $this->model->getError() ? $this->model->getError() : Lang::txt('COM_PROJECTS_ERROR_NAME_INVALID_OR_EMPTY');
$this->setError($error);
} elseif ($confirm && ($title == '' || strlen($title) < 3)) {
$this->setError(Lang::txt('COM_PROJECTS_ERROR_TITLE_SHORT_OR_EMPTY'));
}
// Set the pathway
$this->_buildPathway();
// Set the page title
$this->_buildTitle();
// Display page
if (!$confirm || $this->getError()) {
$this->view->setLayout('provisioned');
$this->view->model = $this->model;
$this->view->team = $this->model->_tblOwner->getOwnerNames($this->model->get('alias'));
// Output HTML
$this->view->pub = isset($pub) ? $pub : '';
$this->view->suggested = $name;
$this->view->verified = $verified;
$this->view->suggested = $verified ? $this->view->suggested : '';
$this->view->title = $this->title;
$this->view->active = $this->active;
$this->view->task = $this->_task;
$this->view->authorized = 1;
$this->view->option = $this->_option;
$this->view->msg = $this->_getNotifications('success');
if ($this->getError()) {
$this->view->setError($this->getError());
}
$this->view->display();
return;
}
// Save new alias & title
if (!$this->getError()) {
$this->model->set('title', \Hubzero\Utility\String::truncate($title, 250));
$this->model->set('alias', $name);
$state = $this->_setupComplete == 3 ? 0 : 1;
$this->model->set('state', $state);
$this->model->set('setup_stage', 2);
$this->model->set('provisioned', 0);
$this->model->set('modified', Date::toSql());
$this->model->set('modified_by', User::get('id'));
// Save changes
if (!$this->model->store()) {
$this->setError($this->model->getError());
}
}
// Get project parent directory
$path = Helpers\Html::getProjectRepoPath($this->model->get('alias'));
$newpath = Helpers\Html::getProjectRepoPath($name, 'files', true);
// Rename project parent directory
if ($path && is_dir($path)) {
if (!Filesystem::copyDirectory($path, $newpath)) {
$this->setError(Lang::txt('COM_PROJECTS_FAILED_TO_COPY_FILES'));
} else {
// Correct permissions to 0755
Filesystem::setPermissions($newpath);
// Delete original repo
//.........这里部分代码省略.........