Commit Graph

5052 Commits

Author SHA1 Message Date
Roeland Jago Douma 77c611d339 Just query the securerandom from the container 2016-01-09 19:57:03 +01:00
Roeland Jago Douma 17a066c18e Properly close db cursors 2016-01-08 20:27:01 +01:00
Roeland Jago Douma 629bac22fd Make sure to respect deleted group shares by user 2016-01-08 20:27:01 +01:00
Roeland Jago Douma c882d46e5f Moved to the query builder
Anything to keep Lukas happy
2016-01-08 20:27:01 +01:00
Roeland Jago Douma 066e3770bb Make sure that permissions stay in sync for share_type 2
When a file/folder is shared with a group and one of the group members
moves this file/folder an extra entry is created in the share table.

When the permission of the group share is updated we used to only
sometimes update the shares for individual users.

* Added intergration tests
2016-01-08 20:27:01 +01:00
Thomas Müller 6ab5ad0593 Merge pull request #21447 from owncloud/leave-disabled-apps-off
Only enable apps that are not intentionally disabled
2016-01-08 18:17:15 +01:00
Thomas Müller 3de81be692 Merge pull request #21494 from owncloud/underscores-in-class-names
Remove underscores from class names - part 1
2016-01-08 18:11:25 +01:00
Thomas Müller 0f281cdd30 Merge pull request #21286 from owncloud/use-owncloud-mail-when-sending-caldav-schedule-mails
Adding IMip scheduling which uses ownClouds mail delivery
2016-01-08 17:58:33 +01:00
Thomas Müller e60dddf57d Merge pull request #21479 from owncloud/fix-broken-state-in-htaccess-test
Remove unneeded check if htaccess test file already exists
2016-01-08 15:53:16 +01:00
Thomas Müller 0f5132552c Merge pull request #21292 from owncloud/checkAppEnabled-not-needed-anymore
core will handle invalid URLs and redirects properly
2016-01-08 13:36:11 +01:00
Thomas Müller 71999ef820 Merge pull request #21139 from owncloud/makeswifturltypeconfigurable
make url type configurable
2016-01-08 12:34:58 +01:00
Thomas Müller b3550db02d Adding IMip scheduling which uses ownClouds mail delivery 2016-01-08 12:21:41 +01:00
Thomas Müller a0345b9465 Merge pull request #21032 from owncloud/router-error-handling
Router error handling + Base.php
2016-01-08 10:06:54 +01:00
Thomas Müller a1a8a06042 Merge pull request #21527 from owncloud/remove_all_avatars
Remove all cache avatars on avatar deletion
2016-01-08 09:41:25 +01:00
Lukas Reschke 9bf01283e7 Cleanup router code
- Some functions are entirely broken
- PHPDoc etc...
2016-01-07 21:29:51 +01:00
Roeland Jago Douma 4e6f6518ff Remove all cache avatars on avatar deletion
Fixes #21513

