summaryrefslogtreecommitdiffstats
path: root/apps/files_external/appinfo
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_external/appinfo')
-rw-r--r--apps/files_external/appinfo/app.php146
-rw-r--r--apps/files_external/appinfo/application.php34
-rw-r--r--apps/files_external/appinfo/routes.php31
3 files changed, 151 insertions, 60 deletions
diff --git a/apps/files_external/appinfo/app.php b/apps/files_external/appinfo/app.php
index 9b5994338a1..7ea1e96bf2f 100644
--- a/apps/files_external/appinfo/app.php
+++ b/apps/files_external/appinfo/app.php
@@ -6,6 +6,8 @@
* later.
* See the COPYING-README file.
*/
+$app = new \OCA\Files_external\Appinfo\Application();
+
$l = \OC::$server->getL10N('files_external');
OC::$CLASSPATH['OC\Files\Storage\StreamWrapper'] = 'files_external/lib/streamwrapper.php';
@@ -18,47 +20,52 @@ OC::$CLASSPATH['OC\Files\Storage\SMB_OC'] = 'files_external/lib/smb_oc.php';
OC::$CLASSPATH['OC\Files\Storage\AmazonS3'] = 'files_external/lib/amazons3.php';
OC::$CLASSPATH['OC\Files\Storage\Dropbox'] = 'files_external/lib/dropbox.php';
OC::$CLASSPATH['OC\Files\Storage\SFTP'] = 'files_external/lib/sftp.php';
+OC::$CLASSPATH['OC\Files\Storage\SFTP_Key'] = 'files_external/lib/sftp_key.php';
OC::$CLASSPATH['OC_Mount_Config'] = 'files_external/lib/config.php';
OC::$CLASSPATH['OCA\Files\External\Api'] = 'files_external/lib/api.php';
+require_once __DIR__ . '/../3rdparty/autoload.php';
+
OCP\App::registerAdmin('files_external', 'settings');
if (OCP\Config::getAppValue('files_external', 'allow_user_mounting', 'yes') == 'yes') {
OCP\App::registerPersonal('files_external', 'personal');
}
-\OCA\Files\App::getNavigationManager()->add(
- array(
- "id" => 'extstoragemounts',
- "appname" => 'files_external',
- "script" => 'list.php',
- "order" => 30,
- "name" => $l->t('External storage')
- )
-);
+\OCA\Files\App::getNavigationManager()->add([
+ "id" => 'extstoragemounts',
+ "appname" => 'files_external',
+ "script" => 'list.php',
+ "order" => 30,
+ "name" => $l->t('External storage')
+]);
// connecting hooks
OCP\Util::connectHook('OC_Filesystem', 'post_initMountPoints', '\OC_Mount_Config', 'initMountPointsHook');
OCP\Util::connectHook('OC_User', 'post_login', 'OC\Files\Storage\SMB_OC', 'login');
-OC_Mount_Config::registerBackend('\OC\Files\Storage\Local', array(
+OC_Mount_Config::registerBackend('\OC\Files\Storage\Local', [
'backend' => (string)$l->t('Local'),
'priority' => 150,
- 'configuration' => array(
- 'datadir' => (string)$l->t('Location'))));
+ 'configuration' => [
+ 'datadir' => (string)$l->t('Location')
+ ],
+]);
-OC_Mount_Config::registerBackend('\OC\Files\Storage\AmazonS3', array(
+OC_Mount_Config::registerBackend('\OC\Files\Storage\AmazonS3', [
'backend' => (string)$l->t('Amazon S3'),
'priority' => 100,
- 'configuration' => array(
+ 'configuration' => [
'key' => (string)$l->t('Key'),
'secret' => '*'.$l->t('Secret'),
- 'bucket' => (string)$l->t('Bucket')),
- 'has_dependencies' => true));
+ 'bucket' => (string)$l->t('Bucket'),
+ ],
+ 'has_dependencies' => true,
+]);
-OC_Mount_Config::registerBackend('\OC\Files\Storage\AmazonS3', array(
+OC_Mount_Config::registerBackend('\OC\Files\Storage\AmazonS3', [
'backend' => (string)$l->t('Amazon S3 and compliant'),
'priority' => 100,
- 'configuration' => array(
+ 'configuration' => [
'key' => (string)$l->t('Access Key'),
'secret' => '*'.$l->t('Secret Key'),
'bucket' => (string)$l->t('Bucket'),
@@ -66,48 +73,56 @@ OC_Mount_Config::registerBackend('\OC\Files\Storage\AmazonS3', array(
'port' => '&'.$l->t('Port'),
'region' => '&'.$l->t('Region'),
'use_ssl' => '!'.$l->t('Enable SSL'),
- 'use_path_style' => '!'.$l->t('Enable Path Style')),
- 'has_dependencies' => true));
+ 'use_path_style' => '!'.$l->t('Enable Path Style')
+ ],
+ 'has_dependencies' => true,
+]);
-OC_Mount_Config::registerBackend('\OC\Files\Storage\Dropbox', array(
+OC_Mount_Config::registerBackend('\OC\Files\Storage\Dropbox', [
'backend' => 'Dropbox',
'priority' => 100,
- 'configuration' => array(
+ 'configuration' => [
'configured' => '#configured',
'app_key' => (string)$l->t('App key'),
'app_secret' => '*'.$l->t('App secret'),
'token' => '#token',
- 'token_secret' => '#token_secret'),
+ 'token_secret' => '#token_secret'
+ ],
'custom' => 'dropbox',
- 'has_dependencies' => true));
+ 'has_dependencies' => true,
+]);
-OC_Mount_Config::registerBackend('\OC\Files\Storage\FTP', array(
+OC_Mount_Config::registerBackend('\OC\Files\Storage\FTP', [
'backend' => 'FTP',
'priority' => 100,
- 'configuration' => array(
+ 'configuration' => [
'host' => (string)$l->t('Host'),
'user' => (string)$l->t('Username'),
'password' => '*'.$l->t('Password'),
'root' => '&'.$l->t('Remote subfolder'),
- 'secure' => '!'.$l->t('Secure ftps://')),
- 'has_dependencies' => true));
+ 'secure' => '!'.$l->t('Secure ftps://')
+ ],
+ 'has_dependencies' => true,
+]);
-OC_Mount_Config::registerBackend('\OC\Files\Storage\Google', array(
+OC_Mount_Config::registerBackend('\OC\Files\Storage\Google', [
'backend' => 'Google Drive',
'priority' => 100,
- 'configuration' => array(
+ 'configuration' => [
'configured' => '#configured',
'client_id' => (string)$l->t('Client ID'),
'client_secret' => '*'.$l->t('Client secret'),
- 'token' => '#token'),
+ 'token' => '#token',
+ ],
'custom' => 'google',
- 'has_dependencies' => true));
+ 'has_dependencies' => true,
+]);
-OC_Mount_Config::registerBackend('\OC\Files\Storage\Swift', array(
+OC_Mount_Config::registerBackend('\OC\Files\Storage\Swift', [
'backend' => (string)$l->t('OpenStack Object Storage'),
'priority' => 100,
- 'configuration' => array(
+ 'configuration' => [
'user' => (string)$l->t('Username'),
'bucket' => (string)$l->t('Bucket'),
'region' => '&'.$l->t('Region (optional for OpenStack Object Storage)'),
@@ -117,63 +132,86 @@ OC_Mount_Config::registerBackend('\OC\Files\Storage\Swift', array(
'service_name' => '&'.$l->t('Service Name (required for OpenStack Object Storage)'),
'url' => '&'.$l->t('URL of identity endpoint (required for OpenStack Object Storage)'),
'timeout' => '&'.$l->t('Timeout of HTTP requests in seconds'),
- ),
- 'has_dependencies' => true));
+ ],
+ 'has_dependencies' => true,
+]);
if (!OC_Util::runningOnWindows()) {
- OC_Mount_Config::registerBackend('\OC\Files\Storage\SMB', array(
+ OC_Mount_Config::registerBackend('\OC\Files\Storage\SMB', [
'backend' => 'SMB / CIFS',
'priority' => 100,
- 'configuration' => array(
+ 'configuration' => [
'host' => (string)$l->t('Host'),
'user' => (string)$l->t('Username'),
'password' => '*'.$l->t('Password'),
'share' => (string)$l->t('Share'),
- 'root' => '&'.$l->t('Remote subfolder')),
- 'has_dependencies' => true));
+ 'root' => '&'.$l->t('Remote subfolder'),
+ ],
+ 'has_dependencies' => true,
+ ]);
- OC_Mount_Config::registerBackend('\OC\Files\Storage\SMB_OC', array(
+ OC_Mount_Config::registerBackend('\OC\Files\Storage\SMB_OC', [
'backend' => (string)$l->t('SMB / CIFS using OC login'),
'priority' => 90,
- 'configuration' => array(
+ 'configuration' => [
'host' => (string)$l->t('Host'),
'username_as_share' => '!'.$l->t('Username as share'),
'share' => '&'.$l->t('Share'),
- 'root' => '&'.$l->t('Remote subfolder')),
- 'has_dependencies' => true));
+ 'root' => '&'.$l->t('Remote subfolder'),
+ ],
+ 'has_dependencies' => true,
+ ]);
}
-OC_Mount_Config::registerBackend('\OC\Files\Storage\DAV', array(
+OC_Mount_Config::registerBackend('\OC\Files\Storage\DAV', [
'backend' => 'WebDAV',
'priority' => 100,
- 'configuration' => array(
+ 'configuration' => [
'host' => (string)$l->t('URL'),
'user' => (string)$l->t('Username'),
'password' => '*'.$l->t('Password'),
'root' => '&'.$l->t('Remote subfolder'),
- 'secure' => '!'.$l->t('Secure https://')),
- 'has_dependencies' => true));
+ 'secure' => '!'.$l->t('Secure https://'),
+ ],
+ 'has_dependencies' => true,
+]);
-OC_Mount_Config::registerBackend('\OC\Files\Storage\OwnCloud', array(
+OC_Mount_Config::registerBackend('\OC\Files\Storage\OwnCloud', [
'backend' => 'ownCloud',
'priority' => 100,
- 'configuration' => array(
+ 'configuration' => [
'host' => (string)$l->t('URL'),
'user' => (string)$l->t('Username'),
'password' => '*'.$l->t('Password'),
'root' => '&'.$l->t('Remote subfolder'),
- 'secure' => '!'.$l->t('Secure https://'))));
+ 'secure' => '!'.$l->t('Secure https://'),
+ ],
+]);
-OC_Mount_Config::registerBackend('\OC\Files\Storage\SFTP', array(
+OC_Mount_Config::registerBackend('\OC\Files\Storage\SFTP', [
'backend' => 'SFTP',
'priority' => 100,
- 'configuration' => array(
+ 'configuration' => [
'host' => (string)$l->t('Host'),
'user' => (string)$l->t('Username'),
'password' => '*'.$l->t('Password'),
- 'root' => '&'.$l->t('Remote subfolder'))));
+ 'root' => '&'.$l->t('Remote subfolder'),
+ ],
+]);
+OC_Mount_Config::registerBackend('\OC\Files\Storage\SFTP_Key', [
+ 'backend' => 'SFTP with secret key login',
+ 'priority' => 100,
+ 'configuration' => array(
+ 'host' => (string)$l->t('Host'),
+ 'user' => (string)$l->t('Username'),
+ 'public_key' => (string)$l->t('Public key'),
+ 'private_key' => '#private_key',
+ 'root' => '&'.$l->t('Remote subfolder')),
+ 'custom' => 'sftp_key',
+ ]
+);
$mountProvider = new \OCA\Files_External\Config\ConfigAdapter();
\OC::$server->getMountProviderCollection()->registerProvider($mountProvider);
diff --git a/apps/files_external/appinfo/application.php b/apps/files_external/appinfo/application.php
new file mode 100644
index 00000000000..3e6b80ccb48
--- /dev/null
+++ b/apps/files_external/appinfo/application.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Copyright (c) 2015 University of Edinburgh <Ross.Nicoll@ed.ac.uk>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCA\Files_External\Appinfo;
+
+use \OCA\Files_External\Controller\AjaxController;
+use \OCP\AppFramework\App;
+use \OCP\IContainer;
+
+/**
+ * @package OCA\Files_External\Appinfo
+ */
+class Application extends App {
+ public function __construct(array $urlParams=array()) {
+ parent::__construct('files_external', $urlParams);
+
+ $container = $this->getContainer();
+
+ /**
+ * Controllers
+ */
+ $container->registerService('AjaxController', function (IContainer $c) {
+ return new AjaxController(
+ $c->query('AppName'),
+ $c->query('Request')
+ );
+ });
+ }
+}
diff --git a/apps/files_external/appinfo/routes.php b/apps/files_external/appinfo/routes.php
index b852b34c5d3..a090fca20ea 100644
--- a/apps/files_external/appinfo/routes.php
+++ b/apps/files_external/appinfo/routes.php
@@ -20,13 +20,31 @@
*
*/
-/** @var $this OC\Route\Router */
+namespace OCA\Files_External\Appinfo;
-$this->create('files_external_add_mountpoint', 'ajax/addMountPoint.php')
- ->actionInclude('files_external/ajax/addMountPoint.php');
-$this->create('files_external_remove_mountpoint', 'ajax/removeMountPoint.php')
- ->actionInclude('files_external/ajax/removeMountPoint.php');
+/**
+ * @var $this \OC\Route\Router
+ **/
+$application = new Application();
+$application->registerRoutes(
+ $this,
+ array(
+ 'resources' => array(
+ 'global_storages' => array('url' => '/globalstorages'),
+ 'user_storages' => array('url' => '/userstorages'),
+ ),
+ 'routes' => array(
+ array(
+ 'name' => 'Ajax#getSshKeys',
+ 'url' => '/ajax/sftp_key.php',
+ 'verb' => 'POST',
+ 'requirements' => array()
+ )
+ )
+ )
+);
+// TODO: move these to app framework
$this->create('files_external_add_root_certificate', 'ajax/addRootCertificate.php')
->actionInclude('files_external/ajax/addRootCertificate.php');
$this->create('files_external_remove_root_certificate', 'ajax/removeRootCertificate.php')
@@ -37,10 +55,11 @@ $this->create('files_external_dropbox', 'ajax/dropbox.php')
$this->create('files_external_google', 'ajax/google.php')
->actionInclude('files_external/ajax/google.php');
+
$this->create('files_external_list_applicable', '/applicable')
->actionInclude('files_external/ajax/applicable.php');
-OC_API::register('get',
+\OC_API::register('get',
'/apps/files_external/api/v1/mounts',
array('\OCA\Files\External\Api', 'getUserMounts'),
'files_external');