diff options
Diffstat (limited to 'apps/files_external/appinfo')
-rw-r--r-- | apps/files_external/appinfo/app.php | 146 | ||||
-rw-r--r-- | apps/files_external/appinfo/application.php | 34 | ||||
-rw-r--r-- | apps/files_external/appinfo/routes.php | 31 |
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'); |