Since we cache the generated avatars. We should also delete the
generated sizes when we remove the avatar.
2016-01-07 20:51:18 +01:00
Thomas Müller 1cc6fddead Merge pull request #21498 from owncloud/cleanup-OC_DB
Cleanup OC_DB methods
2016-01-07 20:13:16 +01:00
Thomas Müller 46107f82d4 Merge pull request #21506 from owncloud/issue-20218-min-max-owncloud-version-warning
Issue 20218 min max owncloud version warning
2016-01-07 16:51:00 +01:00
Thomas Müller f6f492ba4e Merge pull request #21502 from owncloud/di_mimetypedetector
Add 'OCP\Files\IMimeTypeDetector' to DI container
2016-01-07 16:18:55 +01:00
Thomas Müller 9ca670f94f Merge pull request #21505 from owncloud/allow-downgrades-for-brave-developers
Allow downgrades for our brave developers, that switch between branches
2016-01-07 16:03:36 +01:00
Joas Schilling c55da1fc8d Add a warning to the app:check-code if the version is missing 2016-01-07 15:04:36 +01:00
Thomas Müller 601457d221 Merge pull request #20773 from owncloud/share2.0_create
[Sharing 2.0] create share
2016-01-07 14:57:05 +01:00
Morris Jobke 190cc2bb67 Remove OC_DB::getConnection 2016-01-07 14:54:55 +01:00
Morris Jobke fddece9552 Remove OC_DB::insertid 2016-01-07 14:54:55 +01:00
Morris Jobke 0a41cfefe3 Remove beginTransaction, commit, rollback from OC_DB 2016-01-07 14:54:55 +01:00
Morris Jobke 3917d888bd Remove OC_DB::isError 2016-01-07 14:54:55 +01:00
Morris Jobke 547fbfdb76 Remove OC_DB::dropTable 2016-01-07 14:54:54 +01:00
Joas Schilling fd7ed93937 Allow downgrades for our brave developers, that switch between branches 2016-01-07 14:18:33 +01:00
Roeland Jago Douma cd35ad6aaa Add 'OCP\Files\IMimeTypeDetector' to DI container
* Added test to server container as well
2016-01-07 13:20:43 +01:00
Morris Jobke fa97e3a5a3 OC_TemplateLayout -> OC\TemplateLayout 2016-01-07 09:31:11 +01:00
Morris Jobke c464b32738 OC_DB_MDB2SchemaManager -> OC\DB\MDB2SchemaManager 2016-01-07 09:29:21 +01:00
Morris Jobke 604897945b Move lib/repair to lib/private/repair 2016-01-07 09:14:35 +01:00
Thomas Müller 002161857c Merge pull request #21398 from owncloud/sharing-disabled-cache
Cache isSharingDisabledForUser
2016-01-06 17:23:14 +01:00
Thomas Müller b6bc17d014 Merge pull request #21443 from owncloud/fix-container-lookup
Lookup the App name instead of OCA
2016-01-06 17:22:41 +01:00
Thomas Müller a2c19d3d1a Merge pull request #21444 from owncloud/move-regenerate-below
Move regeneration of session ID into session classes
2016-01-06 17:21:43 +01:00
Roeland Jago Douma 1358e5dcd9 [Sharing 2.0] Some error cases report 404 instead of 403 2016-01-06 15:25:29 +01:00
Roeland Jago Douma 26280e1f19 [Sharing 2.0] Add L10N instance to manager for translated errors 2016-01-06 14:53:43 +01:00
Roeland Jago Douma b15be8f96f [Share 2.0] Make the share manager ready for share creation 2016-01-06 14:53:43 +01:00
Roeland Jago Douma a08c497808 [Share 2.0] Make share provider ready for create shares 2016-01-06 14:53:43 +01:00
Roeland Jago Douma 4f2e84a0ec [Share 2.0] Update share class
More getters and setters are required to properly create shares
2016-01-06 14:53:43 +01:00
Morris Jobke 516a6d7441 Remove unneeded check if htaccess test file already exists
* fixes #20199
2016-01-06 13:45:36 +01:00
Lukas Reschke 88c7face07 Inject OCSClient
Fixes https://github.com/owncloud/core/issues/21451
2016-01-06 11:40:22 +01:00
Jörn Friedrich Dreyer a86e067154 Merge pull request #21442 from owncloud/annotate-type
Annotate type
2016-01-05 12:36:31 +01:00
Jörn Friedrich Dreyer 3f101039b9 add isset for optional params 2016-01-04 16:38:45 +01:00
Joas Schilling 761000624d Only enable apps that are not intentionally disabled 2016-01-04 16:24:52 +01:00
Lukas Reschke fec41e7539 Move regeneration of session ID into session classes
There were code paths that nowadays call ISession::login directly thus bypassing the desired regeneration of the session ID. This moves the session regeneration deeper into the session handling and thus ensures that it is always called. Furthermore, I also added the session regeneration to the remember me cookie plus added some test case expectations for this.
2016-01-04 15:09:01 +01:00
Thomas Müller 70ff90b1ec Merge pull request #21393 from owncloud/fix-urlgenerator-call
No more deprecation messages in error log
2016-01-04 15:00:06 +01:00
Joas Schilling 2cf4e144cc Lookup the App name instead of OCA 2016-01-04 14:47:49 +01:00
Lukas Reschke 26c3fa7911 Annotate type
Otherwise static code scanners will complain about this.
2016-01-04 14:18:01 +01:00
Thomas Müller 42897ac5cb Merge pull request #21402 from owncloud/view-getuserobject-cache
Cache usermanager instance in view
2015-12-30 20:04:51 +01:00
Robin Appelman 45d0396404 Cache sharing disabled in the view 2015-12-30 14:42:22 +01:00
Robin Appelman 2d9d0aedf8 Cache usermanager instance in view 2015-12-30 14:28:53 +01:00
Thomas Müller 9e39e8f1c7 No more deprecation messages in error log 2015-12-29 17:31:28 +01:00
Thomas Müller 9392a555ae Merge pull request #21331 from switch-ch/fix_ms_log
Fix owncloud logging with ms precision
2015-12-29 16:32:52 +01:00
Thomas Müller edd051dc02 Merge pull request #21291 from owncloud/refactor-call-check
Refactor OC_Util::callCheck
2015-12-28 10:21:44 +01:00
Bernhard Posselt 23c754aed3 prefer scalar type hints over phpdoc annotation
use method exists lookup to be safe and not break on old hhvm versions

add test that checks if type hint is preferred over annotation
2015-12-24 09:20:26 +01:00
Christian Schnidrig 7fce06b3f3 When microtime(true) returns a whole number, then the parsing fails.
This patch makes sure, that the value can always be parsed correctly.
2015-12-22 15:06:32 +01:00
Morris Jobke 6f00729124 Refactor OC_Util::callCheck 2015-12-22 09:32:14 +01:00
Thomas Müller 0b913f00c7 Merge pull request #21289 from owncloud/issue-20399-keep-periodic-background-jobs
Do not delete background jobs, in case an exception occured
2015-12-21 09:47:07 +01:00
Lukas Reschke 2c4b9e03e0 Use new APCu API
This one is available since APCu 4.0, since we require APCu 4.0.6 this works fine. Also it brings us PHP 7 compatibility and thus fixes https://github.com/owncloud/core/issues/21095
2015-12-20 11:09:09 +01:00
Thomas Müller 95a255b0d4 Merge pull request #21281 from owncloud/allow-di-for-background-jobs
Allow background jobs to be service names for DI
2015-12-18 16:34:42 +01:00
Thomas Müller 6cdaf754b2 Merge pull request #21290 from owncloud/public-api-usage-getversion
Use OCP\Util::getVersion instead of the internal private implementation
2015-12-18 16:07:01 +01:00
Morris Jobke 2f98f64241 core will handle invalid URLs and redirects properly 2015-12-18 15:51:03 +01:00
Morris Jobke ed98cdf532 Use OCP\Util::getVersion instead of the internal private implementation 2015-12-18 15:26:54 +01:00
Thomas Müller 36cc0528e3 Merge pull request #21288 from owncloud/deprecated_helper_mimetypes
Remove deprecated OC_Helper mimetype functions
2015-12-18 15:23:05 +01:00
Thomas Müller a743047e82 Merge pull request #21283 from owncloud/cleanup_config
Cleanup OC_Config mess
2015-12-18 14:54:38 +01:00
Thomas Müller 50e8773307 Merge pull request #21280 from owncloud/drop-unused-methods
OC_Helper::makeURLAbsolute is not used anymore
2015-12-18 14:49:55 +01:00
Joas Schilling 6b813f56c9 Do not delete background jobs, in case an exception occured
This approach is not valid anymore. It initially was added for jobs
of non existing apps. But jobs of non-existing apps can not be created
so they will never be executed and so this call just catches other
cases which were not intended.

