Commit Graph

116 Commits

Author SHA1 Message Date
Thomas Müller 9b4c9a0357 Merge pull request #18531 from owncloud/ext-user-credentials
External storage 'Login credentials' auth mechanism
2016-01-22 13:14:14 +01:00
Robin Appelman 483c6b68e2 clear mount cache when removing applicables 2016-01-20 16:32:56 +01:00
Robin Appelman 1fcb36cc39 Add files_external:export command 2016-01-18 14:17:27 +01:00
Robin Appelman 15451b29da bumb app version 2016-01-18 12:09:44 +01:00
Robin McCorkell 3fe802d931 Introduce 'login credentials' auth mechanism
Stores user credentials in the database after user login, uses the new
CredentialsManager class
2016-01-18 11:10:41 +01:00
Robin McCorkell 4ffe8d70fa Consolidate user mounting check code 2016-01-14 22:13:28 +00:00
Thomas Müller 7a569a0915 Merge pull request #21392 from owncloud/files_external-import
Add import command for files external
2016-01-13 10:35:10 +01:00
Thomas Müller 682821c71e Happy new year! 2016-01-12 15:02:18 +01:00
Robin Appelman 50857e6d7b Add import command for files external 2016-01-11 11:55:00 +01:00
Joas Schilling ae285c0654 Remove deprecated shipped flag from info.xml which has no use anymore 2016-01-07 15:15:58 +01:00
Joas Schilling 40f786060e Add ownCloud min and max version for shipped apps 2016-01-07 15:11:49 +01:00
Robin Appelman ce3adb8121 Let doctrine generate index names 2015-12-09 15:38:49 +01:00
Robin Appelman a1898dc2bf db config backend for files_external 2015-12-04 13:48:21 +01:00
Robin Appelman 62cc316c6a remove old propagation logic 2015-12-01 16:50:20 +01:00
Robin Appelman 2dd0066b0e Add command to set mount options for external storages 2015-12-01 13:47:32 +01:00
Robin Appelman d5ffbc9401 Add command to get and set config for external mounts 2015-12-01 13:47:32 +01:00
Thomas Müller 9385eef31a Merge pull request #18999 from owncloud/ext-config-listadmin
Improvements to external storages list rendering
2015-11-24 16:03:35 +01:00
Robin Appelman f5cdd27b22 Add files_external:list command to list configured external storages 2015-11-23 11:31:40 +01:00
Robin McCorkell 28876bf463 Display applicable global storages in personal mount list 2015-11-21 22:54:21 +00:00
Lukas Reschke 8f09d5b67c Update license headers 2015-10-26 14:04:01 +01:00
Joas Schilling 0d3d75b3b3 Increase the 2nd digit of shipped apps 2015-10-17 08:47:11 +02:00
Morris Jobke 8366ce2767 deduplicate @xenopathic 2015-10-06 09:52:19 +02:00
Morris Jobke b945d71384 update licence headers via script 2015-10-05 21:15:52 +02:00
Robin McCorkell 0dc7181335 Merge pull request #18441 from owncloud/ext-backends.advanced
Migrate advanced external storage backends to new registration API [part 3]
2015-09-13 19:38:22 +01:00
Robin McCorkell 82d9829c97 Fire event when BackendService is available 2015-08-31 15:11:45 +01:00
Robin McCorkell 080fafe63a AjaxController uses RSA auth mechanism 2015-08-28 12:58:47 +01:00
Robin McCorkell 1084e3adc7 Migrate SFTP_Key external storage to new API
The SFTP backend now supports public key authentication alongside
password authentication.
2015-08-28 12:58:47 +01:00
Robin McCorkell cb1ef82702 Migrate SMB_OC external storage to new API
SMB_OC has been merged with SMB, via the identifier aliases mechanism.
Legacy migration is done to the Session Credentials password mechanism
2015-08-28 12:58:47 +01:00
Robin McCorkell 19bc5a452a Migrate Swift external storage to new API
The Rackspace/OpenStack differences have been split into separate auth
mechanisms, with correct legacy migration
2015-08-28 12:58:47 +01:00
Robin McCorkell 88a78237b0 Migrate Google external storage to new API 2015-08-25 00:22:10 +01:00
Robin McCorkell a50ef61876 Migrate Dropbox external storage to new API 2015-08-25 00:22:10 +01:00
Robin McCorkell ced04f9ad2 Migrate AmazonS3 external storage to new API 2015-08-25 00:22:10 +01:00
Robin McCorkell d93bf35482 Merge pull request #18408 from owncloud/ext-ocp
Use OCP classes as much as possible in files_external v2
2015-08-20 13:09:12 +01:00
Robin McCorkell d577aad4ac Use OCP classes as much as possible in files_external 2015-08-19 15:26:38 +01:00
Robin McCorkell 16389270ff Migrate SFTP external storage to new API 2015-08-19 14:41:44 +01:00
Robin McCorkell a99e524898 Migrate OwnCloud external storage to new API 2015-08-19 14:41:43 +01:00
Robin McCorkell 68418bdd34 Migrate DAV external storage to new API 2015-08-19 14:41:43 +01:00
Robin McCorkell ab8c738b8d Migrate SMB external storage to new API 2015-08-19 14:41:43 +01:00
Robin McCorkell 0f1809eced Migrate FTP external storage to new API 2015-08-19 14:41:43 +01:00
Robin McCorkell 0ffb51c6cc Migrate Local external storage to new API 2015-08-19 14:41:43 +01:00
Robin McCorkell 3bb793b6a7 Implement password authentication mechanisms
Introduces the basic password authentication mechanism, along with a
mechanism based on ownCloud credentials stored in the user session.

Change to lib/private is an extension of PermissionsMask, as
isSharable() override was missing.

Session credentials auth mechanism now disables sharing on applied
storages, as credentials will not be available.
2015-08-19 14:20:09 +01:00
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