summaryrefslogtreecommitdiffstats
path: root/apps/files_external
Commit message (Collapse)AuthorAgeFilesLines
* [tx-robot] updated from transifexJenkins for ownCloud2015-08-25154-3242/+2794
|
* Merge pull request #18440 from owncloud/ext-backends.customjsMorris Jobke2015-08-2516-308/+529
|\ | | | | Migrate custom JS external storage backends to new registration API [part 2]
| * Migrate Google external storage to new APIRobin McCorkell2015-08-258-147/+201
| |
| * Migrate Dropbox external storage to new APIRobin McCorkell2015-08-258-130/+189
| |
| * Migrate AmazonS3 external storage to new APIRobin McCorkell2015-08-254-27/+109
| |
| * Add on-backend and on-auth-mechanism events to JSRobin McCorkell2015-08-251-4/+30
| |
* | Merge pull request #18445 from owncloud/ext-only-setuservars-stringMorris Jobke2015-08-2511-22/+83
|\ \ | |/ |/| setUserVars() should only attempt substitution with strings
| * Convert string booleans to real booleansRobin McCorkell2015-08-207-17/+76
| | | | | | | | | | Legacy compatibility, from the days in stable8 when checkbox boolean values were stored as the strings 'true' and 'false'.
| * setUserVars() should only attempt substitution with stringsRobin McCorkell2015-08-204-5/+7
| |
* | Replace array_filter() with foreach for PHP <5.6Robin McCorkell2015-08-211-10/+15
| | | | | | | | ARRAY_FILTER_USE_KEY is PHP 5.6+
* | Add availability methods to files_external FailedStorageRobin McCorkell2015-08-201-0/+8
| |
* | Merge pull request #18408 from owncloud/ext-ocpRobin McCorkell2015-08-2012-32/+46
|\ \ | | | | | | Use OCP classes as much as possible in files_external v2
| * | Use OCP classes as much as possible in files_externalRobin McCorkell2015-08-1912-32/+46
| | |
* | | Merge pull request #18437 from owncloud/ext-auth-triggerVincent Petry2015-08-201-0/+9
|\ \ \ | | | | | | | | Trigger storage recheck on auth mechanism change
| * | | Trigger storage recheck on auth mechanism changeRobin McCorkell2015-08-191-0/+9
| | |/ | |/|
* | | Merge pull request #18447 from owncloud/ext-fix-empty-varMorris Jobke2015-08-201-2/+2
|\ \ \ | | | | | | | | Don't use `empty()` with a return value, PHP 5.4
| * | | Don't use `empty()` with a return value, PHP 5.4Robin McCorkell2015-08-201-2/+2
| |/ /
* / / Fix 'Declaration of SessionStorageWrapper::__construct()...'Robin McCorkell2015-08-191-1/+1
|/ /
* | Merge pull request #18432 from owncloud/ext-backends.simpleMorris Jobke2015-08-1912-78/+500
|\ \ | | | | | | Migrate simple external storage backends to new registration API [part 1]
| * | Migrate SFTP external storage to new APIRobin McCorkell2015-08-193-11/+51
| | |
| * | Migrate OwnCloud external storage to new APIRobin McCorkell2015-08-193-13/+53
| | |
| * | Migrate DAV external storage to new APIRobin McCorkell2015-08-193-13/+54
| | |
| * | Migrate SMB external storage to new APIRobin McCorkell2015-08-193-13/+58
| | |
| * | Migrate FTP external storage to new APIRobin McCorkell2015-08-193-13/+54
| | |
| * | Migrate Local external storage to new APIRobin McCorkell2015-08-193-14/+53
| | |
| * | Allow builtin auth mechanism to be overriddenRobin McCorkell2015-08-191-1/+1
| | | | | | | | | | | | | | | | | | The builtin mechanism is used exclusively for legacy external storages, which when upgraded to the new registration need to fallback to the defined legacy authentication mechanism instead.
| * | Implement password authentication mechanismsRobin McCorkell2015-08-194-0/+176
| |/ | | | | | | | | | | | | | | | | | | | | 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.
* / add missing return statements in getSystem/getPersonalMountPointsRobin Appelman2015-08-191-0/+4
|/
* Restrict Local backend to admin-onlyRobin McCorkell2015-08-191-0/+4
|
* Load custom JS for all backends/auth mechanismsRobin McCorkell2015-08-194-16/+30
| | | | | | Loading custom JS on a per-backend basis added needless complexity and made dealing with async required. Now all backends/auth mechanisms load custom JS in PHP
* Propagate auth mechanism/backend failures to filesystem layerRobin McCorkell2015-08-197-23/+291
| | | | | | | | | | | Failure to prepare the storage during backend or auth mechanism manipulation will throw an InsufficientDataForMeaningfulAnswerException, which is propagated to StorageNotAvailableException in the filesystem layer via the FailedStorage helper class. When a storage is unavailable not due to failure, but due to insufficient data being available, a special 'indeterminate' status is returned to the configuration UI.
* Make Application a singletonRobin McCorkell2015-08-196-32/+25
| | | | | The same Application must be used in the settings templates and in routes, so that any registered backends are correctly seen
* Compatibility shims for OC_Mount_ConfigRobin McCorkell2015-08-197-1599/+231
| | | | | | | | | | | | | | | | | | 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
* Unit tests for new backend APIRobin McCorkell2015-08-1911-0/+977
|
* Split backend identifiers from the class nameRobin McCorkell2015-08-1918-172/+327
| | | | | | | | | | | | | Prior to this, the storage class name was stored in mount.json under the "class" parameter, and the auth mechanism class name under the "authMechanism" parameter. This decouples the class name from the identifier used to retrieve the backend or auth mechanism. Now, backends/auth mechanisms have a unique identifier, which is saved in the "backend" or "authMechanism" parameter in mount.json respectively. An identifier is considered unique for the object it references, but the underlying class may change (e.g. files_external gets pulled into core and namespaces are modified).
* Authentication mechanisms for external storage backendsRobin McCorkell2015-08-1925-86/+740
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Introduce UserGlobalStoragesServiceRobin McCorkell2015-08-196-36/+312
| | | | | | | | | | | | | | | | | | UserGlobalStoragesService reads the global storage configuration, cherry-picking storages applicable to a user. Writing storages through this service is forbidden, on punishment of throwing an exception. Storage IDs may also be config hashes when retrieved from this service, as it is unable to update the storages with real IDs. As UserGlobalStoragesService and UserStoragesService share a bit of code relating to users, that has been split into UserTrait. UserTrait also allows for the user set to be overridden, rather than using the user from IUserSession. Config\ConfigAdapter has been reworked to use UserStoragesService and UserGlobalStoragesService instead of OC_Mount_Config::getAbsoluteMountPoints(), further reducing dependance on that horrible static class.
* Introduce BackendService for managing external storage backendsRobin McCorkell2015-08-1931-558/+1638
| | | | | | | | | | | | | | | | | 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).
* update icewind/smb to 1.0.4Robin Appelman2015-08-1711-43/+99
|
* remove travis filesRobin Appelman2015-08-143-66/+2
|
* update icewind/smb to 1.0.3Robin Appelman2015-08-1319-954/+81
|
* Moved core apps to the capabilities managerRoeland Jago Douma2015-08-102-2/+2
| | | | | | | * Files * Files_Sharing * Files_Trashbin * Files_Versions
* Merge pull request #14779 from owncloud/use-iterator-directoryRobin McCorkell2015-08-075-11/+12
|\ | | | | Use the new IteratorDirectory instead of the fakedir wrapper
| * Use the new IteratorDirectory instead of the fakedir wrapperRobin Appelman2015-07-155-11/+12
| |
* | Merge pull request #13641 from owncloud/cache-storage-statusVincent Petry2015-08-071-2/+10
|\ \ | | | | | | Store storage availability in database
| * | Store storage availability in databaseRobin McCorkell2015-07-201-2/+10
| |/ | | | | | | | | | | | | | | Storage status is saved in the database. Failed storages are rechecked every 10 minutes, while working storages are rechecked every request. Using the files_external app will recheck all external storages when the settings page is viewed, or whenever an external storage is saved.
* | Merge pull request #17680 from owncloud/ftp-rmdir-fileVincent Petry2015-08-061-1/+4
|\ \ | | | | | | handle rmdir on files for ftp storages
| * | handle rmdir on files for ftp storagesRobin Appelman2015-07-161-1/+4
| |/
* | Use absolute namespaceLukas Reschke2015-08-052-7/+7
| |
* | Update phpseclib to 2.0Andreas Fischer2015-08-034-20/+23
| |