This reverts commit 4f4ad72460.
2015-12-18 14:31:27 +01:00
Joas Schilling a9935bd490 Add methods to interface which have always been required 2015-12-18 14:25:04 +01:00
Joas Schilling 0daed65e14 Allow dependency injection for background jobs 2015-12-18 14:20:30 +01:00
Roeland Jago Douma b460bde7c6 Removed deprecated OC_Helper::mimeTypeIcon function 2015-12-18 14:00:20 +01:00
Joas Schilling 1f197134c8 Look up services in the app container before trying the core container 2015-12-18 13:45:07 +01:00
Joas Schilling 412e4ed3f6 Register app containers in the OC container 2015-12-18 13:45:07 +01:00
Thomas Müller 22d1b1285e Merge pull request #21277 from owncloud/querybuild-joblist
Use the query builder for the joblist queries
2015-12-18 13:44:02 +01:00
Roeland Jago Douma a54be132fc Removed deprecated unsused function OC_Helper::getStringMimeType 2015-12-18 13:43:44 +01:00
Roeland Jago Douma 4f20e3bac0 Removed deprecated OC_Helper::getSecureMimeType 2015-12-18 13:42:59 +01:00
Morris Jobke 450e2f3bd3 Move OC_Helper code to OCP\Util for linkToRemote 2015-12-18 12:00:18 +01:00
Roeland Jago Douma 6fb60815c5 Use SystemConfig internally 2015-12-18 11:53:41 +01:00
Roeland Jago Douma 0a09004d39 Inject Config into SystemConfig 2015-12-18 11:53:41 +01:00
Roeland Jago Douma 82bf99c0cf Get rid of legacy OC_Config
We were still using the lecagy class OC_Config all over the place. Which
was a wrapper around the new class OC\Config
2015-12-18 11:53:41 +01:00
Morris Jobke e42f262d85 properly use OCP\Util instead of OC_Helper 2015-12-18 11:46:21 +01:00
Morris Jobke 3d55569a27 OC_Helper::makeURLAbsolute is not used anymore 2015-12-18 11:37:18 +01:00
Morris Jobke 4af7bf07bf OC_Helper::userAvatarSet is not used anymore 2015-12-18 11:30:30 +01:00
Morris Jobke a18c0983d5 Use TempManager instead of tmpFile 2015-12-18 11:25:33 +01:00
Morris Jobke 90b0831cec Use TempManager instead of tmpFolder 2015-12-18 11:19:53 +01:00
Thomas Müller 9e97bef935 Merge pull request #21268 from owncloud/cleanup-OC_Helper-getFileNameMimeType
Use proper public API for OC_Helper::getFileNameMimeType
2015-12-18 10:15:33 +01:00
Thomas Müller 551e553bf4 Merge pull request #21264 from owncloud/deprecated_oc_user_methods
Cleanup OC_User deprecated methods
2015-12-18 10:15:18 +01:00
Joas Schilling 0f836cfe9e Make sure the interface and the implementation match 2015-12-18 10:04:30 +01:00
Joas Schilling 345e68cafa Use the query builder for the joblist queries 2015-12-18 09:50:23 +01:00
Thomas Müller 1456e910ad Merge pull request #21269 from owncloud/we-shall-cleanup-xml-parser-errors
Assert that there are no xml error left
2015-12-18 09:17:53 +01:00
Thomas Müller 228a75e2ec Merge pull request #21248 from owncloud/deprecated_oc_helper_linkToRoute
Replace deprecated OC_Helper::linkToRoute calls
2015-12-18 07:56:42 +01:00
Roeland Jago Douma 2a280e2fad Remove private deprecated OC_Helper::linkToRoute 2015-12-17 18:46:43 +01:00
Roeland Jago Douma 9fe3d2f1f8 OC_Helper::linkToRoute is deprecated
Replaced all calls to OC_Helper::linkToRoute with
OC::$server->getURLGenerator()->linkToRoute
2015-12-17 18:46:42 +01:00
Thomas Müller b3c8e9ca32 Clear xml errors in updater 2015-12-17 17:46:07 +01:00
Thomas Müller 9b423f3532 Clear xml errors in ocs client 2015-12-17 17:34:15 +01:00
Thomas Müller 62b82cfe4b Clear xml errors 2015-12-17 17:28:44 +01:00
Morris Jobke ecdf88e41b Use proper public API for OC_Helper::getFileNameMimeType 2015-12-17 17:07:48 +01:00
Roeland Jago Douma c64e827f00 Since avatar.js is now essentially empty remove it 2015-12-17 16:32:18 +01:00
Roeland Jago Douma 1f715289bf Removed deprecated function OC_User::deleteUser
Replaced with proper OCP calls
2015-12-17 16:18:40 +01:00
Roeland Jago Douma 9201b9713e Removed unused deprecated methods 2015-12-17 16:18:40 +01:00
Roeland Jago Douma 835911bce5 Removed deprecated private OC_User::createUser
All function calls are replaced with the recommended (which was already
the body of the function).
2015-12-17 16:18:40 +01:00
Roeland Jago Douma 7e44ea5da0 Remove deprecated function OC_User::getManager
Private deprecated function => removed
Replaced all instances with suggested replacement
2015-12-17 16:18:34 +01:00
Thomas Müller 1285b78086 Merge pull request #21200 from owncloud/files-authorizationheader
Use Authorization headers for public webdav in web UI
2015-12-17 15:30:13 +01:00
Thomas Müller e3ed42135d Merge pull request #21240 from owncloud/avatar_speedup
Avatar speedup
2015-12-17 14:43:21 +01:00
Thomas Müller 358b84c21d Merge pull request #21253 from owncloud/deprecated_oc_helper_linkTo
Remove deprecated OC_Helper::linkTo
2015-12-17 14:43:02 +01:00
Thomas Müller 21bd19b6ae Merge pull request #21241 from owncloud/fix_21226
Do not try to get the avatar if there is no user
2015-12-17 12:14:25 +01:00
Roeland Jago Douma 205c239eab Remove deprecated OC_Helper::linkTo function 2015-12-17 11:51:40 +01:00
Roeland Jago Douma 19eeb23b91 OC_Helper::linkTo is deprecated
Replaced with suggested (and calling body of)
2015-12-17 10:53:21 +01:00
Roeland Jago Douma db95c8d512 Do not try to get the avatar if there is no user 2015-12-17 09:14:04 +01:00
Roeland Jago Douma d796c43841 [Avatars] Add function to get the Node of the avatar
Since we usually just get the avatar and stream the content to the users
there is no need to first create an image in memory.
2015-12-16 20:29:02 +01:00
Thomas Müller c92b49c82a Merge pull request #21184 from owncloud/cli-logger-embedded-webserver
Let's print error messages to the builtin webserver console ... makes…
2015-12-16 20:26:29 +01:00
Vincent Petry 064dcc079d Load base64 polyfill in IE and friends 2015-12-14 17:50:33 +01:00
Björn Schießle efc030aa25 don't allow to create a federated share if source and target server are the same 2015-12-14 17:16:14 +01:00
Thomas Müller a7ecb6e984 Let's print error messages to the builtin webserver console ... makes development a bit easier 2015-12-14 12:16:41 +01:00
Robin Appelman 9d732e35e1 Check if user isset in $_REQUEST first 2015-12-14 09:56:52 +01:00
Thomas Müller f831d93f3f Merge pull request #20878 from owncloud/proper-htaccess-support-in-code-signing-checker
Also run .htaccess routine when installing on another system than Apache
2015-12-11 11:46:37 +01:00
Thomas Müller 6317ba8cb4 Merge pull request #21135 from owncloud/add-polyfill
Add polyfills for PHP55, PHP56 and PHP70 functionalities
2015-12-11 11:40:51 +01:00
Thomas Müller 86bd95ea1b Merge pull request #21020 from owncloud/add-directory-slash-to-setup-code
Add DirectorySlash to dynamic .htaccess write
2015-12-11 11:40:32 +01:00
Thomas Müller c14f4e8506 Merge pull request #21045 from owncloud/scrutinizer-patch-1
Scrutinizer Auto-Fixes
2015-12-11 11:39:25 +01:00
Thomas Müller ecc3c174a0 Merge pull request #21128 from owncloud/dav-fopen-non-existing
Dont do a seperate request to check if a file exists when downloading a file from dav external storage
2015-12-11 10:48:22 +01:00
Jörn Friedrich Dreyer eae8500a86 make url type configurable 2015-12-11 10:19:28 +01:00
Lukas Reschke f3360d51c6 Use PHP polyfills 2015-12-11 08:47:36 +01:00
Robin Appelman 97f5c095f4 Dont do a seperate request to check if a file exists for dav->fopen 2015-12-10 17:23:53 +01:00
Thomas Müller ab1ea5ccc4 Merge pull request #21119 from owncloud/make-appconfig-more-robust
Make AppManager->checkAppForUser more robust
2015-12-10 16:44:40 +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
Thomas Müller 7634c45e39 Merge pull request #21086 from owncloud/storage-nocheckavailforgetowner
Do not check storage availability for getOwner
2015-12-10 16:15:52 +01:00
Morris Jobke f5e6c75804 Make AppManager->checkAppForUser more robust
* if the JSON that is stored in the DB is corrupt an error was thrown
* with this change it is properly handled and the app is disabled
2015-12-10 14:53:34 +01:00
Thomas Müller df15d54db6 Merge pull request #21072 from owncloud/db-lock-ttl
Remove all locks after ttl from the db
2015-12-10 13:51:18 +01:00
Thomas Müller 744ef6141b Merge pull request #21073 from owncloud/memcache-lock-ttl
Add ttl for redis based locking
2015-12-10 13:51:01 +01:00
Thomas Müller 9f4ceef7c9 Merge pull request #20984 from owncloud/fix-mysql-setup-unix-socket-master
Add unix_socket support for mysql during initial installation - fixes…
2015-12-10 10:13:49 +01:00
Thomas Müller ea7fe672e8 Merge pull request #20775 from owncloud/comments-manager
add icommentsmanger and icomment implementation
2015-12-09 17:44:40 +01:00
Vincent Petry 4b68dd372d Do not check storage availability for getOwner
Because the owner is always known thanks to the file cache and other
places, we don't need the remote storage to be actually available.
2015-12-09 17:31:14 +01:00
Arthur Schiwon fdd06ba1f8 use getLastInsertId from query builder for convenience 2015-12-09 16:33:34 +01:00
Arthur Schiwon 55a2715eff remove unused use statement 2015-12-09 16:25:42 +01:00
Arthur Schiwon 6af6febad0 php < 5.5 compatible 2015-12-09 16:25:31 +01:00
Thomas Müller d5238b3d3c Don't load commands of apps when in maintenance mode - fixes #20939 2015-12-09 15:15:10 +01:00
Robin Appelman e191953942 Remove all locks after ttl from the db 2015-12-09 14:53:24 +01:00
Robin Appelman 693a3c353e ttl for memcache locking backends that support it 2015-12-09 14:41:15 +01:00
Robin Appelman 0a80bf5573 Add interface for memcache backends that support setting ttl on exisiting keys 2015-12-09 14:39:12 +01:00
Arthur Schiwon 249dc4490f improve PHP doc and remove superflous by reference indicator 2015-12-09 14:34:23 +01:00
Arthur Schiwon 0c1c029571 hardening, add some checks for whitespace-only strings 2015-12-09 14:34:23 +01:00
Arthur Schiwon 9a440c06b0 OC not oc 2015-12-09 14:34:23 +01:00
Arthur Schiwon 9dc4171830 parameter checks for setting actor and object to happen only in one place 2015-12-09 14:34:23 +01:00
Arthur Schiwon 4273689e9f fix usage of empty 2015-12-09 14:34:23 +01:00
Arthur Schiwon e3dbc3d40c different strategy in cleaning up after user was deleted
we do not listen to deletion hooks anymore, because there is no guarantee that they
will be heard - requires that something fetches the CommentsManager first.

