summaryrefslogtreecommitdiffstats
path: root/apps/files_external/lib
Commit message (Collapse)AuthorAgeFilesLines
* Migrate Google external storage to new APIRobin McCorkell2015-08-252-0/+99
|
* Migrate Dropbox external storage to new APIRobin McCorkell2015-08-252-0/+101
|
* Migrate AmazonS3 external storage to new APIRobin McCorkell2015-08-252-0/+105
|
* Add availability methods to files_external FailedStorageRobin McCorkell2015-08-201-0/+8
|
* Merge pull request #18408 from owncloud/ext-ocpRobin McCorkell2015-08-206-25/+26
|\ | | | | Use OCP classes as much as possible in files_external v2
| * Use OCP classes as much as possible in files_externalRobin McCorkell2015-08-196-25/+26
| |
* | Fix 'Declaration of SessionStorageWrapper::__construct()...'Robin McCorkell2015-08-191-1/+1
| |
* | Merge pull request #18432 from owncloud/ext-backends.simpleMorris Jobke2015-08-199-0/+481
|\ \ | | | | | | Migrate simple external storage backends to new registration API [part 1]
| * | Migrate SFTP external storage to new APIRobin McCorkell2015-08-191-0/+50
| | |
| * | Migrate OwnCloud external storage to new APIRobin McCorkell2015-08-191-0/+52
| | |
| * | Migrate DAV external storage to new APIRobin McCorkell2015-08-191-0/+53
| | |
| * | Migrate SMB external storage to new APIRobin McCorkell2015-08-191-0/+52
| | |
| * | Migrate FTP external storage to new APIRobin McCorkell2015-08-191-0/+53
| | |
| * | Migrate Local external storage to new APIRobin McCorkell2015-08-191-0/+49
| | |
| * | Implement password authentication mechanismsRobin McCorkell2015-08-193-0/+172
| |/ | | | | | | | | | | | | | | | | | | | | 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
|/
* Propagate auth mechanism/backend failures to filesystem layerRobin McCorkell2015-08-195-6/+262
| | | | | | | | | | | 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-191-20/+11
| | | | | 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-194-440/+226
| | | | | | | | | | | | | | | | | | 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
* Split backend identifiers from the class nameRobin McCorkell2015-08-196-29/+104
| | | | | | | | | | | | | 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-198-1/+294
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-191-15/+83
| | | | | | | | | | | | | | | | | | 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-1912-211/+958
| | | | | | | | | | | | | | | | | 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).
* 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-033-18/+20
| |
* | Double slash for SMB storage id for compatibilityVincent Petry2015-07-281-1/+4
|/
* Revert "Use OCP classes as much as possible in files_external"Thomas Müller2015-07-026-27/+23
|
* Use OCP classes as much as possible in files_externalRobin McCorkell2015-07-016-23/+27
|
* Merge pull request #15506 from rullzer/core_apps_oc_log2ocp_utilMorris Jobke2015-07-011-2/+2
|\ | | | | Move core apps from OC_Log::write to OCP\Util
| * Move core apps from OC_Log::write to OCP\UtilRoeland Jago Douma2015-05-181-2/+2
| |
* | update license headers and authorsMorris Jobke2015-06-253-1/+2
| |
* | Merge pull request #16940 from owncloud/ext-s3-touchmtimefixThomas Müller2015-06-221-8/+13
|\ \ | | | | | | Properly set mtime on S3 for touch operation
| * | Properly set mtime on S3 for touch operationVincent Petry2015-06-151-8/+13
| |/ | | | | | | | | | | | | | | | | The code was missing the "MetadataDirective". Once added, some other parts of the code failed because the format of mtime was wrong. So this PR uses the RFC format that the S3 library already uses. Additionally, the code path where mtime is null was missing. Now defaulting to the current time.
* | Workaround for empty dir deletion for SFTPVincent Petry2015-06-181-1/+5
| | | | | | | | | | | | | | | | Explicitly clear the stat cache after deleting an empty folder to make sure it is properly detected as deleted in subsequent requests. This works around a problem with phpseclib where the folder is properly deleted remotely but the stat cache was not updated.
* | Skip directory entry in S3 opendirVincent Petry2015-06-151-0/+4
|/ | | | | The result set contains the directory itself, so skip it to avoid scanning a non-existing directory
* Avoid function name collision in dropbox external storageThomas Müller2015-04-201-7/+7
|
* Fix SFTP storage id to be compatible with older idsVincent Petry2015-04-151-1/+9
| | | | | | Remove port from SFTP storage id if it is 22. This will prevent recreating a different storage entry due to id mismatch after upgrade.
* Fix language level incompatibiltiesLukas Reschke2015-04-081-2/+7
| | | | | | Arbitrary expressions in empty are allowed in PHP 5.5 ands upwards. Seems to only affect master. Fixed https://github.com/owncloud/core/issues/15463
* Only escape single quotesLukas Reschke2015-03-311-2/+2
|
* Added rawurlencode for other params in GDrive storageVincent Petry2015-03-311-2/+2
|
* Properly quote file names in listFiles query for GDriveVincent Petry2015-03-311-1/+1
|
* Revert "Properly quote file names in listFiles query for GDrive"Lukas Reschke2015-03-311-2/+2
|
* Merge pull request #15215 from owncloud/ext-gdrivelistfilequotingFrank Karlitschek2015-03-311-2/+2
|\ | | | | Properly quote file names in listFiles query for GDrive
| * Added rawurlencode for other params in GDrive storageVincent Petry2015-03-261-2/+2
| |