From da3974bcb210a6580c974e1b2efebcae26ccf708 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Tue, 3 Jun 2014 17:57:56 +0200 Subject: [PATCH] - drop permissions table and related code - the file/folder's permission is now stored in the file cache - BackGroundWatcher has been removed - this has meanwhile be replaced by occ files:scan which can be executed in a cron jobs - increase version to trigger database migration --- apps/files/appinfo/app.php | 2 - apps/files_sharing/lib/api.php | 2 +- apps/files_sharing/lib/cache.php | 3 +- apps/files_sharing/lib/permissions.php | 112 ------------ apps/files_sharing/lib/sharedstorage.php | 4 - db_structure.xml | 63 ++----- lib/private/files/cache/backgroundwatcher.php | 107 ----------- lib/private/files/cache/cache.php | 17 +- lib/private/files/cache/permissions.php | 170 ------------------ lib/private/files/cache/scanner.php | 10 +- lib/private/files/node/folder.php | 5 - lib/private/files/storage/common.php | 7 - lib/private/files/storage/storage.php | 8 - lib/private/files/storage/wrapper/wrapper.php | 10 -- lib/private/files/view.php | 19 +- lib/private/share/share.php | 8 +- tests/lib/files/cache/permissions.php | 75 -------- tests/lib/files/cache/scanner.php | 2 - tests/lib/files/cache/updater.php | 31 ---- tests/lib/files/cache/watcher.php | 2 - tests/lib/files/node/folder.php | 8 - tests/lib/files/view.php | 2 - version.php | 2 +- 23 files changed, 29 insertions(+), 640 deletions(-) delete mode 100644 apps/files_sharing/lib/permissions.php delete mode 100644 lib/private/files/cache/backgroundwatcher.php delete mode 100644 lib/private/files/cache/permissions.php delete mode 100644 tests/lib/files/cache/permissions.php diff --git a/apps/files/appinfo/app.php b/apps/files/appinfo/app.php index 4b0db457ada..43e6cffa335 100644 --- a/apps/files/appinfo/app.php +++ b/apps/files/appinfo/app.php @@ -12,8 +12,6 @@ OCP\App::addNavigationEntry(array("id" => "files_index", OC_Search::registerProvider('OC_Search_Provider_File'); -\OCP\BackgroundJob::addRegularTask('\OC\Files\Cache\BackgroundWatcher', 'checkNext'); - $templateManager = OC_Helper::getFileTemplateManager(); $templateManager->registerTemplate('text/html', 'core/templates/filetemplates/template.html'); $templateManager->registerTemplate('application/vnd.oasis.opendocument.presentation', 'core/templates/filetemplates/template.odp'); diff --git a/apps/files_sharing/lib/api.php b/apps/files_sharing/lib/api.php index dc4e5cf6c49..4dddbec26b1 100644 --- a/apps/files_sharing/lib/api.php +++ b/apps/files_sharing/lib/api.php @@ -156,7 +156,7 @@ class Api { return $shares; } - $select = '`*PREFIX*share`.`id`, `item_type`, `*PREFIX*share`.`parent`, `share_type`, `share_with`, `file_source`, `path` , `permissions`, `stime`, `expiration`, `token`, `storage`, `mail_send`, `mail_send`'; + $select = '`*PREFIX*share`.`id`, `item_type`, `*PREFIX*share`.`parent`, `share_type`, `share_with`, `file_source`, `path` , `*PREFIX*share`.`permissions`, `stime`, `expiration`, `token`, `storage`, `mail_send`, `mail_send`'; $getReshares = \OC_DB::prepare('SELECT ' . $select . ' FROM `*PREFIX*share` INNER JOIN `*PREFIX*filecache` ON `file_source` = `*PREFIX*filecache`.`fileid` WHERE `*PREFIX*share`.`file_source` = ? AND `*PREFIX*share`.`item_type` IN (\'file\', \'folder\') AND `uid_owner` != ?'); $reshares = $getReshares->execute(array($itemSource, \OCP\User::getUser()))->fetchAll(); diff --git a/apps/files_sharing/lib/cache.php b/apps/files_sharing/lib/cache.php index 9d83ed13b87..f6c42e930d1 100644 --- a/apps/files_sharing/lib/cache.php +++ b/apps/files_sharing/lib/cache.php @@ -105,7 +105,7 @@ class Shared_Cache extends Cache { } $query = \OC_DB::prepare( 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`,' - . ' `size`, `mtime`, `encrypted`, `unencrypted_size`, `storage_mtime`, `etag`' + . ' `size`, `mtime`, `encrypted`, `unencrypted_size`, `storage_mtime`, `etag`, `permissions`' . ' FROM `*PREFIX*filecache` WHERE `fileid` = ?'); $result = $query->execute(array($sourceId)); $data = $result->fetchRow(); @@ -124,6 +124,7 @@ class Shared_Cache extends Cache { } else { $data['size'] = (int)$data['size']; } + $data['permissions'] = (int)$data['permissions']; if (!is_int($file) || $file === 0) { $data['path'] = ''; $data['name'] = basename($this->storage->getMountPoint()); diff --git a/apps/files_sharing/lib/permissions.php b/apps/files_sharing/lib/permissions.php deleted file mode 100644 index 2c4dce36332..00000000000 --- a/apps/files_sharing/lib/permissions.php +++ /dev/null @@ -1,112 +0,0 @@ -. -*/ -namespace OC\Files\Cache; - -class Shared_Permissions extends Permissions { - - /** - * get the permissions for a single file - * - * @param int $fileId - * @param string $user - * @return int permissions - */ - public function get($fileId, $user) { - - $permissions = $this->storage->getPermissions(); - - return $this->updatePermissions($permissions); - } - - /** - * @param integer $fileId - * @param string $user - */ - private function getFile($fileId, $user) { - return $this->get($fileId, $user); - } - - /** - * set the permissions of a file - * - * @param int $fileId - * @param string $user - * @param int $permissions - */ - public function set($fileId, $user, $permissions) { - // Not a valid action for Shared Permissions - } - - /** - * get the permissions of multiply files - * - * @param int[] $fileIds - * @param string $user - * @return int[] - */ - public function getMultiple($fileIds, $user) { - $filePermissions = array(); - foreach ($fileIds as $fileId) { - $filePermissions[$fileId] = $this->get($fileId, $user); - } - return $filePermissions; - } - - /** - * get the permissions for all files in a folder - * - * @param int $parentId - * @param string $user - * @return int[] - */ - public function getDirectoryPermissions($parentId, $user) { - - if ($parentId === -1 && $this->storage->instanceOfStorage('\OC\Files\Storage\Shared')) { - $fileCacheId = $this->storage->getSourceId(); - } else { - $fileCacheId = $parentId; - } - - $query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `parent` = ?'); - $result = $query->execute(array($fileCacheId)); - $permissions = $this->get($parentId, $user); - $filePermissions = array(); - while ($row = $result->fetchRow()) { - $filePermissions[$row['fileid']] = $permissions; - } - return $filePermissions; - } - - /** - * remove the permissions for a file - * - * @param int $fileId - * @param string $user - */ - public function remove($fileId, $user = null) { - // Not a valid action for Shared Permissions - } - - public function removeMultiple($fileIds, $user) { - // Not a valid action for Shared Permissions - } - -} diff --git a/apps/files_sharing/lib/sharedstorage.php b/apps/files_sharing/lib/sharedstorage.php index 6d661dfd8af..f93982ee857 100644 --- a/apps/files_sharing/lib/sharedstorage.php +++ b/apps/files_sharing/lib/sharedstorage.php @@ -578,10 +578,6 @@ class Shared extends \OC\Files\Storage\Common { return new \OC\Files\Cache\Scanner($this); } - public function getPermissionsCache($path = '') { - return new \OC\Files\Cache\Shared_Permissions($this); - } - public function getWatcher($path = '') { return new \OC\Files\Cache\Shared_Watcher($this); } diff --git a/db_structure.xml b/db_structure.xml index ed4954c02b2..0791270a4b9 100644 --- a/db_structure.xml +++ b/db_structure.xml @@ -351,7 +351,16 @@ 40 - + + permissions + integer + 0 + false + 4 + + + + fs_storage_path_hash true @@ -419,58 +428,6 @@ - - - - *dbprefix*permissions - - - - - - fileid - integer - 0 - true - 4 - - - - - user - text - - false - 64 - - - - permissions - integer - 0 - true - 4 - - - - id_user_index - - fileid - ascending - - - user - ascending - - - - - -
-