diff options
author | Robin McCorkell <rmccorkell@owncloud.com> | 2015-08-28 15:52:29 +0100 |
---|---|---|
committer | Robin McCorkell <rmccorkell@owncloud.com> | 2015-08-28 17:21:58 +0100 |
commit | cc88c5f4b84da57c425cbdb7dc8b391b1942b503 (patch) | |
tree | 2a55a4138f7adfd49eefd9277e9f8ba17f747857 /apps/files_external/personal.php | |
parent | 080fafe63a980f6a485027fd4216864adf764e1e (diff) | |
download | nextcloud-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.php | 8 |
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()); |