Instead, in the user deletion routine the clean up method will be called directly. Same way
as it happens for files, group memberships, config values.
2015-12-09 14:34:23 +01:00
Arthur Schiwon 2ce2de0ae5 add icommentsmanger and icomment implementation
register CommentsManager service, allow override, document in config.sample.php

don't insert autoincrement ids in tests, because of dislikes from oracle and pgsql

specify timezone in null date

only accepts strings for ID parameter that can be converted to int

replace forgotten hardcoded IDs in tests

react on deleted users

react on file deletion

Postgresql compatibility

lastInsertId needs *PREFIX* with the table name

do not listen for file deletion, because it is not reliable (trashbin, external storages)

add runtime cache for comments
2015-12-09 14:34:23 +01:00
Thomas Müller 04f4565fcd Merge pull request #21060 from owncloud/support-for-read-only-config-dir
Add support for read only config dir
2015-12-09 14:32:00 +01:00
Thomas Müller 5c95939bf3 Merge pull request #21061 from owncloud/fix-oracle-last-insert-id-test
Fix the last insert id test by changing to an autoincremen…
2015-12-09 11:53:43 +01:00
Thomas Müller eb14c9dc1e Merge pull request #21056 from owncloud/check-return
Verify return type
2015-12-09 11:29:25 +01:00
Thomas Müller 74e7fb1438 Merge pull request #21055 from owncloud/fix-php-docs-for-console
Fix PHPDoc and check if path does exists
2015-12-09 11:28:53 +01:00
Joas Schilling bef6344b27 Do not quote the table name for lastInsertId() 2015-12-09 11:09:02 +01:00
Thomas Müller bb8dbc291b Merge pull request #21005 from owncloud/verify_password_before_unshare
The ajax code path unshares a link share when updating the password
2015-12-09 10:05:20 +01:00
Thomas Müller bc744ff6de Merge pull request #21038 from owncloud/share-computesharepermissions-notstore
Fix (re)share permission checks in a few code paths
2015-12-09 10:04:56 +01:00
Lukas Reschke b50987165e Add support for read only config dir
We already support the `config_is_read_only` for the config file itself. However not for the whole directory (which is a bug).

