Robin Appelman
6affbdc6e7
Add "Global Auth" option to external storage
...
This adds the "Global Auth" option to the external storage implementation, it is basically done by reverting c2c6caee93
from https://github.com/owncloud/core/pull/22468 .
This was taken from owncloud/core which is AGPL licensed. Commited with "icewind@owncloud.com" to keep the license header signature in sync.
![2016-06-21_14-01-06](https://cloud.githubusercontent.com/assets/878997/16228662/9c243136-37b8-11e6-9700-c1076ddb3d17.png )
2016-06-21 14:16:45 +02:00
Vincent Petry
ef5217d6e8
Merge pull request #25173 from owncloud/fix_conversion_issues
...
Fix conversion issues
2016-06-20 17:15:45 +02:00
Juan Pablo Villafáñez
bb24e40bf4
Fix conversion issues
...
Change to phpdoc type for automatic conversion
2016-06-20 14:51:36 +02:00
Vincent Petry
09261fca86
Merge pull request #25010 from owncloud/gdrive-fix-tests
...
Fix GDrive test rename overwrite folder
2016-06-20 11:02:24 +02:00
Vincent Petry
e325209291
Convert Dropbox Forbidden exception to StorageNotAvailableException
2016-06-14 17:38:32 +02:00
Vincent Petry
c51bdd1809
Fix GDrive test rename overwrite folder
2016-06-10 14:53:37 +02:00
Vincent Petry
ac163426ef
Merge pull request #25008 from owncloud/externals_test_with_origin
...
Add support to know where the storage test comes from
2016-06-09 16:21:05 +02:00
Juan Pablo Villafáñez
7d85bed1fc
Change the default value to true instead of null
2016-06-08 12:48:33 +02:00
Vincent Petry
fa9c96ac4f
Fix GDrive file size when mime type doesn't match contents
...
Uploading a txt file with XML contents makes GDrive return the XML mime
type.
This fix makes sure the logic that returns "SPACE_UNKNOWN" for the size
properly rely on the Google Docs mime types.
2016-06-08 09:46:49 +02:00
Juan Pablo Villafáñez
110edd3d3c
Rename variable
2016-06-07 18:25:17 +02:00
Juan Pablo Villafáñez
8526bbb347
Add support to know where the storage test comes from
2016-06-07 16:53:16 +02:00
Vincent Petry
15fffb2b10
Fix GDrive upload file which name might match the one of a folder
...
Whenever a file is uploaded to GDrive, there is a check for that file
with and without extension, due to Google Docs files having no
extension. This logic now only kicks in whenever the detected
extensionless file is really a Google Doc file, not a folder.
This makes it possible again to upload a file "test.txt" in a folder
that also has a folder called "test"
2016-06-07 16:29:23 +02:00
Arthur Schiwon
c9132261c8
implement specific rename handling for SMB
2016-05-31 13:32:11 +02:00
Robin McCorkell
4ea7a349d2
Fix SMB backend registration
2016-05-30 21:25:10 +01:00
Lukas Reschke
aba539703c
Update license headers
2016-05-26 19:57:24 +02:00
Vincent Petry
ae4ee56997
Merge pull request #24814 from owncloud/fix-psr4-external-maste
...
Move Stuff to PSR-4 again
2016-05-25 09:12:17 +02:00
Vincent Petry
e8c3794308
Merge pull request #7897 from owncloud/ext-swiftcaching
...
Added object cache for Swift ext storage
2016-05-24 16:21:30 +02:00
Joas Schilling
794c566244
Move Stuff to PSR-4 again
2016-05-24 16:10:22 +02:00
Vincent Petry
f7d102ccc5
Merge pull request #24799 from owncloud/altyr-117-upstream
...
Update google-api-php-client to 1.1.7
2016-05-24 14:46:10 +02:00
Vincent Petry
648fc8d916
skip google map files ( #24807 )
2016-05-24 14:45:29 +02:00
Robin Appelman
8a40003169
fix phpdoc
2016-05-24 13:58:08 +02:00
Robin Appelman
c031eafd84
Fix cert bundle path
2016-05-24 13:44:43 +02:00
Vincent Petry
f77a11a876
Added object cache for Swift ext storage
...
This avoid calling the remote API for repeated calls to is_dir,
filetype, etc
2016-05-24 13:29:29 +02:00
Vincent Petry
4635ed7748
Fix autoloading for new google SDK lib
2016-05-24 12:22:30 +02:00
Francesco Rovelli
49bec94959
enable autoload of lib in google storage
2016-05-24 12:22:30 +02:00
Joas Schilling
3eba0c479f
Fix import path for 3rdparty dropbox autoloader
...
We moved the file by one level
2016-05-24 12:15:53 +02:00
Joas Schilling
64538740ec
Fix missing imports
2016-05-24 08:41:22 +02:00
Joas Schilling
f14dff680d
Move remaining classes to PSR-4
2016-05-24 08:41:22 +02:00
Joas Schilling
4576891f10
Move Lib\Storage to PSR-4
2016-05-24 08:41:22 +02:00
Joas Schilling
b9fd7d4cc7
Move Config to PSR-4
2016-05-24 08:41:21 +02:00
Joas Schilling
6ea54e73e8
Move Lib\Backend to PSR-4
2016-05-24 08:41:21 +02:00
Joas Schilling
6d7a1b9bd4
Move Lib\Auth to PSR-4
2016-05-24 08:41:21 +02:00
Joas Schilling
328b3c47d7
Move stuff from outside lib/ to PSR-4
2016-05-24 08:41:20 +02:00
Vincent Petry
4728308a9e
Merge pull request #24585 from owncloud/files_external_lazy
...
Load external storage backends/auth mechanisms lazily
2016-05-19 18:08:17 +02:00
Vincent Petry
5585fa0a68
Merge pull request #24630 from owncloud/one-shall-adjust-the-path
...
Use proper path
2016-05-17 10:11:21 +02:00
Robin McCorkell
af0930fe59
Introduce backend/auth mechanism providers
...
Direct registration of backends/auth mechanisms is now deprecated
2016-05-11 21:16:26 +01:00
Lukas Reschke
0d8393178b
Use proper path
...
Fixes https://github.com/owncloud/core/issues/24407
2016-05-03 14:37:50 +02:00
Robin McCorkell
43abe2b648
Add links to load GDrive/Dropbox configuration pages
2016-05-03 11:30:02 +01:00
Robin McCorkell
de98a6e54c
Allow multiple custom JS files
2016-05-03 11:30:02 +01:00
Vincent Petry
4326d73ff6
Fix SMB storage to not normalize UTF8
...
This makes sure that even if a NFD file name exists, it is found by the
storage and will be visible to higher layers. Even though the file will
be discarded anyway there, it gives the scanner a chance to display a
warning at least.
2016-04-29 16:19:53 +02:00
Robin Appelman
baff79cc63
Fix loading the dropbox autoloader
2016-04-15 12:46:47 +02:00
Robin McCorkell
9a78cac2eb
Fix OCA\Files\External\Api namespace
2016-04-14 00:49:47 +01:00
Robin McCorkell
4717605d22
Fix storage backend class namespaces and move to subdir
...
All classes that were previously \OC\Files\Storage\FooBar are now
\OCA\Files_External\Lib\Storage\FooBar
2016-04-14 00:44:28 +01:00
Thomas Müller
690eef26dd
Merge pull request #23274 from Senorsen/add-urlencode-ftp-sftp
...
Add urlencode to username part of ftp and sftp links
2016-03-31 23:18:10 +02:00
Frank Karlitschek
6d40e69e29
Merge pull request #23517 from owncloud/gdrive-stream-download
...
GDrive stream download with RetryWrapper
2016-03-31 21:17:10 +02:00
Thomas Müller
dea3985e86
Merge pull request #23516 from owncloud/dropbox-stream-download
...
Dropbox stream download with RetryWrapper
2016-03-31 20:07:36 +02:00
Thomas Müller
8394985e14
Merge pull request #23672 from owncloud/use-retry-wrapper-for-sftp
...
Use RetryWrapper for SFTP storage
2016-03-31 11:24:47 +02:00
Lukas Reschke
3dc5c59e57
Use RetryWrapper for SFTP storage
...
Equivalent to https://github.com/owncloud/core/pull/23442
Required for making encryption work with external storage reliable.
2016-03-30 22:45:09 +02:00
Vincent Petry
7be541bda1
GDrive stream download with RetryWrapper
2016-03-30 18:39:41 +02:00
Lukas Reschke
bd93722e12
Use the shipped cacerts.pem instead of the global one
...
The one we ship may cause problems since Equifax is not included anymore (SHA-1 certs) are deprecated. We should just be consistent here and also use the certificate file which is used by the other calls in the library.
2016-03-30 16:58:39 +02:00
Vincent Petry
02c2568442
Dropbox stream download with RetryWrapper
2016-03-23 18:06:01 +01:00
Thomas Müller
5e4f9b8627
Merge pull request #23440 from owncloud/fix_22286
...
apply retry wrapper to make sure that we always read/write a complete block
2016-03-22 09:50:05 +01:00
Thomas Müller
2357bbf80a
Merge pull request #23439 from owncloud/smb-permissions
...
properly use smb permissions
2016-03-21 18:05:45 +01:00
Thomas Müller
736b80f0cb
Merge pull request #23323 from owncloud/gdrive-chunkupload
...
Chunk upload for GDrive
2016-03-21 18:02:55 +01:00
Bjoern Schiessle
f761733f17
apply retry wrapper to make sure that we always read/write a complete block
2016-03-21 17:39:43 +01:00
Robin Appelman
8ab70b1231
properly use smb permissions
2016-03-21 14:35:41 +01:00
Thomas Müller
0bc51b9118
Merge pull request #23272 from owncloud/dropbox-downloadnotthefullfileinmemory
...
Fix dropbox storage to not store the whole file in memory
2016-03-17 20:52:41 +01:00
Vincent Petry
5db41dfbed
Only use GDrive chunks when needed
2016-03-17 12:36:47 +01:00
Vincent Petry
aa2674e7e2
Chunk upload for GDrive
...
Instead of storing the WHOLE file in memory in a PHP variable, use the
library's chunk upload support.
2016-03-16 17:57:54 +01:00
Robin Appelman
d498282e12
handle connection errors as storage not available in smb
2016-03-16 13:15:54 +01:00
Senorsen
a6631eceb4
Add urlencode to username part of ftp and sftp links
...
according to #17796
2016-03-16 01:49:40 +08:00
Vincent Petry
ab50ba7a58
Fix dropbox storage to not store the whole file in memory
...
Since the library can only store the full response in memory on
download, we use an alternate client lib and set the correct headers to
be able to stream the content to a temp file.
2016-03-15 18:05:27 +01:00
Robin Appelman
a8db587b1f
move failedstorage to core
2016-03-11 13:15:45 +01:00
Robin Appelman
3bd6fc797d
dont break when there is an invalid share
2016-03-11 13:15:45 +01:00
Lukas Reschke
d14adb2351
Fix compatibility with PHP 5.4
...
Fixes https://github.com/owncloud/core/issues/22960
2016-03-08 18:04:24 +01:00
Vincent Petry
4255dd2b39
Properly set exception in FailedStorage
2016-03-03 14:37:23 +01:00
Robin Appelman
6990100e6e
allow availability recheck for external storages
2016-03-03 14:19:34 +01:00
Lukas Reschke
c353d51810
Remove Scrutinizer Auto Fixer
2016-03-01 17:48:23 +01:00
Lukas Reschke
933f60e314
Update author information
...
Probably nice for the people that contributed to 9.0 to see themselves in the AUTHORS file :)
2016-03-01 17:25:15 +01:00
Thomas Müller
914ac09aae
Merge pull request #22636 from owncloud/fix-ssl-on-external-storages
...
Fix HTTPS support on external storages
2016-02-25 14:36:00 +01:00
Thomas Müller
202bf17e4a
Merge pull request #22604 from owncloud/fix-google-drive-encryption
...
Copy into local file
2016-02-25 14:35:39 +01:00
Lukas Reschke
aebb900cd4
More error handling
2016-02-25 10:12:31 +01:00
Lukas Reschke
3b5ddb417c
Copy into local file
...
Using the Guzzle stream directly here will only return 1739 characters for `fread` instead of all data. This leads to the problem that the stream is read incorrectly and thus the data cannot be properly decrypted => 💣
This approach copies the data into a local temporary file, as done before in all stable releases as well as other storage connectors.
While this approach will load the whole file into memory, this is already was has happened before in any stable release as well. See d608c37c90
for the breaking change.
To test this enable Google Drive as external storage and upload some files with encryption enabled. Reading the file should fail now.
Fixes https://github.com/owncloud/core/issues/22590
2016-02-25 09:40:30 +01:00
Lukas Reschke
db2ddb5441
Properly cast type
...
The current logic is checking whether:
1. The returned value is a boolen
2. The returned value is a string and then matches for "true"
Since the config is now written to the database the data is now a string with the value "1" if HTTPS is set to true. Effectively this option was thus always disabled at the moment, falling back to plain HTTP.
This change casts the data to a boolean if it is defined as boolean.
Fixes https://github.com/owncloud/core/issues/22605
Fixes https://github.com/owncloud/core/issues/22016
2016-02-24 19:58:41 +01:00
Vincent Petry
4829a2d421
Disable sharing by default for external storage mounts
...
This is for newly created mount points.
Migrated mount points will have sharing enabled as before.
2016-02-24 13:58:21 +01:00
Thomas Müller
ae2304f23f
Merge pull request #22405 from owncloud/gdrive-mimetype-and-office-fixes
...
Fix GDrive handling of office files
2016-02-19 09:13:35 +01:00
Thomas Müller
bfd4a9548b
Merge pull request #22408 from owncloud/gdrive-remove-mimetype-detection
...
Fix GDrive mime type detection with encryption
2016-02-18 10:14:01 +01:00
Robin Appelman
c2c6caee93
remove global credentials
2016-02-17 13:55:27 +01:00
Robin Appelman
176fb191b7
remove login credentails and user provided backends
2016-02-16 15:27:55 +01:00
Vincent Petry
d38b71f206
Fix GDrive mime type detection with encryption
...
When encryption is enabled, GDrive would think that all files are text
files. This fix falls back to the extension based detection when a
non-special mime type is returned
2016-02-15 17:09:08 +01:00
Vincent Petry
075dd54f6c
Fix GDrive handling of office files
...
1) Properly detect empty file extension, can be null.
2) When renaming part file to final file, use the correct file name
without extension, if it exists
3) When renaming a file, do not delete the original file if it had the
same id, which can happen with part files
2016-02-15 16:49:12 +01:00
Robin Appelman
edbe5d7b6d
handle forbidden exceptions in smb backend
2016-02-10 16:52:13 +01:00
Robin Appelman
87179eaae2
Add tests
2016-02-08 15:53:46 +01:00
Robin Appelman
678a3abf6d
handle no user set for personal global auth
2016-02-08 13:45:52 +01:00
Robin Appelman
54d2175bf5
Add occ files_external:create command to add new mounts
2016-02-05 14:20:22 +01:00
Thomas Müller
342c2aac98
Merge pull request #20920 from owncloud/issue_20888
...
Add dialog to enter credentials on errored mount point
2016-02-05 10:05:23 +01:00
Robin Appelman
b7d27ab141
fix warning caused by global auth
2016-02-04 16:53:13 +01:00
Robin Appelman
d83b1f3b8b
fix error code for unconfigured user provided auth
2016-02-04 16:47:41 +01:00
Robin Appelman
b12d449ec7
set read permissions on failed mount root
2016-02-04 16:41:27 +01:00
Robin Appelman
e420ae068c
handle exception in availibilty check
2016-02-04 16:33:08 +01:00
Robin Appelman
2e3a5ccaaa
show failed external storages properly
2016-02-04 16:33:08 +01:00
Jesús Macias
8fa96435b0
Add credentials dialog for user provided auth
2016-02-04 16:33:08 +01:00
Robin Appelman
9dfe9f77f2
Add global auth backend for files external
2016-02-04 14:57:17 +01:00
Robin Appelman
f4e1a1677b
Remove magic flags from files_external backend params
2016-02-02 15:10:59 +01:00
Vincent Petry
04b88b4aaa
Reword external storage auth backends
2016-02-01 12:20:21 +01:00
Robin Appelman
d0f5687687
Dont set null values when validating storage definition
2016-01-29 14:51:30 +01:00
Robin Appelman
efcf790eff
minor fixes
2016-01-29 14:51:30 +01:00
Robin Appelman
03c79ac24f
remove custom controler for user provided password auth
2016-01-29 14:51:30 +01:00
Robin Appelman
5bdcd534b1
dont show user provided auth as option for personal mounts
2016-01-29 14:51:30 +01:00
Robin Appelman
860d51487b
Allow setting user provided credentials from the personal settings page
2016-01-29 14:51:30 +01:00
Robin Appelman
419507c118
Add user provided credentials mechanism
2016-01-29 14:50:52 +01:00
Robin Appelman
adbc5a0b41
Fix invalid storages not showing in directory listing
2016-01-29 14:50:52 +01:00
Robin Appelman
54e58b520c
Handle no user set in sftp constructor
2016-01-26 14:48:45 +01:00
Thomas Müller
0a4142d5df
Merge pull request #19002 from UoM-ResPlat-DevOps/swift-streaming-download
...
Streaming download from Swift in files_external
2016-01-22 17:27:41 +01:00
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 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
Vincent Petry
d608c37c90
Use Guzzle stream to download files from GDrive
...
The API library does not support streaming and always reads the full
file into memory.
This workaround copies the signed headers to a Guzzle request and
returns the response as stream.
2016-01-14 17:52:30 +01:00
Thomas Müller
5565b19382
Merge pull request #21648 from owncloud/smb-statcache-cap
...
cap the number of entries we cache in smb's statcache
2016-01-13 10:33:43 +01:00
Thomas Müller
682821c71e
Happy new year!
2016-01-12 15:02:18 +01:00
Robin Appelman
d8d6368dd7
cap the number of entries we cache in smb's statcache
2016-01-12 13:26:58 +01:00
Daniel Tosello
8783eb99f7
Modified swift handling to explicitly set 404 responses to false
2016-01-12 16:47:52 +11:00
Thomas Müller
d7d0cfc775
Merge pull request #21008 from owncloud/UoM-ResPlat-DevOps-swift-acl-shared-containers
...
Allowing access to Swift containers shared by ACL
2016-01-08 20:13:13 +01:00
Robin Appelman
88bfe1477d
Filter getStorage to make sure the user has access to it
2016-01-08 15:30:45 +01:00
Tim Dettrick
8799d5563f
Allowing access to Swift containers shared by ACL
...
To avoid a confusing extra field, the bucket field is overloaded to
optionally take a URL.
2016-01-08 11:42:28 +01:00
Robin McCorkell
fc52327d2c
Check libsmbclient-php as well as smbclient binary
2016-01-07 08:56:45 +01:00
Thomas Müller
24271cf953
Merge pull request #21216 from owncloud/fopen-statcache
...
Clear SMB statcache after fopen
2015-12-28 10:21:26 +01:00
Robin Appelman
667d7383e1
clear statcache after fopen for smb
2015-12-15 14:24:02 +01:00
Robin Appelman
f27e98a3e2
Migrate files external for the user that the filesystem is being setup for
2015-12-14 13:38:54 +01:00
Scrutinizer Auto-Fixer
ffc49a24f0
Scrutinizer Auto-Fixes
...
This commit consists of patches automatically generated for this project on https://scrutinizer-ci.com
2015-12-10 16:43:37 +01:00
Daniel Tosello
41f1feaf23
Fixing swift fopen by ensuring stream is a valid resource
2015-12-10 16:40:17 +11:00
Tim Dettrick
cb9a4d4cdc
Streaming download from Swift external storage
...
Speeds up downloads as they no longer need to buffer completely on the
ownCloud server before being sent to the client.
2015-12-10 15:55:45 +11:00
Thomas Müller
bffd7a1d93
Merge pull request #21059 from owncloud/remove-deaed-code-mount-config
...
Remove dead code
2015-12-09 13:05:14 +01:00
Thomas Müller
51b5498be8
Merge pull request #21003 from owncloud/personal-mount-mountid
...
Dont set the string storage id to the numeric storage id for personal mounts
2015-12-09 10:05:36 +01:00
Lukas Reschke
025f021fd4
Remove dead code
...
Silences two other security warnings, also I cleaned up the PHPDoc a little bit.
2015-12-09 08:18:47 +01:00
Lukas Reschke
f55a56ff6c
Use proper PHPDoc reference
2015-12-08 09:45:20 +01:00
Thomas Müller
7dd1874188
Merge pull request #20980 from owncloud/UoM-ResPlat-DevOps-swift-improved-fopen
...
Improving fopen behaviour for Swift backend
2015-12-07 16:50:07 +01:00
Robin Appelman
eec4f82cf0
Dont set the string storage id to the numeric storage id for personal mounts
2015-12-07 16:15:37 +01:00
Scrutinizer Auto-Fixer
97f9213da9
Scrutinizer Auto-Fixes
...
This commit consists of patches automatically generated for this project on https://scrutinizer-ci.com
2015-12-07 12:05:27 +00:00
Thomas Müller
e44b164f40
Merge pull request #20569 from owncloud/issue_20427
...
Show external storage status in file list + prompt credentials if different
2015-12-07 10:27:35 +01:00
Tim Dettrick
35ab7f0e64
Improving fopen behaviour for Swift backend
2015-12-07 10:20:09 +01:00
Robin Appelman
a1898dc2bf
db config backend for files_external
2015-12-04 13:48:21 +01:00
Jesus Macias Portela
dcfbbe4737
Merge branch 'master' into issue_20427
2015-12-03 12:35:49 +01:00
Jesús Macias
98f5c50aa4
Migrate storate status code to storagenotavailablexception
2015-12-03 09:59:45 +01:00
Jesús Macias
332c6748f9
Delete unnecessary storage status constans
2015-12-03 09:58:10 +01:00
Jesús Macias
b17f26834d
Add different storage status codes managed by StoragedNotAvailableException
2015-12-03 09:57:54 +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
Thomas Müller
d6da0396d0
Adjust patches
2015-11-30 23:00:51 +01:00
Scrutinizer Auto-Fixer
dcbd603514
Scrutinizer Auto-Fixes
...
This commit consists of patches automatically generated for this project on https://scrutinizer-ci.com
2015-11-30 22:50:09 +01:00
Lukas Reschke
6614ea91c3
Fix some PHPDocs
...
Some classes included via `use` did not even exist anymore.
2015-11-28 13:17:34 +01:00
Robin Appelman
67710e62fa
Fix parsing of sftp hosts when using ipv6
2015-11-16 14:56:03 +01:00
Jesús Macias
394d3eb0cd
First working approach to show mount status
2015-11-12 13:40:28 +01:00
Vincent Petry
51d7527595
Properly throw exception in OC_Mount_Config::getBackendStatus
2015-11-06 12:29:24 +01:00
Thomas Müller
7d96f82659
Merge pull request #19000 from UoM-ResPlat-DevOps/swift-squelch-expected-404-errors
...
Don't log expected Swift 404 responses in files_external
2015-10-29 11:26:24 +01:00
Thomas Müller
911613f711
Merge pull request #19100 from owncloud/ext-tooltip-unavailable
...
Display external storage status as tooltip
2015-10-29 11:25:52 +01:00
Thomas Müller
92e63a802c
Merge pull request #19758 from owncloud/ext-fallback-getmimetype
...
Fallback to default mimetype detection mechanism
2015-10-28 14:50:19 +01:00
Robin McCorkell
9a4d37f626
Display storage status as tooltip
2015-10-23 15:25:07 +02:00
Thomas Müller
257ccfa698
Merge pull request #19877 from owncloud/dropbox-fixmetadatacachepaths
...
Fix Dropbox metadata cache with trimmed paths
2015-10-20 15:17:28 +02:00
Vincent Petry
d795643ef9
Fix Dropbox metadata cache with trimmed paths
...
Makes sure that the paths are trimmed to avoid duplicate entries like
"/test" and "test". This should make this storage slightly faster by
reducing the cache misses.
2015-10-19 20:52:15 +02:00
Vincent Petry
796179af00
Remove Dropbox metadata from cache after upload
...
This will make sure that the next calls that read the mtime will get the
correct value.
2015-10-16 13:47:00 +02:00
Vincent Petry
915d37f226
Fallback to default mimetype detection mechanism
2015-10-13 16:44:01 +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
Bjoern Schiessle
0ce28a574a
if mountpoint is applicable to all users the old API expects a array with 'all'
2015-10-02 16:17:28 +02:00
Robin McCorkell
2404333300
Perform visibility checks on storages
...
StoragesService::getStorages() will check the visibility of the backend
and auth mechanism for the storage, and if either are not visible to the
user (aka disabled by admin) then the storage will be filtered out. The
original method StoragesService::getAllStorages() still exists in case
such storages need to be detected, but its use is discouraged.
2015-09-23 16:00:11 +01:00
Robin McCorkell
634c1c497c
Mark SMB_OC and SFTP_Key as deprecated backends
2015-09-23 12:10:02 +02:00
Robin McCorkell
060d169615
Add deprecation mechanic to IdentifierTrait
...
Deprecation allows a backend/auth mechanism to designate an object that
it deprecates to, allowing clean transitions to updated codebases.
2015-09-23 12:10:02 +02:00
Robin McCorkell
38a260e963
Revert "Implement more fine-grained external storage permissions model"
...
This reverts commit 0b97a05e7b
.
This reverts commit d2e3c17c00
.
This reverts commit cc88c5f4b8
.
2015-09-23 12:10:02 +02:00
Martin
491250320a
Replaces if ($file === '.' || $file === '..') by if(\OC\Files\Filesystem::isIgnoredDir($file)). Eases to find where this operation is used.
2015-09-22 17:53:15 +02:00
Thomas Müller
e37ee9a814
Merge pull request #19069 from owncloud/ext-s3-ceph
...
AmazonS3 automatic tests
2015-09-18 11:11:05 +02:00
Thomas Müller
9803d68e55
Merge pull request #19090 from owncloud/ext-priority-logic
...
Properly implement external mount priorities
2015-09-17 18:11:53 +02:00
Robin McCorkell
b8cded6755
Correct manipulateStorageConfig parameter
2015-09-17 00:24:01 +01:00
Robin McCorkell
ca7b4a42f9
Fix external storage priority logic
2015-09-16 13:12:47 +01:00
Robin McCorkell
7fc545470c
Make AmazonS3 path style actually work
2015-09-16 02:02:59 +01:00
Robin McCorkell
0667c4363d
Merge branch 'master' into smb-workgroup
2015-09-15 19:36:43 +01:00
Lukas Reschke
4a777d686b
Merge pull request #18966 from owncloud/ext-remove-numeric-id
...
Remove storing storage_id in mount.json
2015-09-14 15:04:23 +02:00
Tim Dettrick
1b582ba66b
Don't log expected Swift 404 responses
...
File existence checks are expected in some cases to be false, so passing
404 Not Found errors through to the logs just causes noise.
2015-09-14 11:12:52 +10:00
Robin McCorkell
522619f90e
Fix dependency check for Swift and SMB_OC
...
Mistake caused during merging, where the API had changed
2015-09-13 21:41:02 +01: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
57e49d2005
Merge pull request #18733 from owncloud/ext-dependencycheck
...
Make checkDependencies a real method
2015-09-11 09:46:40 +01:00
Robin McCorkell
d67251fe4c
Remove storing storage_id in mount.json
...
One mount configuration does not necessarily map to a single storage,
due to `$user` substitution or special auth mechanisms.
2015-09-10 22:09:42 +01:00
Robin McCorkell
442f5269ef
Fix Swift legacy auth mechanism fallback
2015-09-03 09:57:29 +01:00
Robin McCorkell
e33d7b34fa
Fix typo in SMB_OC
2015-09-03 09:57:18 +01:00
Vincent Petry
601c61fddf
Merge pull request #12088 from AdamWill/google-opendir-root
...
[WIP] google: drop duplicate path trim from opendir()
2015-09-01 13:36:27 +02:00
Robin McCorkell
cd506f210d
Make checkDependencies a real method
...
Replace ->setDependencyCheck(callable) with a real method
checkDependencies(). A polyfill is available for legacy storages.
2015-09-01 10:25:33 +01:00
Robin McCorkell
0b97a05e7b
Prevent creation of deprecated backends
2015-08-28 17:43:41 +01:00
Robin McCorkell
cc88c5f4b8
Implement more fine-grained external storage permissions model
...
VisibilityTrait -> PermissionsTrait
PermissionsTrait stores two sets of data, $permissions and
$allowedPermissions (analogous to $visibility and $allowedVisibility of
VisibilityTrait). Each set is a map of user type ('admin' or 'personal')
to permissions (mounting permission, create permission).
The result is that a backend can now be restricted for creation, while
still allowing it to be mounted. This is useful for deprecating backends
or auth mechanisms, preventing new storages being created, while still
allowing existing storages to be mounted.
2015-08-28 17:21:58 +01:00
Robin Appelman
d14252d9c7
make sure we actually have an object store
2015-08-28 16:13:19 +02: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
Morris Jobke
494c1d7417
Merge pull request #18440 from owncloud/ext-backends.customjs
...
Migrate custom JS external storage backends to new registration API [part 2]
2015-08-25 11:52:56 +02:00
Morris Jobke
424759908d
Merge pull request #18445 from owncloud/ext-only-setuservars-string
...
setUserVars() should only attempt substitution with strings
2015-08-25 08:43:01 +02: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
6379b1932f
Allow domain to be specified for SMB
2015-08-21 10:30:42 +01:00
Robin McCorkell
5ded5c6fc1
Add availability methods to files_external FailedStorage
2015-08-20 22:47:57 +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
643e3a5b6d
Convert string booleans to real booleans
...
Legacy compatibility, from the days in stable8 when checkbox boolean
values were stored as the strings 'true' and 'false'.
2015-08-20 12:23:12 +01:00
Robin McCorkell
62d328525a
setUserVars() should only attempt substitution with strings
2015-08-20 02:19:03 +01:00
Robin McCorkell
8cd47e4f03
Fix 'Declaration of SessionStorageWrapper::__construct()...'
2015-08-19 20:14:56 +01:00
Morris Jobke
b3356b1288
Merge pull request #18432 from owncloud/ext-backends.simple
...
Migrate simple external storage backends to new registration API [part 1]
2015-08-19 20:04:20 +02:00
Robin McCorkell
d577aad4ac
Use OCP classes as much as possible in files_external
2015-08-19 15:26:38 +01:00
Robin Appelman
273c776eb7
add missing return statements in getSystem/getPersonalMountPoints
2015-08-19 16:26:33 +02: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
b6eb952ac6
Propagate auth mechanism/backend failures to filesystem layer
...
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.
2015-08-19 10:08:23 +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
1eeca031f8
Split backend identifiers from the class name
...
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).
2015-08-19 10:05:11 +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
a6a69ef1df
Introduce UserGlobalStoragesService
...
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.
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
Robin McCorkell
214729a552
Merge pull request #14779 from owncloud/use-iterator-directory
...
Use the new IteratorDirectory instead of the fakedir wrapper
2015-08-07 22:16:47 +01:00
Vincent Petry
b3a1aef934
Merge pull request #13641 from owncloud/cache-storage-status
...
Store storage availability in database
2015-08-07 17:31:03 +02:00
Vincent Petry
4c9f55a325
Merge pull request #17680 from owncloud/ftp-rmdir-file
...
handle rmdir on files for ftp storages
2015-08-06 18:05:28 +02:00
Lukas Reschke
99224905d8
Use absolute namespace
2015-08-05 10:30:39 +02:00
Andreas Fischer
3b803db6d8
Update phpseclib to 2.0
2015-08-03 09:43:45 +02:00
Vincent Petry
761ba344b7
Double slash for SMB storage id for compatibility
2015-07-28 11:41:54 +02:00
Robin McCorkell
df19cabb44
Store storage availability in database
...
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.
2015-07-20 16:27:26 +01:00
Robin Appelman
db89d1cec8
handle rmdir on files for ftp storages
2015-07-16 15:44:10 +02:00
Robin Appelman
da951ba059
Use the new IteratorDirectory instead of the fakedir wrapper
2015-07-15 13:57:53 +02:00
Thomas Müller
079e9cecba
Revert "Use OCP classes as much as possible in files_external"
2015-07-02 13:00:21 +02:00
Robin McCorkell
728a22cda1
Use OCP classes as much as possible in files_external
2015-07-01 09:08:28 +02:00
Morris Jobke
044d2ece07
Merge pull request #15506 from rullzer/core_apps_oc_log2ocp_util
...
Move core apps from OC_Log::write to OCP\Util
2015-07-01 08:53:16 +02:00
Morris Jobke
f63915d0c8
update license headers and authors
2015-06-25 14:13:49 +02:00
Thomas Müller
25581c7b63
Merge pull request #16940 from owncloud/ext-s3-touchmtimefix
...
Properly set mtime on S3 for touch operation
2015-06-22 22:25:45 +02:00
Vincent Petry
e15dd783ab
Workaround for empty dir deletion for SFTP
...
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.
2015-06-18 17:40:38 +02:00
Vincent Petry
f98030020f
Properly set mtime on S3 for touch operation
...
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.
2015-06-15 17:35:09 +02:00
Vincent Petry
d3f828af45
Skip directory entry in S3 opendir
...
The result set contains the directory itself, so skip it to avoid
scanning a non-existing directory
2015-06-15 17:30:09 +02:00
Roeland Jago Douma
7a8072e958
Move core apps from OC_Log::write to OCP\Util
2015-05-18 10:57:52 +02:00
Thomas Müller
a637bd7f2b
Avoid function name collision in dropbox external storage
2015-04-20 14:56:51 +02:00
Vincent Petry
a6c5d65fd6
Fix SFTP storage id to be compatible with older ids
...
Remove port from SFTP storage id if it is 22.
This will prevent recreating a different storage entry due to id
mismatch after upgrade.
2015-04-15 16:25:47 +02:00
Lukas Reschke
c3c50fb481
Fix language level incompatibilties
...
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
2015-04-08 13:55:10 +02:00
Lukas Reschke
c052ee7584
Only escape single quotes
2015-03-31 15:30:49 +02:00
Vincent Petry
7036309e22
Added rawurlencode for other params in GDrive storage
2015-03-31 15:14:08 +02:00
Vincent Petry
5c9998179f
Properly quote file names in listFiles query for GDrive
2015-03-31 15:14:03 +02:00
Lukas Reschke
53f67fc65d
Revert "Properly quote file names in listFiles query for GDrive"
2015-03-31 15:12:35 +02:00
Frank Karlitschek
b216b3fad0
Merge pull request #15215 from owncloud/ext-gdrivelistfilequoting
...
Properly quote file names in listFiles query for GDrive
2015-03-31 09:08:59 -04:00
Robin McCorkell
308a43a10e
Merge pull request #15076 from owncloud/fix-smb-oc-admin
...
Support constructing an SMB_OC without saved session credentials
2015-03-30 15:38:22 +01:00
Robin McCorkell
c2909355bf
Merge pull request #14925 from owncloud/ext-mountoptions-ui
...
Mount options GUI for external storage
2015-03-26 21:36:34 +00:00
Vincent Petry
58b4c2c0e5
Make sure mountOptions keep their data type
...
str_replace for $user substitution was converting the data type of
mountOptions to string. This fix prevents this to happen by making sure
only strings are processed by substitution.
Also added a int conversion when reading the watcher policy
2015-03-26 19:24:37 +01:00
Vincent Petry
534892d456
Added rawurlencode for other params in GDrive storage
2015-03-26 13:57:28 +01:00
Vincent Petry
43588fe2f7
Properly quote file names in listFiles query for GDrive
2015-03-26 12:15:02 +01:00
Jenkins for ownCloud
b585d87d9d
Update license headers
2015-03-26 11:44:36 +01:00
Robin McCorkell
1f3fdf17ef
Support constructing an SMB_OC without saved session credentials
2015-03-20 16:24:30 +00:00
Vincent Petry
e44ab2dcfe
Merge pull request #11884 from owncloud/ext-appframework
...
Cleanup ext storage CRUD code, introduce storage config id
2015-03-20 14:17:32 +01:00
Robin McCorkell
c37913b1d5
Introduce async status checking
2015-03-20 09:48:14 +00: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
5b6ecb2d98
Fix root request path for Dropbox
2015-03-17 10:56:24 +01:00
Vincent Petry
72632ad402
Generate storage config ids when missing
...
When reading in old mount.json files, they do not contain config ids.
Since these are needed to be able to use the UI and the new service
classes, these will be generated automatically.
The config grouping is based on a config hash.
2015-03-16 12:18:01 +01:00
Vincent Petry
fb4cf53253
Fix mount config unit tests
...
Fix expected result now that it returns the status.
Added isset for some properties that are not always present.
2015-03-13 17:43:38 +01:00
Vincent Petry
34c8b1ac77
Mount options for ext storage are now passed around
...
The mount options are now passed to the UI and stored in a hidden field.
The ext storage controllers and services also know how to load/save them
from the legacy config.
2015-03-13 12:49:11 +01:00