mirror of
https://github.com/nextcloud/server.git
synced 2026-06-08 16:26:59 -04:00
return relative path
This commit is contained in:
parent
3f093974f9
commit
eea5c2ee0a
1 changed files with 15 additions and 27 deletions
|
|
@ -65,10 +65,13 @@ class File extends \OCP\Search\Result {
|
|||
|
||||
/**
|
||||
* Create a new file search result
|
||||
* @param array $data file data given by provider
|
||||
* @param FileInfo $data file data given by provider
|
||||
*/
|
||||
public function __construct(FileInfo $data) {
|
||||
$info = pathinfo($data->getPath());
|
||||
|
||||
$path = $this->getRelativePath($data->getPath());
|
||||
|
||||
$info = pathinfo($path);
|
||||
$this->id = $data->getId();
|
||||
$this->name = $info['basename'];
|
||||
$this->link = \OCP\Util::linkTo(
|
||||
|
|
@ -76,38 +79,23 @@ class File extends \OCP\Search\Result {
|
|||
'index.php',
|
||||
array('dir' => $info['dirname'], 'file' => $info['basename'])
|
||||
);
|
||||
$this->permissions = self::get_permissions($data->getPath());
|
||||
$this->path = (strpos($data->getPath(), 'files') === 0) ? substr($data->getPath(), 5) : $data->getPath();
|
||||
$this->permissions = $data->getPermissions();
|
||||
$this->path = $path;
|
||||
$this->size = $data->getSize();
|
||||
$this->modified = $data->getMtime();
|
||||
$this->mime_type = $data->getMimetype();
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine permissions for a given file path
|
||||
* converts a path relative to the users files folder
|
||||
* eg /user/files/foo.txt -> /foo.txt
|
||||
* @param string $path
|
||||
* @return int
|
||||
* @return string relative path
|
||||
*/
|
||||
function get_permissions($path) {
|
||||
// add read permissions
|
||||
$permissions = \OCP\PERMISSION_READ;
|
||||
// get directory
|
||||
$fileinfo = pathinfo($path);
|
||||
$dir = $fileinfo['dirname'] . '/';
|
||||
// add update permissions
|
||||
if (Filesystem::isUpdatable($dir)) {
|
||||
$permissions |= \OCP\PERMISSION_UPDATE;
|
||||
}
|
||||
// add delete permissions
|
||||
if (Filesystem::isDeletable($dir)) {
|
||||
$permissions |= \OCP\PERMISSION_DELETE;
|
||||
}
|
||||
// add share permissions
|
||||
if (Filesystem::isSharable($dir)) {
|
||||
$permissions |= \OCP\PERMISSION_SHARE;
|
||||
}
|
||||
// return
|
||||
return $permissions;
|
||||
function getRelativePath ($path) {
|
||||
$root = \OC::$server->getUserFolder();
|
||||
return $root->getRelativePath($path);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue