Commit graph

75 commits

Author SHA1 Message Date
Robin McCorkell
eb0e5ce12c Restrict Local backend to admin-only 2015-08-19 10:08:24 +01:00
Robin McCorkell
c592e24c87 Make Application a singleton
The same Application must be used in the settings templates and in
routes, so that any registered backends are correctly seen
2015-08-19 10:08:23 +01:00
Robin McCorkell
97dbc79c16 Compatibility shims for OC_Mount_Config
The following functions have been removed:
 - addMountPoint()
 - removeMountPoint()
 - movePersonalMountPoint()

registerBackend() has been rewritten as a shim around BackendService,
allowing legacy code to interact with the new API seamlessly

addMountPoint() was already disconnected from all production code, so
this commit completes the job and removes the function itself, along
with disconnecting and removing related functions. Unit tests have
likewise been removed.

getAbsoluteMountPoints(), getSystemMountPoints() and
getPersonalMountPoints() have been rewritten to use the StoragesServices
2015-08-19 10:08:14 +01:00
Robin McCorkell
272a46ebe1 Authentication mechanisms for external storage backends
A backend can now specify generic authentication schemes that it
supports, instead of specifying the parameters for its authentication
method directly. This allows multiple authentication mechanisms to be
implemented for a single scheme, providing altered functionality.

This commit introduces the backend framework for this feature, and so at
this point the UI will be broken as the frontend does not specify the
required information.

Terminology:
 - authentication scheme
    Parameter interface for the authentication method. A backend
    supporting the 'password' scheme accepts two parameters, 'user' and
    'password'.
 - authentication mechanism
    Specific mechanism implementing a scheme. Basic mechanisms may
    forward configuration options directly to the backend, more advanced
    ones may lookup parameters or retrieve them from the session

New dropdown selector for external storage configurations to select the
authentication mechanism to be used.

Authentication mechanisms can have visibilities, just like backends.
The API was extended too to make it easier to add/remove visibilities.
In addition, the concept of 'allowed visibility' has been introduced, so
a backend/auth mechanism can force a maximum visibility level (e.g.
Local storage type) that cannot be overridden by configuration in the
web UI.

An authentication mechanism is a fully instantiated implementation. This
allows an implementation to have dependencies injected into it, e.g. an
\OCP\IDB for database operations.

When a StorageConfig is being prepared for mounting, the authentication
mechanism implementation has manipulateStorage() called,
which inserts the relevant authentication method options into the
storage ready for mounting.
2015-08-19 10:05:11 +01:00
Robin McCorkell
37beb58c6f 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).
2015-08-19 10:05:11 +01:00
Roeland Jago Douma
e84cffc063 Moved core apps to the capabilities manager
* Files
* Files_Sharing
* Files_Trashbin
* Files_Versions
2015-08-10 10:45:16 +02:00
Morris Jobke
f63915d0c8 update license headers and authors 2015-06-25 14:13:49 +02:00
Martin
cdbf472c4d Make string 'SFTP with secret key login' translatable 2015-05-27 15:38:05 +02:00
Lukas Reschke
20a6073a9f Migrate personal certificate handling into AppFramework controllers
Also added unit-tests and better error-handling
2015-04-20 12:58:58 +02:00
Joas Schilling
3f3f8c2f99 Fix usage of deprecated private constants 2015-04-18 10:30:02 +02:00
Jenkins for ownCloud
b585d87d9d Update license headers 2015-03-26 11:44:36 +01:00
Vincent Petry
e5e30924b1 Fix PHPDoc in files_external, add missing tag
Fix various PHPDoc issues in external storage app.

Added missing NoAdminRequired tag
2015-03-17 11:42:52 +01:00
Vincent Petry
ce94a998dd Use storage id + appframework for ext storage CRUD
- Added StorageConfig class to replace ugly arrays
- Implemented StorageService and StorageController for Global and User
  storages
- Async status checking for storages (from Xenopathic)
- Auto-generate id for external storage configs (not the same as
  storage_id)
- Refactor JS classes for external storage settings, this mostly
  moves/encapsulated existing global event handlers into the
  MountConfigListView class.
- Added some JS unit tests for the external storage UI
2015-03-12 18:51:02 +01:00
Morris Jobke
06aef4e8b1 Revert "Updating license headers"
This reverts commit 6a1a4880f0.
2015-02-26 11:37:37 +01:00
Jenkins for ownCloud
6a1a4880f0 Updating license headers 2015-02-23 12:13:59 +01:00
Robin Appelman
d2255a1d30 New SMB storage backend 2015-02-16 13:52:11 +01:00
Vincent Petry
bd01ff135a Merge pull request #13190 from is-apps/master-sftp-key
Add SFTP public key authentication support
2015-02-10 16:44:29 +01:00
Vincent Petry
2bb65dd9b1 Merge pull request #13364 from is-apps/files_external_cleanup
Clean up files_external
2015-02-09 13:20:42 +01:00
Ross Nicoll
02c6b72e25 Change from array() to [] style in files_external application info. 2015-01-14 17:16:12 +00:00
Morris Jobke
455ad005a0 Merge pull request #13350 from owncloud/autoload-translations
Autoload app's js translations
2015-01-14 18:12:05 +01:00
Ross Nicoll
64f4f8fc84 Add support for SFTP key authentication
Add support for external files accessed via SFTP using public key exchange authentication.
Keys are generated automatically when the configuration is added, or can be regenerated on demand if a key is compromised.
Creation of a new configuration row now triggers focus on that row. This is used to trigger auto-configuration for SFTP keys.
Generated public keys are saved in user's data directory for easy retrieval by an external application.
Add controller for SFTP key generation AJAX
SFTP class initialisation no longer produces a warning if the password field is missing.
Add unit tests for SFTP with key authentication backend
2015-01-14 17:00:34 +00:00
Vincent Petry
87f81e5926 Remove unneeded addTranslations() calls 2015-01-14 14:36:23 +01:00
Morris Jobke
3a6d2fcc10 Merge pull request #13345 from owncloud/increase-files-external-versions
Increase files_externals oC required version and its own version
2015-01-14 13:24:08 +01:00
Joas Schilling
f031a479ad Increase files_externals oC required version and its own version 2015-01-14 12:21:47 +01:00
Joas Schilling
caaae1094f The files_external app might need the password so autologin must be disabled 2015-01-14 10:19:22 +01:00
Christopher Bunn
0f715708dc Minor typo updates to External Storage description
This text is visible to admin users when they read the description of
the External Storage app.
2015-01-07 22:37:20 -06:00
Martin
edcba11a91 smb: rename textfield from root to subfolder
"root" or "subfolder" -> "Remote subfolder" on selected storages

missed ftp...
2015-01-07 20:54:05 +01:00
Robin Appelman
a369d78124 Use the mount config api for files_external 2014-12-04 16:47:30 +01:00
Vincent Petry
ec1a73fab9 Added OC.L10N namespace with translation functions
Added addTranslations and fixed de.js file

Fixed de.js to use OC.L10N.register() and use to correct expected
format.

Added JS unit tests for OC.L10N class

Include translations JS script for all apps
2014-10-29 10:09:12 +01:00
Lukas Reschke
16cd749065 Add support for keys in the info.xml
This allows to have links to different doc base URLs

a.
2014-10-09 15:48:30 +02:00
MTRichards
fc0ae29be5 Updated info.xml app description
Added larger app description
2014-10-08 20:49:22 -04:00
Jörn Friedrich Dreyer
aa3ad898a9 fix amazon s3 issues
folder size and mtime is always unknown in s3

more s3 fixes

make rescanDelay of root dir configurable, add on the fly update of legacy storage ids, !isset -> empty when checking strings

reduce number of http calls on remove and rmdir

fix typo
2014-10-08 18:49:47 +02:00
Robin Appelman
3d7aff84e5 Fix configuration of rackspace 2014-09-05 13:22:35 +02:00
Robin Appelman
d0266c0bf8 Use public api for getting l10n 2014-08-31 10:08:22 +02:00
Robin McCorkell
0e8a973579 Improve UI of external storage configuration
* Highlight fields that need to be filled
 * Remove (required) and (optional) strings where possible
 * Focus first configuration field when creating new external storage
 * Add ability to force external storage re-check
 * Various jQuery improvements
 * Prevent wrapping of checkboxes in configuration
2014-08-30 09:02:37 +01:00
Jörn Friedrich Dreyer
308e8d6379 replace chosen with select2 to provide ajaxified user and group selection for files_external, fixes #7499
remove minified select2 js

show avatars for users, simpler results

remove unneeded users and groups from settings template

fix css, escape user and group names
2014-08-25 11:50:19 +02:00
Jörn Friedrich Dreyer
ffe54e260a explicit routes for files_external 2014-08-22 11:51:39 +02:00
Georg Ehrke
e5e8e28ae7 add ocsids to info.xml 2014-07-07 17:11:50 +02:00
Thomas Müller
171475b95a fix autoloader 2014-06-27 08:52:40 +02:00
Vincent Petry
01c2c3107a Added external storage list in files app 2014-06-06 15:06:26 +02:00
Vincent Petry
c64e920b4d Adjust core apps to use "requiremin" instead of "require"
Also added a few missing authors.
2014-05-27 11:54:44 +02:00
Robin McCorkell
05642733a3 Add storage priority support
Each storage backend has a default priority, assigned to any system mounts
created in ownCloud. mount.json can be manually modified to change these
priorities.

The priority order is as follows:
 * Personal
 * User
 * Group
 * Global

Within each mount type, the mount with the highest priority is active.

The storage backend defaults were chosen to be the following:
 * Local - 150
 * Remote storage - 100
 * SMB / CIFS with OC login - 90
2014-05-21 22:17:21 +01:00
fibsifan
06c084cc3c changing label "URL" to "Host" 2014-05-15 14:09:10 +02:00
Thomas Müller
9128900c56 drop files_irods from apps_external 2014-04-28 12:39:28 +02:00
Volkan Gezer
da61acd1e2 Add translatable mount configs
Will close #8070
2014-04-23 17:58:14 +02:00
Thomas Müller
c0ebc1dfb1 Update backends and their configurations 2014-04-03 16:57:26 +02:00
Philipp Kapfer
ff9a4a6d91 Added cURL dependency for Amazon S3, Dropbox and SWIFT
Conflicts:
	apps/files_external/lib/amazons3.php
	apps/files_external/lib/swift.php
2014-04-03 16:38:43 +02:00
Philipp Kapfer
8ca897df76 Added cURL dependency check to Google Drive and WebDAV backend
Added check for backend's checkDependencies method to OC_Mount_Config::getBackends() when backend is configured to have some instead of blindly calling it and crashing

Conflicts:
	apps/files_external/lib/config.php
	apps/files_external/lib/google.php
2014-04-03 16:30:48 +02:00
Philipp Kapfer
f7da4280ca Modified app to dynamically register backends instead of hard-coding them
Moved dependency check to the individual backends instead of the config

Conflicts:
	apps/files_external/appinfo/app.php
	apps/files_external/lib/config.php
2014-04-03 16:21:52 +02:00
Robin McCorkell
cac4aaa8c4 Rename SMB_Auto to SMB_OC and change visible name
SMB_Auto is now SMB_OC, and the name has been changed from
"SMB / CIFS Auto" to "SMB / CIFS using OC login"
2014-03-26 14:35:07 +00:00