This unifies the check in the checkServer routine with the one in base.php. Now one can enable a read only config folder so that ownCloud is not allowed to overwrite it's own source code.

To test this set the whole config folder to read only, clear your session, refresh, see it fails, add the new code, refresh, see it works. Also verify that setup still works fine. (obviously setup does not work with a read only config Also verify that setup still works fine. (obviously setup does not work with a read only config))

Fixes https://github.com/owncloud/core/issues/14455
2015-12-09 08:54:11 +01:00
Lukas Reschke 61da3d530d Verify return type
Can also be null. Silences another security warning...
2015-12-09 07:32:19 +01:00
Lukas Reschke 11e98e2de6 Fix PHPDoc and check if path does exists
Mutes another security warning of some static scanners.
2015-12-09 06:57:24 +01:00
Vincent Petry d0cca6c3ad Add explicit check for groups excluded from sharing
Since isSharable() doesn't do the check for groups excluded from
sharing, adding an explicit check in the sharing code.
2015-12-08 16:48:33 +01:00
Lukas Reschke 7c45eaa70b Add type description
Allows IDEs and static code analyzers. Would have saved me some minutes today :)
2015-12-08 15:20:54 +01:00
Thomas Müller 49095fa4bb Merge pull request #21031 from owncloud/sanitize-findAppInDirectories
Sanitize the appId passed to `findAppInDirectories`
2015-12-08 13:52:04 +01:00
Thomas Müller 45fe8271ab Merge pull request #21030 from owncloud/querybuilder-new-features
Querybuilder new features
2015-12-08 13:51:45 +01:00
Thomas Müller 85409b6701 Merge pull request #20786 from owncloud/systemtags-dav
DAV endpoint for system tags
2015-12-08 13:51:25 +01:00
Vincent Petry 6e4006d139 Add reshare permission checks
Added in isSharable() in incoming remote share.
Added in isSharable() in regular incoming share.
Added in FileInfo to make sure the proper attributes are returned to the
clients.
2015-12-08 13:13:26 +01:00
Vincent Petry e241d26316 Compute share permissions in the view
The share permissions are now computed in the View/FileInfo instead of
storing them directly/permanently on the storage
2015-12-08 13:04:22 +01:00
Joas Schilling 9f98849306 Add a method to the get "to use" table and column name 2015-12-08 11:04:28 +01:00
Thomas Müller fe8dc0bd5e Merge pull request #21022 from owncloud/get-rid-of-by-reference
Get rid of by reference
2015-12-08 11:04:25 +01:00
Lukas Reschke 715f89a9d9 Sanitize the appId passed to `findAppInDirectories`
Would have prevented quite some security bugs in the past. Nice hardening for now.
2015-12-08 10:03:22 +01:00
Joas Schilling a3391248e4 Add select distinct to the query builder 2015-12-08 09:49:21 +01:00
Joas Schilling f2c7acb3c0 Allow getting the last insert id without much hassle 2015-12-08 09:40:20 +01:00
Lukas Reschke 4b293dffe5 Use \OCP\Util::sanitizeHTML instead of \OC_Util::sanitizeHTML 2015-12-08 08:56:47 +01:00
Lukas Reschke 70c228a7cc Get rid of passing a reference
Fixes https://github.com/owncloud/core/issues/14643
2015-12-08 08:56:46 +01:00
Lukas Reschke 8289943a0f Do not trust casting 2015-12-08 08:50:00 +01:00
Lukas Reschke 451ba4ddaa Remove unused repair steps
These ones are not necessary anymore for the new major release.
2015-12-08 08:46:41 +01:00
Lukas Reschke 6ea7410041 Remove legacy check
This one is not required anymore as we have the RepairConfig repair step since November 2014.
2015-12-08 08:44:42 +01:00
Lukas Reschke 8903afec26 Don't write directives from CLI 2015-12-08 08:17:04 +01:00
Lukas Reschke 0a89073c47 Run .htaccess updates in any case
This is the same what we also do in updater.php and thus this aligns the code. Makes the code paths more consistent.
2015-12-08 08:16:24 +01:00
Lukas Reschke 235094ab54 Remove version check out of .htaccess
This can now be achieved using the new code signing.
2015-12-08 08:16:23 +01:00
Lukas Reschke 3bce1b20fe Add DirectorySlash to dynamic .htaccess write
When `DirectorySlash off` is set then Apache will not lookup folders anymore. This is required for example when we use the rewrite directives on an existing path such as  `/core/search`. By default Apache would load `/core/search/` instead `/core/search` so the redirect would fail here.

