Browse Source
Merge pull request #6748 from owncloud/fileinfo
Merge pull request #6748 from owncloud/fileinfo
Add a FileInfo class which holds all info of a file ...remotes/origin/ldap_group_count
8 changed files with 367 additions and 34 deletions
-
6apps/files_encryption/lib/proxy.php
-
2apps/files_encryption/lib/stream.php
-
14apps/files_encryption/tests/share.php
-
8apps/files_encryption/tests/util.php
-
189lib/private/files/fileinfo.php
-
42lib/private/files/view.php
-
138lib/public/files/fileinfo.php
-
2lib/public/util.php
@ -0,0 +1,189 @@ |
|||
<?php |
|||
/** |
|||
* Copyright (c) 2014 Robin Appelman <icewind@owncloud.com> |
|||
* This file is licensed under the Affero General Public License version 3 or |
|||
* later. |
|||
* See the COPYING-README file. |
|||
*/ |
|||
|
|||
namespace OC\Files; |
|||
|
|||
class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess, \JsonSerializable { |
|||
/** |
|||
* @var array $data |
|||
*/ |
|||
private $data; |
|||
|
|||
/** |
|||
* @var string $path |
|||
*/ |
|||
private $path; |
|||
|
|||
/** |
|||
* @var \OC\Files\Storage\Storage $storage |
|||
*/ |
|||
private $storage; |
|||
|
|||
/** |
|||
* @var string $internalPath |
|||
*/ |
|||
private $internalPath; |
|||
|
|||
public function __construct($path, $storage, $internalPath, $data) { |
|||
$this->path = $path; |
|||
$this->storage = $storage; |
|||
$this->internalPath = $internalPath; |
|||
$this->data = $data; |
|||
} |
|||
|
|||
public function offsetSet($offset, $value) { |
|||
$this->data[$offset] = $value; |
|||
} |
|||
|
|||
public function offsetExists($offset) { |
|||
return isset($this->data[$offset]); |
|||
} |
|||
|
|||
public function offsetUnset($offset) { |
|||
unset($this->data[$offset]); |
|||
} |
|||
|
|||
public function offsetGet($offset) { |
|||
return $this->data[$offset]; |
|||
} |
|||
|
|||
public function jsonSerialize() { |
|||
return $this->data; |
|||
} |
|||
|
|||
/** |
|||
* @return string |
|||
*/ |
|||
public function getPath() { |
|||
return $this->path; |
|||
} |
|||
|
|||
/** |
|||
* @return \OCP\Files\Storage |
|||
*/ |
|||
public function getStorage() { |
|||
return $this->storage; |
|||
} |
|||
|
|||
/** |
|||
* @return string |
|||
*/ |
|||
public function getInternalPath() { |
|||
return $this->internalPath; |
|||
} |
|||
|
|||
/** |
|||
* @return int |
|||
*/ |
|||
public function getId() { |
|||
return $this->data['fileid']; |
|||
} |
|||
|
|||
/** |
|||
* @return string |
|||
*/ |
|||
public function getMimetype() { |
|||
return $this->data['mimetype']; |
|||
} |
|||
|
|||
/** |
|||
* @return string |
|||
*/ |
|||
public function getMimePart() { |
|||
return $this->data['mimepart']; |
|||
} |
|||
|
|||
/** |
|||
* @return string |
|||
*/ |
|||
public function getName() { |
|||
return $this->data['name']; |
|||
} |
|||
|
|||
/** |
|||
* @return string |
|||
*/ |
|||
public function getEtag() { |
|||
return $this->data['etag']; |
|||
} |
|||
|
|||
/** |
|||
* @return int |
|||
*/ |
|||
public function getSize() { |
|||
return $this->data['size']; |
|||
} |
|||
|
|||
/** |
|||
* @return int |
|||
*/ |
|||
public function getMTime() { |
|||
return $this->data['mtime']; |
|||
} |
|||
|
|||
/** |
|||
* @return bool |
|||
*/ |
|||
public function isEncrypted() { |
|||
return $this->data['encrypted']; |
|||
} |
|||
|
|||
/** |
|||
* @return int |
|||
*/ |
|||
public function getPermissions() { |
|||
return $this->data['permissions']; |
|||
} |
|||
|
|||
/** |
|||
* @return \OCP\Files\FileInfo::TYPE_FILE | \OCP\Files\FileInfo::TYPE_FOLDER |
|||
*/ |
|||
public function getType() { |
|||
return $this->data['type']; |
|||
} |
|||
|
|||
public function getData(){ |
|||
return $this->data; |
|||
} |
|||
|
|||
/** |
|||
* @param int $permissions |
|||
* @return bool |
|||
*/ |
|||
protected function checkPermissions($permissions) { |
|||
return ($this->getPermissions() & $permissions) === $permissions; |
|||
} |
|||
|
|||
/** |
|||
* @return bool |
|||
*/ |
|||
public function isReadable() { |
|||
return $this->checkPermissions(\OCP\PERMISSION_READ); |
|||
} |
|||
|
|||
/** |
|||
* @return bool |
|||
*/ |
|||
public function isUpdateable() { |
|||
return $this->checkPermissions(\OCP\PERMISSION_UPDATE); |
|||
} |
|||
|
|||
/** |
|||
* @return bool |
|||
*/ |
|||
public function isDeletable() { |
|||
return $this->checkPermissions(\OCP\PERMISSION_DELETE); |
|||
} |
|||
|
|||
/** |
|||
* @return bool |
|||
*/ |
|||
public function isShareable() { |
|||
return $this->checkPermissions(\OCP\PERMISSION_SHARE); |
|||
} |
|||
} |
|||
@ -0,0 +1,138 @@ |
|||
<?php |
|||
/** |
|||
* Copyright (c) 2014 Robin Appelman <icewind@owncloud.com> |
|||
* This file is licensed under the Affero General Public License version 3 or |
|||
* later. |
|||
* See the COPYING-README file. |
|||
*/ |
|||
namespace OCP\Files; |
|||
|
|||
interface FileInfo { |
|||
const TYPE_FILE = 'file'; |
|||
const TYPE_FOLDER = 'folder'; |
|||
|
|||
/** |
|||
* Get the Etag of the file or folder |
|||
* |
|||
* @return string |
|||
*/ |
|||
public function getEtag(); |
|||
|
|||
/** |
|||
* Get the size in bytes for the file or folder |
|||
* |
|||
* @return int |
|||
*/ |
|||
public function getSize(); |
|||
|
|||
/** |
|||
* Get the last modified date as timestamp for the file or folder |
|||
* |
|||
* @return int |
|||
*/ |
|||
public function getMtime(); |
|||
|
|||
/** |
|||
* Get the name of the file or folder |
|||
* |
|||
* @return string |
|||
*/ |
|||
public function getName(); |
|||
|
|||
/** |
|||
* Get the path relative to the storage |
|||
* |
|||
* @return string |
|||
*/ |
|||
public function getInternalPath(); |
|||
|
|||
/** |
|||
* Get the absolute path |
|||
* |
|||
* @return string |
|||
*/ |
|||
public function getPath(); |
|||
|
|||
/** |
|||
* Get the full mimetype of the file or folder i.e. 'image/png' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public function getMimetype(); |
|||
|
|||
/** |
|||
* Get the first part of the mimetype of the file or folder i.e. 'image' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public function getMimePart(); |
|||
|
|||
/** |
|||
* Get the storage the file or folder is storage on |
|||
* |
|||
* @return \OCP\Files\Storage |
|||
*/ |
|||
public function getStorage(); |
|||
|
|||
/** |
|||
* Get the file id of the file or folder |
|||
* |
|||
* @return int |
|||
*/ |
|||
public function getId(); |
|||
|
|||
/** |
|||
* Check whether the file is encrypted |
|||
* |
|||
* @return bool |
|||
*/ |
|||
public function isEncrypted(); |
|||
|
|||
/** |
|||
* Get the permissions of the file or folder as bitmasked combination of the following constants |
|||
* \OCP\PERMISSION_CREATE |
|||
* \OCP\PERMISSION_READ |
|||
* \OCP\PERMISSION_UPDATE |
|||
* \OCP\PERMISSION_DELETE |
|||
* \OCP\PERMISSION_SHARE |
|||
* \OCP\PERMISSION_ALL |
|||
* |
|||
* @return int |
|||
*/ |
|||
public function getPermissions(); |
|||
|
|||
/** |
|||
* Check whether this is a file or a folder |
|||
* |
|||
* @return \OCP\Files\FileInfo::TYPE_FILE | \OCP\Files\FileInfo::TYPE_FOLDER |
|||
*/ |
|||
public function getType(); |
|||
|
|||
/** |
|||
* Check if the file or folder is readable |
|||
* |
|||
* @return bool |
|||
*/ |
|||
public function isReadable(); |
|||
|
|||
/** |
|||
* Check if a file is writable |
|||
* |
|||
* @return bool |
|||
*/ |
|||
public function isUpdateable(); |
|||
|
|||
/** |
|||
* Check if a file or folder can be deleted |
|||
* |
|||
* @return bool |
|||
*/ |
|||
public function isDeletable(); |
|||
|
|||
/** |
|||
* Check if a file or folder can be shared |
|||
* |
|||
* @return bool |
|||
*/ |
|||
public function isShareable(); |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue