summaryrefslogtreecommitdiffstats
path: root/apps/files_sharing
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_sharing')
-rw-r--r--apps/files_sharing/appinfo/app.php6
-rw-r--r--apps/files_sharing/l10n/he.js19
-rw-r--r--apps/files_sharing/l10n/he.json19
-rw-r--r--apps/files_sharing/lib/AppInfo/Application.php3
-rw-r--r--apps/files_sharing/lib/External/Storage.php11
-rw-r--r--apps/files_sharing/lib/External/Watcher.php33
-rw-r--r--apps/files_sharing/lib/Helper.php12
-rw-r--r--apps/files_sharing/lib/MountProvider.php33
-rw-r--r--apps/files_sharing/lib/SharedMount.php2
9 files changed, 118 insertions, 20 deletions
diff --git a/apps/files_sharing/appinfo/app.php b/apps/files_sharing/appinfo/app.php
index 5740574ec4c..c6ae6903eec 100644
--- a/apps/files_sharing/appinfo/app.php
+++ b/apps/files_sharing/appinfo/app.php
@@ -32,14 +32,14 @@ $l = \OC::$server->getL10N('files_sharing');
\OC::$CLASSPATH['OC_Share_Backend_Folder'] = 'files_sharing/lib/share/folder.php';
\OC::$CLASSPATH['OC\Files\Storage\Shared'] = 'files_sharing/lib/sharedstorage.php';
-$application = new \OCA\Files_Sharing\AppInfo\Application();
-$application->registerMountProviders();
-
\OCA\Files_Sharing\Helper::registerHooks();
\OCP\Share::registerBackend('file', 'OC_Share_Backend_File');
\OCP\Share::registerBackend('folder', 'OC_Share_Backend_Folder', 'file');
+$application = new \OCA\Files_Sharing\AppInfo\Application();
+$application->registerMountProviders();
+
$eventDispatcher = \OC::$server->getEventDispatcher();
$eventDispatcher->addListener(
'OCA\Files::loadAdditionalScripts',
diff --git a/apps/files_sharing/l10n/he.js b/apps/files_sharing/l10n/he.js
index 32fe49005a1..985e5807e5a 100644
--- a/apps/files_sharing/l10n/he.js
+++ b/apps/files_sharing/l10n/he.js
@@ -27,6 +27,25 @@ OC.L10N.register(
"Invalid ownCloud url" : "נתיב ownCloud לא חוקי",
"Shared by" : "שותף על־ידי",
"Sharing" : "שיתוף",
+ "Share API is disabled" : "שיתוף API מנוטרל",
+ "Wrong share ID, share doesn't exist" : "מספר זיהוי שיתוף שגוי, שיתוף אינו קיים",
+ "Could not delete share" : "לא ניתן היה למחוק את השיתוף",
+ "Please specify a file or folder path" : "יש לספק נתיב לקובץ או תיקייה",
+ "Wrong path, file/folder doesn't exist" : "נתיב שגוי, קובץ/תיקייה אינם קיימים",
+ "Please specify a valid user" : "יש לספק משתמש חוקי",
+ "Group sharing is disabled by the administrator" : "שיתוף קבוצתי מנוטרל על ידי המנהל",
+ "Please specify a valid group" : "יש לספק קבוצה חוקית",
+ "Public link sharing is disabled by the administrator" : "שיתוף ציבורי מנוטרל על ידי המנהל",
+ "Public upload disabled by the administrator" : "שיתוף ציבורי מנוטרל על ידי המנהל",
+ "Public upload is only possible for publicly shared folders" : "העלאה ציבורית אפשרית רק אל תיקיות משותפות ציבוריות",
+ "Invalid date, date format must be YYYY-MM-DD" : "תאריך לא חוקי, תבנית התאריך חייבת להיות YYYY-MM-DD",
+ "Sharing %s failed because the back end does not allow shares from type %s" : "שיתוף %s נכשל כיוון שהצד האחרוי ינו מאפשר שיתוף מסוג %s",
+ "Unknown share type" : "סוג שיתוף אינו מוכר",
+ "Not a directory" : "אינה תיקייה",
+ "Could not lock path" : "לא ניתן היה לנעול נתיב",
+ "Can't change permissions for public share links" : "לא ניתן לשנות הרשאות לקישורי שיתוף ציבוריים",
+ "Wrong or no update parameter given" : "משתנה עדכון שניתן שגוי או לא קיים",
+ "Cannot increase permissions" : "לא ניתן להעלות הרשאות",
"A file or folder has been <strong>shared</strong>" : "קובץ או תיקייה <strong>שותפו<strong/>",
"A file or folder was shared from <strong>another server</strong>" : "קובץ או תיקייה שותפו מ- <strong>שרת אחר</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "קובץ או תיקייה עם שיתוף ציבורי <strong>הורדו</strong>",
diff --git a/apps/files_sharing/l10n/he.json b/apps/files_sharing/l10n/he.json
index 4aa639d8e50..247c8e2239d 100644
--- a/apps/files_sharing/l10n/he.json
+++ b/apps/files_sharing/l10n/he.json
@@ -25,6 +25,25 @@
"Invalid ownCloud url" : "נתיב ownCloud לא חוקי",
"Shared by" : "שותף על־ידי",
"Sharing" : "שיתוף",
+ "Share API is disabled" : "שיתוף API מנוטרל",
+ "Wrong share ID, share doesn't exist" : "מספר זיהוי שיתוף שגוי, שיתוף אינו קיים",
+ "Could not delete share" : "לא ניתן היה למחוק את השיתוף",
+ "Please specify a file or folder path" : "יש לספק נתיב לקובץ או תיקייה",
+ "Wrong path, file/folder doesn't exist" : "נתיב שגוי, קובץ/תיקייה אינם קיימים",
+ "Please specify a valid user" : "יש לספק משתמש חוקי",
+ "Group sharing is disabled by the administrator" : "שיתוף קבוצתי מנוטרל על ידי המנהל",
+ "Please specify a valid group" : "יש לספק קבוצה חוקית",
+ "Public link sharing is disabled by the administrator" : "שיתוף ציבורי מנוטרל על ידי המנהל",
+ "Public upload disabled by the administrator" : "שיתוף ציבורי מנוטרל על ידי המנהל",
+ "Public upload is only possible for publicly shared folders" : "העלאה ציבורית אפשרית רק אל תיקיות משותפות ציבוריות",
+ "Invalid date, date format must be YYYY-MM-DD" : "תאריך לא חוקי, תבנית התאריך חייבת להיות YYYY-MM-DD",
+ "Sharing %s failed because the back end does not allow shares from type %s" : "שיתוף %s נכשל כיוון שהצד האחרוי ינו מאפשר שיתוף מסוג %s",
+ "Unknown share type" : "סוג שיתוף אינו מוכר",
+ "Not a directory" : "אינה תיקייה",
+ "Could not lock path" : "לא ניתן היה לנעול נתיב",
+ "Can't change permissions for public share links" : "לא ניתן לשנות הרשאות לקישורי שיתוף ציבוריים",
+ "Wrong or no update parameter given" : "משתנה עדכון שניתן שגוי או לא קיים",
+ "Cannot increase permissions" : "לא ניתן להעלות הרשאות",
"A file or folder has been <strong>shared</strong>" : "קובץ או תיקייה <strong>שותפו<strong/>",
"A file or folder was shared from <strong>another server</strong>" : "קובץ או תיקייה שותפו מ- <strong>שרת אחר</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "קובץ או תיקייה עם שיתוף ציבורי <strong>הורדו</strong>",
diff --git a/apps/files_sharing/lib/AppInfo/Application.php b/apps/files_sharing/lib/AppInfo/Application.php
index 2907ceaaea2..fda16c7acac 100644
--- a/apps/files_sharing/lib/AppInfo/Application.php
+++ b/apps/files_sharing/lib/AppInfo/Application.php
@@ -115,7 +115,8 @@ class Application extends App {
$server = $c->query('ServerContainer');
return new MountProvider(
$server->getConfig(),
- $server->getShareManager()
+ $server->getShareManager(),
+ $server->getLogger()
);
});
diff --git a/apps/files_sharing/lib/External/Storage.php b/apps/files_sharing/lib/External/Storage.php
index a12b9597dbd..ca99393a1e0 100644
--- a/apps/files_sharing/lib/External/Storage.php
+++ b/apps/files_sharing/lib/External/Storage.php
@@ -89,8 +89,17 @@ class Storage extends DAV implements ISharedStorage {
'user' => $options['token'],
'password' => (string)$options['password']
));
+ }
- $this->getWatcher()->setPolicy(\OC\Files\Cache\Watcher::CHECK_ONCE);
+ public function getWatcher($path = '', $storage = null) {
+ if (!$storage) {
+ $storage = $this;
+ }
+ if (!isset($this->watcher)) {
+ $this->watcher = new Watcher($storage);
+ $this->watcher->setPolicy(\OC\Files\Cache\Watcher::CHECK_ONCE);
+ }
+ return $this->watcher;
}
public function getRemoteUser() {
diff --git a/apps/files_sharing/lib/External/Watcher.php b/apps/files_sharing/lib/External/Watcher.php
new file mode 100644
index 00000000000..6be35bdeb3b
--- /dev/null
+++ b/apps/files_sharing/lib/External/Watcher.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * @author Robin Appelman <icewind@owncloud.com>
+ *
+ * @copyright Copyright (c) 2016, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OCA\Files_Sharing\External;
+
+class Watcher extends \OC\Files\Cache\Watcher {
+ /**
+ * remove deleted files in $path from the cache
+ *
+ * @param string $path
+ */
+ public function cleanFolder($path) {
+ // not needed, the scanner takes care of this
+ }
+}
diff --git a/apps/files_sharing/lib/Helper.php b/apps/files_sharing/lib/Helper.php
index e4640f82eb6..2353a281b7e 100644
--- a/apps/files_sharing/lib/Helper.php
+++ b/apps/files_sharing/lib/Helper.php
@@ -277,19 +277,23 @@ class Helper {
/**
* get default share folder
*
+ * @param \OC\Files\View
* @return string
*/
- public static function getShareFolder() {
+ public static function getShareFolder($view = null) {
+ if ($view === null) {
+ $view = Filesystem::getView();
+ }
$shareFolder = \OC::$server->getConfig()->getSystemValue('share_folder', '/');
$shareFolder = Filesystem::normalizePath($shareFolder);
- if (!Filesystem::file_exists($shareFolder)) {
+ if (!$view->file_exists($shareFolder)) {
$dir = '';
$subdirs = explode('/', $shareFolder);
foreach ($subdirs as $subdir) {
$dir = $dir . '/' . $subdir;
- if (!Filesystem::is_dir($dir)) {
- Filesystem::mkdir($dir);
+ if (!$view->is_dir($dir)) {
+ $view->mkdir($dir);
}
}
}
diff --git a/apps/files_sharing/lib/MountProvider.php b/apps/files_sharing/lib/MountProvider.php
index d8f355f2fd3..a9ae48860c2 100644
--- a/apps/files_sharing/lib/MountProvider.php
+++ b/apps/files_sharing/lib/MountProvider.php
@@ -26,6 +26,7 @@ namespace OCA\Files_Sharing;
use OCP\Files\Config\IMountProvider;
use OCP\Files\Storage\IStorageFactory;
use OCP\IConfig;
+use OCP\ILogger;
use OCP\IUser;
use OCP\Share\IManager;
@@ -41,12 +42,19 @@ class MountProvider implements IMountProvider {
protected $shareManager;
/**
+ * @var ILogger
+ */
+ protected $logger;
+
+ /**
* @param \OCP\IConfig $config
* @param IManager $shareManager
+ * @param ILogger $logger
*/
- public function __construct(IConfig $config, IManager $shareManager) {
+ public function __construct(IConfig $config, IManager $shareManager, ILogger $logger) {
$this->config = $config;
$this->shareManager = $shareManager;
+ $this->logger = $logger;
}
@@ -67,15 +75,20 @@ class MountProvider implements IMountProvider {
$mounts = [];
foreach ($shares as $share) {
- $mounts[] = new SharedMount(
- '\OC\Files\Storage\Shared',
- $mounts,
- [
- 'user' => $user->getUID(),
- 'newShare' => $share,
- ],
- $storageFactory
- );
+ try {
+ $mounts[] = new SharedMount(
+ '\OC\Files\Storage\Shared',
+ $mounts,
+ [
+ 'user' => $user->getUID(),
+ 'newShare' => $share,
+ ],
+ $storageFactory
+ );
+ } catch (\Exception $e) {
+ $this->logger->logException($e);
+ $this->logger->error('Error while trying to create shared mount');
+ }
}
// array_filter removes the null values from the array
diff --git a/apps/files_sharing/lib/SharedMount.php b/apps/files_sharing/lib/SharedMount.php
index 83527053f43..2b066bd2d94 100644
--- a/apps/files_sharing/lib/SharedMount.php
+++ b/apps/files_sharing/lib/SharedMount.php
@@ -81,7 +81,7 @@ class SharedMount extends MountPoint implements MoveableMount {
$parent = dirname($share->getTarget());
if (!$this->recipientView->is_dir($parent)) {
- $parent = Helper::getShareFolder();
+ $parent = Helper::getShareFolder($this->recipientView);
}
$newMountPoint = $this->generateUniqueTarget(