This leads however to the problem that URLs such as `localhost/owncloud` would not load anymore while `localhost/owncloud/` would. This has caused problems such as https://github.com/owncloud/core/pull/21015

With this change we add the `DirectorySlash off` directive only when the `.htaccess` is writable to the dynamic part of it. This would also make `localhost/owncloud` work again as it would trigger the 404 directive which triggers the redirect in base.php.
2015-12-08 08:10:55 +01:00
Thomas Müller 4100263bd6 Merge pull request #20996 from owncloud/issue-12215-remove-password-reset-when-not-possible
Issue 12215 remove password reset when not possible
2015-12-07 19:55:26 +01:00
Scrutinizer Auto-Fixer 453e1bf66e Scrutinizer Auto-Fixes
This commit consists of patches automatically generated for this project on https://scrutinizer-ci.com
2015-12-07 15:43:36 +00:00
Roeland Jago Douma 780d80d7c3 The ajax code path unshares a link share when updating the password
In order to not mess up existing shares if the password gets verified we
should first fire this validation.
2015-12-07 16:38:49 +01:00
Thomas Müller 663f31b127 Merge pull request #20993 from owncloud/issue-20666-language-always-overwritten
Do not overwrite the language when it's just missing for one app
2015-12-07 16:19:21 +01:00
Joas Schilling 87bc02c6cd Allow specifying a custom reset-password-url 2015-12-07 15:41:40 +01:00
Thomas Müller a9e5faf7d0 Merge pull request #20981 from owncloud/issue-19848-multiple-emails-for-sharelink
Allow sending a share email to multiple users
2015-12-07 15:17:19 +01:00
Joas Schilling f8f3c9ecf9 Remove password reset when the user can not change the password 2015-12-07 15:14:19 +01:00
Joas Schilling c6dbe8ac63 Do not overwrite the language when it's just missing for one app 2015-12-07 14:46:53 +01:00
Thomas Müller d155c8e5fe Add unix_socket support for mysql during initial installation - fixes #20210 2015-12-07 12:00:31 +01:00
Joas Schilling 5b87413792 Allow sending a share email to multiple users 2015-12-07 10:49:34 +01:00
Thomas Müller 764b2932ff Merge pull request #20960 from owncloud/drop-OC_Util-getUrlContent
Remove OC_Util::getUrlContent and replace by proper usage of public i…
2015-12-07 10:21:16 +01:00
Thomas Müller f3d49a89fe Merge pull request #11131 from owncloud/use-phpini-wrapper
Replacing ini_get instances with inigetwrapper usages
2015-12-07 10:20:59 +01:00
Thomas Müller 0c3d97921f Merge pull request #20904 from owncloud/view-mime-filter
Fix mimetype filter in getDirectoryContent
2015-12-07 10:20:43 +01:00
Thomas Müller e1f2965e54 Merge pull request #20949 from owncloud/fix_20892
[Sharing] Properly check if a group already has access
2015-12-07 10:20:05 +01:00
Thomas Müller c1fb9fa483 Merge pull request #20957 from owncloud/use-correct-method-signature
Use correct method signature
2015-12-07 10:18:03 +01:00
Morris Jobke 4548a0aa90 Remove OC_Util::getUrlContent and replace by proper usage of public interfaces 2015-12-04 18:02:47 +01:00
Vincent Petry 316b907a13 Fixed system tags DAV and API and docs 2015-12-04 17:30:50 +01:00
Morris Jobke 46a6c6d70b remove OC_App::getActiveNavigationEntry - not unsed anymore 2015-12-04 17:26:28 +01:00
Morris Jobke e6d4496fc2 Remove unused setActiveNavigationEntry of OC_App - it's also in OCP\App 2015-12-04 17:23:51 +01:00
Lukas Reschke d522797227 Use correct method signature
This function takes only one parameter
2015-12-04 15:52:42 +01:00
Roeland Jago Douma 11d8b336e2 [Sharing] Properly check if a group already has access
The old code check was to liberal resulting in wrong matches if a user
with the same name as the group already had access.

Fixes 20892
2015-12-04 12:22:21 +01:00
Thomas Müller 6034c9142d Merge pull request #20933 from owncloud/more-OC_Config-cleanups
More cleanups of OC_Config usage
2015-12-04 09:06:47 +01:00
Thomas Müller 602b636d3e Merge pull request #20807 from owncloud/dont-append-redirect-url-if-user-is-already-logged-in
Don't append redirect URL if user is logged-in
2015-12-03 16:53:59 +01:00
Morris Jobke c60c793cf2 More cleanups of OC_Config usage 2015-12-03 16:41:23 +01:00
Vincent Petry cc72c6a30d Added dav endpoints for system tags 2015-12-03 15:23:21 +01:00
Morris Jobke aa0265bd34 Replace OC_Config in setup 2015-12-03 14:35:15 +01:00
Thomas Müller 2d1cc8aaeb Merge pull request #19461 from owncloud/reuse_code
reuse code
2015-12-03 13:55:50 +01:00
Robin Appelman 19b2fe6a3a Fix mimetype filter in getDirectoryContent 2015-12-03 13:09:13 +01:00
Thomas Müller e7239b6553 Merge pull request #20872 from owncloud/systemtags-better-not-found-exception
Systemtags better not found exception
2015-12-03 09:26:05 +01:00
Thomas Müller a5c80ba8bc Merge pull request #20894 from owncloud/post-delete-meta-view
Also add metadata for postDelete hooks triggered from the view
2015-12-03 09:24:54 +01:00
Thomas Müller 7fefd4f4d9 Merge pull request #20860 from owncloud/use-user-getEMailAddress-all-over-the-place
User IUser::getEMailAddress() all over the place
2015-12-03 09:21:53 +01:00
Thomas Müller 09600058d0 Merge pull request #20901 from owncloud/get-rid-of-more-legacy-config-stuff
Replace old config code with usage of proper APIs
2015-12-02 21:54:42 +01:00
Thomas Müller dcc7ff09ba Adding unit test for MailNotifications::sendInternalShareMail() 2015-12-02 21:42:14 +01:00
Thomas Müller eebe2b9c23 User IUser::getEMailAddress() all over the place 2015-12-02 21:25:05 +01:00
Thomas Müller df5872ec50 Merge pull request #20719 from owncloud/adding-system-addressbook-of-users
Adding system addressbook for users of this instance - a occ command …
2015-12-02 16:17:58 +01:00
Morris Jobke 37ecde065b Replace old config code with usage of proper APIs 2015-12-02 15:56:59 +01:00
Morris Jobke baecfc4080 Reduce OC_Config usage in lib/
* replaced by proper public interfaces
2015-12-02 14:49:40 +01:00
Thomas Müller 28ceab2f61 Fix endless recursion 2015-12-02 14:44:41 +01:00
Robin Appelman 0062888aaf Also add metadata for postDelete hooks triggered from the view 2015-12-02 13:51:26 +01:00
Thomas Müller 8d218bf3ef Merge pull request #20875 from owncloud/remove-changepropagator
remove old propagation logic
2015-12-02 13:03:31 +01:00
Lukas Reschke 09d9e430d8 Add a trailing slash to generated URLs 2015-12-02 11:27:07 +01:00
Thomas Müller 812a390f32 Merge pull request #20879 from owncloud/check-if-rewrite-base-is-set-if-rewrite-is-active
Check if rewrite base is set if rewrite is active
2015-12-02 10:56:44 +01:00
Thomas Müller c46ea30248 Merge pull request #20865 from owncloud/post-delete-meta
Add metadata to post delete hooks
2015-12-02 10:12:54 +01:00
Thomas Müller f840d8dee7 Merge pull request #20874 from owncloud/allow-di-mimetypedetector
Allow DI for OCP\Files\IMimeTypeDetector
2015-12-02 10:12:35 +01:00
Thomas Müller 0bd0212731 Merge pull request #20877 from owncloud/fix-empty-expirationDate
Check the expiration date for null
2015-12-02 10:12:16 +01:00
Thomas Müller 4c695e63c0 Fix comments 2015-12-02 09:20:58 +01:00
Thomas Müller 0391cc0451 Fix getCloudId 2015-12-02 09:14:41 +01:00
Thomas Müller 6abc02cb88 Proposal: add enumeration function to IUserManager which simply calls a callbask for each user in all backends 2015-12-02 09:14:41 +01:00
Thomas Müller df6fc6cc70 Add the user's cloud id to the vCard 2015-12-02 09:14:41 +01:00
Thomas Müller dad6470baa Add IUser::getAvatarImage() for easy access 2015-12-02 09:14:41 +01:00
Roeland Jago Douma b00db2c933 DI in avatar code
* DI in avatar code
* Use the node API
* More unit tests
* Unit tests no longer require DB
2015-12-01 22:15:43 +01:00
Lukas Reschke 6a067b1ec9 Set RewriteBase to / if OC::WEBROOT is not set 2015-12-01 22:03:25 +01:00
Lukas Reschke 002e719789 Set "SetEnv" within base `.htaccess` file
mod_rewrite as used by the front controller may require a `RewriteBase` in case the installation is done using an alias. Since we cannot enforce a writable `.htaccess` file this will move the `front_controller_active` environment variable into the main .htaccess file. If administrators decide to have this one not writable they can still enable this feature by setting the `front_controller_active` environment variable within the Apache config.
2015-12-01 19:06:48 +01:00
Morris Jobke 3061e5d2fc Check the expiration date for null
* null is always less than any value -> expirationDate gets null
  which is "no date set"
* ref https://github.com/owncloud/core/issues/20590#issuecomment-158393075
2015-12-01 17:43:05 +01:00
Robin Appelman 62cc316c6a remove old propagation logic 2015-12-01 16:50:20 +01:00
Joas Schilling 44852ce324 Allow DI for OCP\Files\IMimeTypeDetector 2015-12-01 16:49:20 +01:00
Lukas Reschke 2515cb17be Support pretty URLs
This changeset allows ownCloud to run with pretty URLs, they will be used if mod_rewrite and mod_env are available. This means basically that the `index.php` in the URL is not shown to the user anymore.

Also the not deprecated functions to generate URLs have been modified to support this behaviour, old functions such as `filePath` will still behave as before for compatibility reasons.

Examples:
http://localhost/owncloud/index.php/s/AIDyKbxiRZWAAjP => http://localhost/owncloud/s/AIDyKbxiRZWAAjP
http://localhost/owncloud/index.php/apps/files/ => http://localhost/owncloud/apps/files/

Due to the way our CSS and JS is structured the .htaccess uses some hacks for the final result but could be worse... And I was just annoyed by all that users crying for the removal of `index.php` ;-)
2015-12-01 16:46:07 +01:00
Thomas Müller 74e8c25a5b Merge pull request #20285 from owncloud/add-integrity-checker
Add code integrity checker foundation
2015-12-01 15:27:50 +01:00
Joas Schilling 1d0c041ac8 Add a method to get the list of tags from the TagNotFound Exception 2015-12-01 14:54:34 +01:00
Robin Appelman 0d63e95a5d Add metadata to post delete hooks 2015-12-01 13:22:58 +01:00
Joas Schilling 1761fdd9ee Fix the docs of the exceptions and remove hardcoded language from the message 2015-12-01 12:32:50 +01:00
Lukas Reschke 4971015544 Add code integrity check
This PR implements the base foundation of the code signing and integrity check. In this PR implemented is the signing and verification logic, as well as commands to sign single apps or the core repository.

Furthermore, there is a basic implementation to display problems with the code integrity on the update screen.

Code signing basically happens the following way:

