diff options
author | Robin McCorkell <rmccorkell@owncloud.com> | 2015-08-11 18:45:07 +0100 |
---|---|---|
committer | Robin McCorkell <rmccorkell@owncloud.com> | 2015-08-19 10:05:11 +0100 |
commit | 37beb58c6f395523d8e2934870c5f52a8c6f6df0 (patch) | |
tree | b14325a790ddaf7236c3f8c1939ce9ef10df58bb /apps/files_external/settings.php | |
parent | 74237a9c44192fb98944ea7f3c14fa6f22c0814b (diff) | |
download | nextcloud-server-37beb58c6f395523d8e2934870c5f52a8c6f6df0.tar.gz nextcloud-server-37beb58c6f395523d8e2934870c5f52a8c6f6df0.zip |
Introduce BackendService for managing external storage backends
Backends are registered to the BackendService through new data
structures:
Backends are concrete classes, deriving from
\OCA\Files_External\Lib\Backend\Backend. During construction, the
various configuration parameters of the Backend can be set, in a design
similar to Symfony Console.
DefinitionParameter stores a parameter configuration for an external
storage: name of parameter, human-readable name, type of parameter
(text, password, hidden, checkbox), flags (optional or not).
Storages in the StoragesController now get their parameters validated
server-side (fixes a TODO).
Diffstat (limited to 'apps/files_external/settings.php')
-rw-r--r-- | apps/files_external/settings.php | 51 |
1 files changed, 12 insertions, 39 deletions
diff --git a/apps/files_external/settings.php b/apps/files_external/settings.php index 6db68713d98..7c53db4c0dd 100644 --- a/apps/files_external/settings.php +++ b/apps/files_external/settings.php @@ -26,54 +26,27 @@ * */ +use \OCA\Files_External\Service\BackendService; + OC_Util::checkAdminUser(); +$app = new \OCA\Files_external\Appinfo\Application(); +$appContainer = $app->getContainer(); +$backendService = $appContainer->query('OCA\Files_External\Service\BackendService'); +$globalStoragesService = $appContainer->query('OCA\Files_external\Service\GlobalStoragesService'); + OCP\Util::addScript('files_external', 'settings'); OCP\Util::addStyle('files_external', 'settings'); \OC_Util::addVendorScript('select2/select2'); \OC_Util::addVendorStyle('select2/select2'); -$backends = OC_Mount_Config::getBackends(); -$personal_backends = array(); -$enabled_backends = explode(',', OCP\Config::getAppValue('files_external', 'user_mounting_backends', '')); -foreach ($backends as $class => $backend) -{ - if ($class != '\OC\Files\Storage\Local') - { - $personal_backends[$class] = array( - 'backend' => $backend['backend'], - 'enabled' => in_array($class, $enabled_backends), - ); - } -} - -$mounts = OC_Mount_Config::getSystemMountPoints(); -$hasId = true; -foreach ($mounts as $mount) { - if (!isset($mount['id'])) { - // some mount points are missing ids - $hasId = false; - break; - } -} - -if (!$hasId) { - $service = new \OCA\Files_external\Service\GlobalStoragesService(); - // this will trigger the new storage code which will automatically - // generate storage config ids - $service->getAllStorages(); - // re-read updated config - $mounts = OC_Mount_Config::getSystemMountPoints(); - // TODO: use the new storage config format in the template -} - $tmpl = new OCP\Template('files_external', 'settings'); $tmpl->assign('encryptionEnabled', \OC::$server->getEncryptionManager()->isEnabled()); $tmpl->assign('isAdminPage', true); -$tmpl->assign('mounts', $mounts); -$tmpl->assign('backends', $backends); -$tmpl->assign('personal_backends', $personal_backends); -$tmpl->assign('dependencies', OC_Mount_Config::checkDependencies()); -$tmpl->assign('allowUserMounting', OCP\Config::getAppValue('files_external', 'allow_user_mounting', 'yes')); +$tmpl->assign('storages', $globalStoragesService->getAllStorages()); +$tmpl->assign('backends', $backendService->getBackendsVisibleFor(BackendService::VISIBILITY_ADMIN)); +$tmpl->assign('userBackends', $backendService->getBackendsAllowedVisibleFor(BackendService::VISIBILITY_PERSONAL)); +$tmpl->assign('dependencies', OC_Mount_Config::dependencyMessage($backendService->getBackends())); +$tmpl->assign('allowUserMounting', $backendService->isUserMountingAllowed()); return $tmpl->fetchPage(); |