Skip to content
Snippets Groups Projects
Commit 92e788ee authored by Rasmus Fuhse's avatar Rasmus Fuhse
Browse files

bugfixing 4.6 issues

parent 7e6bc04e
No related branches found
No related tags found
No related merge requests found
......@@ -84,73 +84,32 @@ class OwnCloudPlugin extends StudIPPlugin implements FilesystemPlugin {
}
$folder_path = explode("/", $file_id);
$filename = rawurldecode(array_pop($folder_path));
$folder_id = implode("/", $folder_path);
$folder_path = array_map("rawurldecode", $folder_path);
$filename = array_pop($folder_path);
$folder_id = implode("/", array_map("rawurlencode", $folder_path));
$name = array_pop($folder_path);
$parent_folder_id = implode("/", $folder_path);
$parent_folder_id = implode("/", array_map("rawurlencode", $folder_path));
$folder = new OwncloudFolder(array(
$data = [
'id' => $folder_id,
'name' => $name,
'parent_id' => $parent_folder_id,
'range_type' => $this->getPluginId(),
'range_id' => $this->getPluginName()
), $this->getPluginId());
foreach ($folder->getFiles() as $file_info) {
if (($file_info->getFilename() === $file_id)
|| ($file_info->getFilename() === rawurldecode($file_id))) {
$info = $file_info;
break;
}
}
return $info;
$file = new FileRef();
$file->id = $file_id;
$file->foldertype = $folder;
$file->name = $filename;
$file->size = $info->size;
$file->mime_type = $info->mime_type;
$file->download_url = $info->download_url;
$file->mkdate = $info->chdate;
$file->chdate = $info->chdate;
$file->content_terms_of_use_id = 'UNDEF_LICENSE';
if ($with_blob) {
$url = Config::get()->OWNCLOUD_ENDPOINT ?: UserConfig::get($GLOBALS['user']->id)->OWNCLOUD_ENDPOINT_USER;
if ($url[strlen($url) - 1] !== "/") {
$url .= "/";
}
$webdav = $url . "remote.php/webdav/";
];
$header = array();
$header[] = OwnCloudFolder::getAuthHeader();
$folder = new OwncloudFolder(
$data,
$this->getPluginId()
);
$r = curl_init();
curl_setopt($r, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($r, CURLOPT_URL, $webdav.$file_id);
curl_setopt($r, CURLOPT_HTTPHEADER, ($header));
curl_setopt($r, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($r, CURLOPT_SSL_VERIFYPEER, (bool) Config::get()->OWNCLOUD_SSL_VERIFYPEER);
curl_setopt($r, CURLOPT_SSL_VERIFYHOST, (bool) Config::get()->OWNCLOUD_SSL_VERIFYPEER);
if ($GLOBALS['OWNCLOUD_VERBOSE']) {
curl_setopt($r, CURLOPT_VERBOSE, true);
foreach ($folder->getFiles() as $file) {
if ($file->getFilename() === $filename) {
return $file;
}
$content = curl_exec($r);
$info = curl_getinfo($r);
curl_close($r);
$path = $GLOBALS['TMP_PATH']."/".md5(uniqid());
file_put_contents(
$path,
$content
);
$file->path_to_blob = $path;
}
return $file;
return null;
}
public function filesystemConfigurationURL()
......
......@@ -328,9 +328,11 @@ class OwncloudFile implements FileType
$header = array();
$header[] = OwnCloudFolder::getAuthHeader();
$url = $webdav.$this->getFolderType()->getId()."/".$this->getFilename();
$r = curl_init();
curl_setopt($r, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($r, CURLOPT_URL, $webdav.$file_id);
curl_setopt($r, CURLOPT_URL, $url);
curl_setopt($r, CURLOPT_HTTPHEADER, ($header));
curl_setopt($r, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($r, CURLOPT_SSL_VERIFYPEER, (bool) Config::get()->OWNCLOUD_SSL_VERIFYPEER);
......@@ -340,6 +342,7 @@ class OwncloudFile implements FileType
}
$content = curl_exec($r);
$info = curl_getinfo($r);
curl_close($r);
$path = $GLOBALS['TMP_PATH']."/owncloudplugin_".md5(uniqid());
......@@ -352,7 +355,7 @@ class OwncloudFile implements FileType
'type' => $this->getMimeType(),
'size' => $this->getSize(),
'tmp_name' => $path
]);
], "owncloud");
}
/**
......@@ -392,6 +395,26 @@ class OwncloudFile implements FileType
*/
public function getInfoTemplate(bool $include_downloadable_infos = false)
{
return null;
if (!$include_downloadable_infos) {
return null;
}
$mime_type = $this->getMimeType();
$relevant_mime_type = false;
if (FileManager::fileIsImage($this) || FileManager::fileIsAudio($this)
|| FileManager::fileIsVideo($this) ||
in_array($mime_type, ['application/pdf', 'text/plain'])) {
$relevant_mime_type = true;
}
if (!$relevant_mime_type) {
return null;
}
$factory = new Flexi_TemplateFactory(
$GLOBALS['STUDIP_BASE_PATH'] . '/templates/filesystem/file_types/'
);
$template = $factory->open('standard_file_info');
$template->set_attribute('mime_type', $mime_type);
$template->set_attribute('file', $this);
return $template;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment