Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/richdocuments.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorVicDeo <dubiniuk@owncloud.com>2014-11-11 20:38:03 +0300
committerVicDeo <dubiniuk@owncloud.com>2014-11-11 20:38:03 +0300
commitb2bd03815294fcb0bfac1a557ed8006543ef1b40 (patch)
treef299052978f07066c432c74e851714d242ae96d0 /lib
parent1b239727321c48ca30914394bfedc110e0eea7b1 (diff)
parent932684b7829eec1276202231e6ebe4bc04458468 (diff)
Merge pull request #398 from owncloud/further-file-simplify
Sharing info is needed for public links only.
Diffstat (limited to 'lib')
-rw-r--r--lib/db/session.php3
-rw-r--r--lib/downloadresponse.php1
-rw-r--r--lib/file.php46
-rw-r--r--lib/genesis.php6
-rw-r--r--lib/view.php27
5 files changed, 18 insertions, 65 deletions
diff --git a/lib/db/session.php b/lib/db/session.php
index e28c5e9b..f0eac207 100644
--- a/lib/db/session.php
+++ b/lib/db/session.php
@@ -103,7 +103,8 @@ class Session extends \OCA\Documents\Db {
}
$sessionData['title'] = basename($path);
- $sessionData['permissions'] = $ownerView->getFilePermissions($path);
+ $fileInfo = $ownerView->getFileInfo($path);
+ $sessionData['permissions'] = $fileInfo->getPermissions();
return $sessionData;
}
diff --git a/lib/downloadresponse.php b/lib/downloadresponse.php
index 8c21d674..a37ee32b 100644
--- a/lib/downloadresponse.php
+++ b/lib/downloadresponse.php
@@ -13,6 +13,7 @@ namespace OCA\Documents;
use \OCP\AppFramework\Http;
use \OCP\IRequest;
+use \OC\Files\View;
class DownloadResponse extends \OCP\AppFramework\Http\Response {
private $request;
diff --git a/lib/file.php b/lib/file.php
index 18699bd9..c3f4b42f 100644
--- a/lib/file.php
+++ b/lib/file.php
@@ -22,11 +22,13 @@
namespace OCA\Documents;
+use \OC\Files\View;
+
class File {
protected $fileId;
protected $owner;
protected $path;
- protected $sharing = array();
+ protected $sharing;
protected $token ='';
protected $passwordProtected = false;
@@ -37,12 +39,7 @@ class File {
}
$this->fileId = $fileId;
-
- //if you know how to get sharing info by fileId via API,
- //please send me a link to video tutorial :/
- if (!is_null($shareOps)){
- $this->sharing = $shareOps;
- }
+ $this->sharing = $shareOps;
}
@@ -55,7 +52,7 @@ class File {
throw new \Exception('This file was probably unshared');
}
- $file = new File($rootLinkItem['file_source'], array($rootLinkItem));
+ $file = new File($rootLinkItem['file_source'], $rootLinkItem);
$file->setToken($token);
if (isset($linkItem['share_with']) && !empty($linkItem['share_with'])){
@@ -98,7 +95,7 @@ class File {
* @return boolean
*/
public function checkPassword($password){
- $shareId = $this->sharing[0]['id'];
+ $shareId = $this->sharing['id'];
if (!$this->isPasswordProtected()
|| (\OC::$server->getSession()->exists('public_link_authenticated')
&& \OC::$server->getSession()->get('public_link_authenticated') === $shareId
@@ -130,26 +127,6 @@ class File {
$this->passwordProtected = $value;
}
- public function getPermissions(){
- if (count($this->sharing)){
- if ($this->isPublicShare()){
- $permissions = \OCP\PERMISSION_READ | \OCP\PERMISSION_UPDATE;
- } else {
- $permissions = $this->sharing[0]['permissions'];
- }
- } else {
- list($owner, $path) = $this->getOwnerViewAndPath();
- $permissions = 0;
- if (\OC\Files\Filesystem::isReadable($path)){
- $permissions |= \OCP\PERMISSION_READ;
- }
- if (\OC\Files\Filesystem::isUpdatable($path)){
- $permissions |= \OCP\PERMISSION_UPDATE;
- }
-
- }
- return $permissions;
- }
/**
*
@@ -158,12 +135,11 @@ class File {
*/
public function getOwnerViewAndPath($useDefaultRoot = false){
if ($this->isPublicShare()){
- $rootLinkItem = \OCP\Share::resolveReShare($this->sharing[0]);
- if (isset($rootLinkItem['uid_owner'])){
- $owner = $rootLinkItem['uid_owner'];
- \OCP\JSON::checkUserExists($rootLinkItem['uid_owner']);
+ if (isset($this->sharing['uid_owner'])){
+ $owner = $this->sharing['uid_owner'];
+ \OCP\JSON::checkUserExists($this->sharing['uid_owner']);
\OC_Util::tearDownFS();
- \OC_Util::setupFS($rootLinkItem['uid_owner']);
+ \OC_Util::setupFS($this->sharing['uid_owner']);
} else {
throw new \Exception($this->fileId . ' is a broken share');
}
@@ -201,6 +177,6 @@ class File {
protected function getPassword(){
- return $this->sharing[0]['share_with'];
+ return $this->sharing['share_with'];
}
}
diff --git a/lib/genesis.php b/lib/genesis.php
index 65a92942..f030f374 100644
--- a/lib/genesis.php
+++ b/lib/genesis.php
@@ -22,6 +22,8 @@
namespace OCA\Documents;
+use \OC\Files\View;
+
class Genesis {
const DOCUMENTS_DIRNAME='/documents';
@@ -37,7 +39,7 @@ class Genesis {
* Create new genesis document
* @param File $file
* */
- public function __construct(\OCA\Documents\File $file){
+ public function __construct(File $file){
list($view, $path) = $file->getOwnerViewAndPath();
$owner = $file->getOwner();
@@ -96,7 +98,7 @@ class Genesis {
/**
* Check if genesis is valid
- * @param OCA\Documents\View $view
+ * @param \OC\Files\View $view
* @param string $path relative to the view
* @throws \Exception
*/
diff --git a/lib/view.php b/lib/view.php
deleted file mode 100644
index 3250b19e..00000000
--- a/lib/view.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-/**
- * ownCloud - Documents App
- *
- * @author Victor Dubiniuk
- * @copyright 2013 Victor Dubiniuk victor.dubiniuk@gmail.com
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- */
-
-namespace OCA\Documents;
-
-class View extends \OC\Files\View{
-
- public function getFilePermissions($path){
- $permissions = 0;
- if ($this->isReadable($path)) {
- $permissions |= \OCP\PERMISSION_READ;
- }
- if ($this->isSharable($path)) {
- $permissions |= \OCP\PERMISSION_SHARE;
- }
- return $permissions;
- }
-
-}