- There is a ownCloud Root Certificate authority stored `resources/codesigning/root.crt` (in this PR I also ship the private key which we obviously need to change before a release 😉). This certificate is not intended to be used for signing directly and only is used to sign new certificates.
- Using the `integrity:sign-core` and `integrity:sign-app` commands developers can sign either the core release or a single app. The core release needs to be signed with a certificate that has a CN of `core`,  apps need to be signed with a certificate that either has a CN of `core` (shipped apps!)  or the AppID.
- The command generates a signature.json file of the following format:
```json
{
    "hashes": {
        "/filename.php": "2401fed2eea6f2c1027c482a633e8e25cd46701f811e2d2c10dc213fd95fa60e350bccbbebdccc73a042b1a2799f673fbabadc783284cc288e4f1a1eacb74e3d",
        "/lib/base.php": "55548cc16b457cd74241990cc9d3b72b6335f2e5f45eee95171da024087d114fcbc2effc3d5818a6d5d55f2ae960ab39fd0414d0c542b72a3b9e08eb21206dd9"
    },
    "certificate": "-----BEGIN CERTIFICATE-----MIIBvTCCASagAwIBAgIUPvawyqJwCwYazcv7iz16TWxfeUMwDQYJKoZIhvcNAQEF\nBQAwIzEhMB8GA1UECgwYb3duQ2xvdWQgQ29kZSBTaWduaW5nIENBMB4XDTE1MTAx\nNDEzMTcxMFoXDTE2MTAxNDEzMTcxMFowEzERMA8GA1UEAwwIY29udGFjdHMwgZ8w\nDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANoQesGdCW0L2L+a2xITYipixkScrIpB\nkX5Snu3fs45MscDb61xByjBSlFgR4QI6McoCipPw4SUr28EaExVvgPSvqUjYLGps\nfiv0Cvgquzbx/X3mUcdk9LcFo1uWGtrTfkuXSKX41PnJGTr6RQWGIBd1V52q1qbC\nJKkfzyeMeuQfAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAvF/KIhRMQ3tYTmgHWsiM\nwDMgIDb7iaHF0fS+/Nvo4PzoTO/trev6tMyjLbJ7hgdCpz/1sNzE11Cibf6V6dsz\njCE9invP368Xv0bTRObRqeSNsGogGl5ceAvR0c9BG+NRIKHcly3At3gLkS2791bC\niG+UxI/MNcWV0uJg9S63LF8=\n-----END CERTIFICATE-----",
    "signature": "U29tZVNpZ25lZERhdGFFeGFtcGxl"
}
```
`hashes` is an array of all files in the folder with their corresponding SHA512 hashes (this is actually quite cheap to calculate), the `certificate` is the  certificate used for signing. It has to be issued by the ownCloud Root Authority and it's CN needs to be permitted to perform the required action. The `signature` is then a signature of the `hashes` which can be verified using the `certificate`.

Steps to do in other PRs, this is already a quite huge one:
- Add nag screen in case the code check fails to ensure that administrators are aware of this.
- Add code verification also to OCC upgrade and unify display code more.
- Add enforced code verification to apps shipped from the appstore with a level of "official"
- Add enfocrced code verification to apps shipped from the appstore that were already signed in a previous release
- Add some developer documentation on how devs can request their own certificate
- Check when installing ownCloud
- Add support for CRLs to allow revoking certificates

**Note:** The upgrade checks are only run when the instance has a defined release channel of `stable` (defined in `version.php`). If you want to test this, you need to change the channel thus and then generate the core signature:

```
➜  master git:(add-integrity-checker) ✗ ./occ integrity:sign-core --privateKey=resources/codesigning/core.key --certificate=resources/codesigning/core.crt
Successfully signed "core"
```

Then increase the version and you should see something like the following:

![2015-11-04_12-02-57](https://cloud.githubusercontent.com/assets/878997/10936336/6adb1d14-82ec-11e5-8f06-9a74801c9abf.png)

As you can see a failed code check will not prevent the further update. It will instead just be a notice to the admin. In a next step we will add some nag screen.

For packaging stable releases this requires the following additional steps as a last action before zipping:
1. Run `./occ integrity:sign-core` once
2. Run `./occ integrity:sign-app` _for each_ app. However, this can be simply automated using a simple foreach on the apps folder.
2015-12-01 11:55:20 +01:00
Joas Schilling 3c5a6b829e Allow DI the system tag stuff without Application class 2015-11-30 17:08:29 +01:00
Thomas Müller 08248f66ba Merge pull request #20650 from owncloud/systemtags-core
Implement systemtag managers and mapper
2015-11-30 15:38:43 +01:00
Thomas Müller 995ceeb8d9 Merge pull request #20815 from owncloud/avatar-cache-size
cache resized avatars
2015-11-30 14:27:05 +01:00
Thomas Müller fc21aa6c41 Merge pull request #20248 from owncloud/use-phpunit-groups-to-run-database-code-in-isolation
Use phpunit groups to run database code in isolation
2015-11-30 14:25:35 +01:00
Lukas Reschke f4eb15d340 Show error template
Otherwise this leads to an endless redirection in case of a CSRF exception. Also sets user expectation right.
2015-11-30 11:25:52 +01:00
Thomas Müller a94819f4a4 Merge pull request #20809 from owncloud/dont-trust-update-server-message
Don't trust update server
2015-11-30 11:20:30 +01:00
Thomas Müller f9fc254672 Add DB group to some files_external tests
Adding group Db to federation tests and ldap tests

Add group DB to Test_UrlGenerator

Adding group DB to trashbin and versions tests

Adding group DB to Test_Util_CheckServer for pg
2015-11-30 10:55:10 +01:00
Joas Schilling c4bebf66d4 Do not count the entries when we only need to know if it is at least one 2015-11-30 10:20:00 +01:00
Joas Schilling aa1a0a15ea Fix use statements 2015-11-30 10:12:15 +01:00
Thomas Müller 9c1dbaf0ad Merge pull request #20788 from owncloud/catch-missing-route
Dont die when we're missing a route
2015-11-30 10:11:12 +01:00
Joas Schilling 6816b36cdb Add backticks inside function to escape the column 2015-11-30 10:07:00 +01:00