summaryrefslogtreecommitdiffstats
path: root/apps/files_external/personal.php
diff options
context:
space:
mode:
authorRobin McCorkell <rmccorkell@owncloud.com>2015-08-28 15:52:29 +0100
committerRobin McCorkell <rmccorkell@owncloud.com>2015-08-28 17:21:58 +0100
commitcc88c5f4b84da57c425cbdb7dc8b391b1942b503 (patch)
tree2a55a4138f7adfd49eefd9277e9f8ba17f747857 /apps/files_external/personal.php
parent080fafe63a980f6a485027fd4216864adf764e1e (diff)
downloadnextcloud-server-cc88c5f4b84da57c425cbdb7dc8b391b1942b503.tar.gz
nextcloud-server-cc88c5f4b84da57c425cbdb7dc8b391b1942b503.zip
Implement more fine-grained external storage permissions model
VisibilityTrait -> PermissionsTrait PermissionsTrait stores two sets of data, $permissions and $allowedPermissions (analogous to $visibility and $allowedVisibility of VisibilityTrait). Each set is a map of user type ('admin' or 'personal') to permissions (mounting permission, create permission). The result is that a backend can now be restricted for creation, while still allowing it to be mounted. This is useful for deprecating backends or auth mechanisms, preventing new storages being created, while still allowing existing storages to be mounted.
Diffstat (limited to 'apps/files_external/personal.php')
-rw-r--r--apps/files_external/personal.php8
1 files changed, 6 insertions, 2 deletions
diff --git a/apps/files_external/personal.php b/apps/files_external/personal.php
index 8717d91d4f1..d47f983b357 100644
--- a/apps/files_external/personal.php
+++ b/apps/files_external/personal.php
@@ -34,8 +34,12 @@ $userStoragesService = $appContainer->query('OCA\Files_external\Service\UserStor
OCP\Util::addScript('files_external', 'settings');
OCP\Util::addStyle('files_external', 'settings');
-$backends = $backendService->getBackendsVisibleFor(BackendService::VISIBILITY_PERSONAL);
-$authMechanisms = $backendService->getAuthMechanismsVisibleFor(BackendService::VISIBILITY_PERSONAL);
+$backends = array_filter($backendService->getAvailableBackends(), function($backend) {
+ return $backend->isPermitted(BackendService::USER_PERSONAL, BackendService::PERMISSION_CREATE);
+});
+$authMechanisms = array_filter($backendService->getAuthMechanisms(), function($authMechanism) {
+ return $authMechanism->isPermitted(BackendService::USER_PERSONAL, BackendService::PERMISSION_CREATE);
+});
foreach ($backends as $backend) {
if ($backend->getCustomJs()) {
\OCP\Util::addScript('files_external', $backend->getCustomJs());