Commit Graph

4764 Commits

Author SHA1 Message Date
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
Robin Appelman 6b7e748245 cache resized avatars 2015-11-28 17:33:16 +01:00
Lukas Reschke f3e9106864 Don't trust update server
In case the update server may deliver malicious content this would allow an adversary to inject arbitrary HTML into the response. So very bad stuff.

While signing the response would be better and something we can also do in the future (considering the code signing work), this is already a good first start.
2015-11-28 12:21:53 +01:00
Robin Appelman 4c4331982c Merge pull request #20789 from owncloud/scanner-skip-not-available
Skip unavailable storages in scanner
2015-11-27 22:57:47 +01:00
Vincent Petry b666367a79 Added system tags data structure and PHP side managers
Added SystemTagManager and SystemTagObjectMapper
2015-11-27 17:54:29 +01:00
Robin Appelman b05c8faba8 Dont die when we're missing a route 2015-11-27 14:29:06 +01:00
Robin Appelman 816cd66b4b also log exception 2015-11-27 14:28:15 +01:00
Thomas Müller bdbefe17d6 Merge pull request #20782 from mitar/better-https
Also allow empty value for no-HTTPS
2015-11-27 14:24:23 +01:00
Robin Appelman ae71f80f4a Skip unavailable storages in scanner 2015-11-27 14:02:50 +01:00
Mitar 59511d97ee Also allow empty value for no-HTTPS.
This makes it work better with old version of Nginx.
2015-11-27 01:01:56 -08:00
Morris Jobke 7aed592957 Add full interface of server container as alias 2015-11-26 18:20:25 +01:00
Thomas Müller 8fe878afe9 Merge pull request #20602 from owncloud/fix-installed-apps
Always installed apps includes the hardcoded ones from shipped.json
2015-11-26 16:50:05 +01:00
Thomas Müller 80c43ffc6c Merge pull request #20702 from owncloud/move-user-principal-into-subfolder
Users are available under it's own principal resource named 'principa…
2015-11-26 16:49:49 +01:00
Thomas Müller 19d5059109 Merge pull request #20393 from owncloud/querybuilder-select-with-alias
Add a method to select a field or value with alias
2015-11-26 16:19:20 +01:00
Morris Jobke 675417a75c Untangle the linkToDocs method in OC_Helper
* now uses the proper URLGenerator interface
* add comment about DI problems
2015-11-26 13:58:43 +01:00
Thomas Müller 3882cc8ef3 Merge pull request #20744 from owncloud/oc_helper-getMimeType-cleanup
Remove last occurences of OC_Helper::getMimeType()
2015-11-26 12:37:25 +01:00
Thomas Müller 5a33390a69 Merge pull request #20731 from owncloud/per-storage-updater
Make Cache\Updater per storage
2015-11-26 12:01:44 +01:00
Morris Jobke 0b8296a756 remove unused method 2015-11-26 10:58:30 +01:00
Morris Jobke 4fcab98694 Remove unused internal methods
* removes OC_Helper::mb_substr_replace and OC_Helper::mb_str_replace
* keeps public interface wrapper working as expected
2015-11-26 10:25:43 +01:00
Morris Jobke 9318606faf Remove last occurences of OC_Helper::getMimeType()
* ref #4774
2015-11-26 10:18:32 +01:00
Thomas Müller b799e42b4e Introduce \OCP\IUser::getEMailAddress() 2015-11-25 22:23:34 +01:00
Thomas Müller 9ec2f8886e Merge pull request #20691 from owncloud/share2.0_di_fixes
[Sharing 2.0] di fixes
2015-11-25 15:25:50 +01:00
Thomas Müller afe76840f8 Merge pull request #20705 from owncloud/fix_20648
Fix overriding function from 3rdparty warning
2015-11-25 15:24:20 +01:00
Robin Appelman b025f07fb7 Make Cache\Updater per storage 2015-11-25 14:16:00 +01:00
Thomas Müller 50f6817ce9 Merge pull request #20439 from owncloud/etag-propagate-in-storage
Take submount etag into account for folder etags
2015-11-25 12:49:54 +01:00
Thomas Müller 89b9f5518b Merge pull request #20636 from owncloud/savre-3.0
sabre/dav 3.0 and related
2015-11-24 16:20:48 +01:00
Thomas Müller 4bb346a1e6 Merge pull request #20692 from owncloud/federation_auto_add_servers
auto-add ownClouds to the list of trusted servers
2015-11-24 16:19:39 +01:00
Thomas Müller ae36c01b95 Adjust sabre changes in core 2015-11-24 15:11:54 +01:00
Roeland Jago Douma cfdf2b9976 Fix overriding function from 3rdparty warning
Fixes #20648
2015-11-24 13:25:50 +01:00
Björn Schießle 964fa1fce3 use hooks to auto add server to the list of trusted servers once a federated share was created 2015-11-24 11:34:38 +01:00
Roeland Jago Douma 85976b7293 [Sharing 2.0] Fix phpdoc etc 2015-11-24 10:26:36 +01:00
Roeland Jago Douma a2b8483779 [Sharing 2.0] Default share provider only generic DI
No injection of userfolders etc. Only generic DI components
(IRootFolder) etc should be used to make sure we can also run this from
the cli
2015-11-24 10:26:36 +01:00
Roeland Jago Douma aeae73b364 [Sharing 2.0] Removed unused DI stuff
The share manager etc should not care about filtering stuff. They should
return what is asked for them.
2015-11-24 10:26:36 +01:00
Joas Schilling 018bd3ee24 Make sure that object id can be a string 2015-11-23 14:18:15 +01:00
Morris Jobke 728648ad77 Replace new occurences of ini_get with IniWrapper methods 2015-11-23 14:12:36 +01:00
Clark Tomlinson 9caf4ffbfc Replacing ini_get instances with inigetwrapper usages 2015-11-23 14:12:31 +01:00
Thomas Müller 021137d7ae Merge pull request #20679 from owncloud/fixphpdoc
p() supports string as argument
2015-11-23 13:32:46 +01:00
Thomas Müller df906f475b Merge pull request #20617 from owncloud/fix-usage-of-lastInsertId
lastInsertId() is properly working with Oracle if the table name is p…
2015-11-23 13:29:08 +01:00
Thomas Müller 240cc1c4ea Merge pull request #20543 from owncloud/share2.0_fix_hooks
Move hook and delete children logic to share manager
2015-11-23 13:28:49 +01:00
Joas Schilling 1c7d7288c4 Add a method to select a field or value with alias 2015-11-23 13:28:31 +01:00
Roeland Jago Douma 1360e22d7c [Sharing 2.0] Move hook and delete children logic to share manager
To make sure hooks are always fired and child entries are always
cleaned. This logic is moved to the share manager.

* Updated unit tests
2015-11-23 12:28:54 +01:00
Morris Jobke 7138659080 p() supports string as argument 2015-11-23 12:11:23 +01:00
Thomas Müller aa660ec232 Throw an exception in case no table name is passed into lastInsertId of the Oracle adapter 2015-11-23 11:44:08 +01:00
Thomas Müller 9f69021691 lastInsertId() is properly working with Oracle if the table name is properly passed in 2015-11-23 11:44:08 +01:00
Joas Schilling a370c29068 Use a DateTime object instead of a timestamp 2015-11-23 11:41:48 +01:00
Individual IT Services 1835462ec4 reuse code 2015-11-23 11:02:46 +01:00
Thomas Müller 79bbda994b Merge pull request #16902 from owncloud/jsocclient
Web UI uses Webdav instead of ajax/* calls
2015-11-23 09:38:01 +01:00
Thomas Müller 2f89eef334 Merge pull request #20524 from owncloud/pgsql-version-check-error
assume pgsql >=9 if checking the version fails
2015-11-23 09:05:13 +01:00
Robin Appelman 2d7c9f0ba9 also match ie11 with Request::USER_AGENT_IE 2015-11-22 16:05:52 +01:00
Vincent Petry a05e40932c Now using IE8 workaround of davclient.js for all IE versions 2015-11-22 16:05:52 +01:00
Thomas Müller 358858c9e3 Fix undefined HTTP_USER_AGENT 2015-11-22 16:05:50 +01:00
Vincent Petry fb3d5c7856 Add evert's davclient.js + es6-promise + IE8 workaround
- Add davclient.js lib
- Add es6-promise required by that lib
- Wrote IE8 workaround lib/shim for davclient.js
2015-11-22 16:05:49 +01:00
Thomas Müller 427d107b9f Merge pull request #20614 from owncloud/use-mocks-when-testing-isSharingDisabledForUser
Use mocks when testing isSharingDisabledForUser
2015-11-20 15:22:52 +01:00
Thomas Müller c86483f3ed Adjust PHPDoc as suggested 2015-11-20 14:38:29 +01:00
Thomas Müller c565a7b042 Fix failing unit test 💀 2015-11-19 16:44:43 +01:00
Thomas Müller 9ec2850c78 Use mocks when testing isSharingDisabledForUser 2015-11-19 15:36:16 +01:00
Roeland Jago Douma ca6bd5cacd Follow the interface again 2015-11-19 14:34:59 +01:00
Robin Appelman 888df3933d take the etag of child mounts into account for the folder etag
this replaces shared etag propagation
2015-11-19 13:32:00 +01:00
Robin Appelman d006a7c723 Fix scanning of incomplete folders 2015-11-19 13:30:50 +01:00
Robin Appelman 02f847bc66 use relative path 2015-11-19 13:30:50 +01:00
Robin Appelman d5061b8139 fix fileinfo for non existing files 2015-11-19 13:30:50 +01:00
Robin Appelman 1736c70075 Some more cleanup for getFIleInfo/getDirectoryContent 2015-11-19 13:30:50 +01:00
Robin Appelman 02be8a3a12 Split getting cache entry and checking update to a seperate method 2015-11-19 13:29:12 +01:00
Morris Jobke 1189528e1f Always installed apps includes the hardcoded ones from shipped.json
* fixes #20568
2015-11-19 09:11:14 +01:00
Robin Appelman 71b86c0ed4 Handle non existing users as owner in the view 2015-11-18 17:08:18 +01:00
Thomas Müller 8d74e28af6 Merge pull request #20438 from owncloud/memcache-key-length-fix
Handle errors on memcached level
2015-11-18 14:20:57 +01:00
Thomas Müller 6efa72867a Merge pull request #20540 from owncloud/fix-format-call-in-logger
Try to fix logging errors we did observe on ci ....
2015-11-18 09:18:54 +01:00
Thomas Müller aba119951e Merge pull request #20494 from owncloud/storage-forbidden-exception
Allow storage wrappers to through a forbidden exception with retry information for clients
2015-11-18 09:13:45 +01:00
Thomas Müller 8db9c49cda Merge pull request #20551 from owncloud/notification-fix-tests
Notification - Add tests for the "return $this" and fix it on the new method
2015-11-18 09:12:27 +01:00
Thomas Müller 74ce6d29e1 Merge pull request #20544 from owncloud/move-index-to-appframework
Move index.php from files to AppFramework
2015-11-17 12:49:38 +01:00
Joas Schilling e2cfcd992c Allow storage wrappers to through a forbidden exception with retry information 2015-11-17 10:39:52 +01:00
Joas Schilling 2fde6a77d7 Add tests for the "return $this" and fix it on the new method 2015-11-17 09:26:13 +01:00
Thomas Müller 705d208a8a Merge pull request #20539 from owncloud/notification-api-adjustment
Notification api update
2015-11-17 08:39:06 +01:00
Lukas Reschke daa388ce8d Move index.php from files to AppFramework
1. Allows it to use the more secure CSP rules of the AppFramework.
2. Adds some unit tests.
2015-11-16 21:10:11 +01:00
Thomas Müller 6ffd042a64 fixes #20538 2015-11-16 16:29:21 +01:00
Joas Schilling 40d5d55124 Remove the icon for now 2015-11-16 16:17:23 +01:00
Joas Schilling 1666af89c2 Add "is primary action" to actions 2015-11-16 16:14:52 +01:00
Thomas Müller 8169e4fdc8 Merge pull request #20465 from owncloud/forms.css
Move form styles from styles.css to inputs.css
2015-11-16 15:29:02 +01:00
Roeland Jago Douma 1e9fc33212 [Share2.0] OCS Share API getShare uses new code 2015-11-16 13:32:28 +01:00
Robin Appelman cc1db4ba87 assume pgsql >=9 if checking the version fails 2015-11-16 13:11:32 +01:00
Hendrik Leppelsack 7ab56de58b move form styles from styles.css to inputs.css 2015-11-13 00:19:57 +01:00
Thomas Müller aff4aed43c Merge pull request #20472 from owncloud/switch-ch-log_with_ms_precision
enable microseconds in log timestamps
2015-11-12 17:30:32 +01:00
Christian Schnidrig d0464bf772 enable microseconds in log timestamps 2015-11-12 10:33:20 +01:00
Thomas Müller 3248db05f1 Merge pull request #17920 from andyboeh/master
Add possibility for alternative logins to force redirection of login page
2015-11-12 10:15:23 +01:00
Thomas Müller af05be1ac7 Merge pull request #20461 from owncloud/assetpipeline-on-upgrade
Do not use the asset pipeline when doing updates
2015-11-12 08:51:30 +01:00
Joas Schilling c9753655dc Do not use the asset pipeline when doing updates 2015-11-11 18:18:33 +01:00
Thomas Müller c9b671a12f Handle errors on memcached level - fixes #17397 2015-11-10 15:58:17 +01:00
Robin Appelman 331ef0e3c0 Add getOwner to FileInfo 2015-11-10 10:55:29 +01:00
Thomas Müller 422d29ae48 Merge pull request #20373 from owncloud/use-random-int-if-it-exists
Use native CSPRNG if available
2015-11-10 10:10:23 +01:00
Robin Appelman 960c8cb5bc Merge pull request #16604 from owncloud/cache-escape-like
escape like parameter in cache operations
2015-11-10 09:45:00 +01:00
Thomas Müller f8e020ff87 Merge pull request #20390 from owncloud/appcheckcode-no-duplicate-requirement
Do not allow two different version requirements
2015-11-10 00:27:05 +01:00
Roeland Jago Douma 402e0afbc5 Fix Error message when sharing outside of group
For #19788
2015-11-09 15:52:17 +01:00
Lukas Reschke 045ea4eb2b Use native CSPRNG if available
Unfortunately only PHP 7…
2015-11-09 15:04:22 +01:00
Joas Schilling fe04451cb1 Do not allow two different version requirements 2015-11-09 11:10:37 +01:00
Thomas Müller cc4f4f222d Merge pull request #20348 from owncloud/issue-20303-integer-group-names
Make sure that group names are strings not integers
2015-11-06 11:48:40 +01:00
Thomas Müller 8047597a81 Merge pull request #20288 from owncloud/fix_20234
make sure that we update the unencrypted size for the versions
2015-11-06 11:17:17 +01:00
Joas Schilling 292dc553c3 Make sure that group names are strings not integers 2015-11-06 10:40:09 +01:00
Robin Appelman d36e1bbab2 escape like parameter for move queries 2015-11-05 16:41:33 +01:00
Robin Appelman d514200b56 Add escapeLikeParameter to IDBConnection 2015-11-05 16:41:30 +01:00
Robin Appelman b05e1b6ed3 define escape character for like statements on oracle 2015-11-05 16:29:35 +01:00
Robin Appelman b394fe8709 define escape character for like statements on sqlite 2015-11-05 16:28:54 +01:00
Robin Appelman 236c3c62cc move from OC_DB to IDBConnection 2015-11-05 16:25:02 +01:00
Roeland Jago Douma 0be05fdddd Add unshare hooks 2015-11-05 15:59:09 +01:00
Roeland Jago Douma 6624fa212a The new sharing code now handles deletion
OCS -> ShareManager -> DefaultShareProvider
2015-11-05 15:59:09 +01:00
Roeland Jago Douma 9567fa1194 Initial setup of shareing 2.0 sharemanager and share
* Added sharemanager class

This is the central class where all API calls talk to (OCS/Activity).
This in turn talks to the share providers to get the actual sharing
done.

It uses all ShareObjects

* Added share class

Simple class to hold all the share properties that is passed around

* Added IShareProvider interface

Interface that providers os a share have to implement.
2015-11-05 15:59:08 +01:00
Arthur Schiwon 51ead4e59b subadmin methods should not return any null user or group 2015-11-05 11:50:57 +01:00
Thomas Müller ba02a3771b Merge pull request #20053 from owncloud/getfileinfo-locking
Don't lock if we're only reading cache metadata
2015-11-04 22:40:17 +01:00
Robin Appelman a2cfbd975a mark path as checked 2015-11-04 16:34:39 +01:00
Robin Appelman c487f0f138 when a file is locked use old cache data 2015-11-04 14:45:10 +01:00
Thomas Müller bb216feeb2 Merge pull request #18361 from owncloud/sharing_performance_improvements
improve calculation of share recipients
2015-11-04 14:44:31 +01:00
Robin Appelman 0a56313ca4 fix whitespace 2015-11-04 14:41:03 +01:00
Björn Schießle 6d0a324144 make sure that we update the unencrypted size for the versions 2015-11-04 10:59:05 +01:00
Thomas Müller c59ca9203d Merge pull request #18821 from owncloud/global-classes
Global classes in core CSS
2015-11-04 10:30:10 +01:00
Bjoern Schiessle 4719305e3b cache result from parent folders 2015-11-04 09:27:29 +01:00
Robin Appelman fc7f7e5c37 only lock in getDirectoryContent if we need to update the cache 2015-11-03 18:23:22 +01:00
Robin Appelman 4f2656993e only lock in getFileInfo if we need to update the cache 2015-11-03 18:23:22 +01:00
Robin Appelman 0397871f7e Split checkUpdate 2015-11-03 18:23:22 +01:00
Thomas Müller b2a437ffff Add a new core capability which tells the clients which url to use 2015-11-03 14:27:36 +01:00
Thomas Müller 620dc7ce22 Merge pull request #20196 from owncloud/use-actual-mimetype-detection-instead-of-oath
Use actual mimetype detection instead of extension
2015-11-02 17:36:13 +01:00
Raghu Nayyar 56b537271e Global Classes for Core.
Move up the global styles up the hierarchy.

Adds Clear Left, Right and both.

New CSS file for Global Styles.
2015-11-02 20:54:02 +05:30
Thomas Müller b6ca23afe1 Merge pull request #20189 from owncloud/use-get-http-protocol
Use getHttpProtocol instead of $_SERVER
2015-11-02 10:13:41 +01:00
Lukas Reschke 40ae54d60a Use actual mimetype detection instead of extension
We cannot rely on the extension as the file may also be a valid TAR or ZIP file without such content. Especially when getting resources from the ownCloud appstore.
2015-10-31 00:55:37 +01:00
Lukas Reschke 78cad94ff4 Add support for Redis password auth
For enhanced security it is recommended to configure Redis to only accept connections with a password. (http://redis.io/topics/security)

This is especially critical since Redis supports the LUA scripting language and thus a simple SSRF vulnerability (as proven in http://benmmurphy.github.io/blog/2015/06/04/redis-eval-lua-sandbox-escape/ for example) may lead to a remote code execution.
2015-10-30 20:19:23 +01:00
Lukas Reschke bafb86fb9f Use getHttpProtocol instead of $_SERVER 2015-10-30 18:05:30 +01:00
Morris Jobke ef76998eda Add warning for broken l10n json files
* makes it easier to spot broken l10n files
2015-10-30 09:10:16 +01:00
Thomas Müller 73d9699be9 Merge pull request #20135 from owncloud/check-if-null-subadmin
Drop OC_SubAdmin and replace usages
2015-10-29 17:07:45 +01:00
Robin Appelman c30a68e2f8 Merge pull request #20060 from owncloud/cache-move-final-update-transaction
include the final update in the transaction when moving a folder in the cache
2015-10-29 16:45:59 +01:00
Thomas Müller 1ce911d2f9 Merge pull request #19592 from owncloud/availability-root-always-exists
The root of a storage always exists
2015-10-29 14:14:56 +01:00
Robin Appelman 01d3393b7b include the final update in the transaction when moving a folder in the cache 2015-10-29 12:34:49 +01:00
Thomas Müller 530f7229e7 Merge pull request #19869 from owncloud/cache-adjustcurrentmtimeonrename
On rename, also refresh storage_mtime of the target file
2015-10-29 11:57:00 +01:00
Lukas Reschke c6f6a8758b Drop OC_SubAdmin and replace usages 2015-10-29 11:31:18 +01:00
Thomas Müller 9ab44f1f00 Merge pull request #11509 from owncloud/internal_email_template
Allow separate templates for internal and external share notifications
2015-10-29 11:27:05 +01:00
Robin Appelman 33eb13e415 The root of a storage always exists 2015-10-29 11:21:50 +01:00
Stephen Colebrook 6feb31bf96 Allow separate templates for internal and external share notifications 2015-10-29 10:24:24 +01:00
Joas Schilling e5a7e3124a Add a repair step that checks for group membership on shares 2015-10-29 09:26:26 +01:00
Thomas Müller 8ad3df9b9e Merge pull request #19182 from cweiske/support-bzip2
Fix #19181: Support .bz2 app archives
2015-10-28 14:05:11 +01:00
Roeland Jago Douma 07fe1df8c1 Make \OC\SubAdmin php-5.4 compatible
* Also close some cursors while we are at it
2015-10-28 09:09:16 +01:00
Thomas Müller 40ba8d267f Merge pull request #19837 from owncloud/always-enabled-apps
Store list of apps which cannot be disabled in shipped.json
2015-10-26 17:14:29 +01:00
Vincent Petry b900782513 Also adjust storage_mtime of target after rename
Some storages like Dropbox change their mtime on rename...
2015-10-26 15:41:23 +01:00
Lukas Reschke 8f09d5b67c Update license headers 2015-10-26 14:04:01 +01:00
Thomas Müller d4d954b2d9 Merge pull request #19982 from owncloud/fix-link-sharing-regression-master
Ensure the password is only hashed in case it's changed on the client…
2015-10-26 10:57:31 +01:00
Thomas Müller 2038b2ec34 Fail hard if shipped.json is missing 2015-10-26 09:53:04 +01:00
Thomas Müller 5a5bcccd0d Don't show apps which are always enabled in the app manager 2015-10-26 09:53:04 +01:00
Thomas Müller 6fc59f85b6 Store list of apps which cannot be disabled in shipped.json 2015-10-26 09:53:04 +01:00
Lukas Reschke 13e817e901 Throw exception on `getPath` if file does not exist
Currently the `getPath` methods returned `NULL` in case when a file with the specified ID does not exist. This however mandates that developers are checking for the `NULL` case and if they do not the door for bugs with all kind of impact is widely opened.

This is especially harmful if used in context with Views where the final result is limited based on the result of `getPath`, if `getPath` returns `NULL` PHP type juggles this to an empty string resulting in all possible kind of bugs.

While one could argue that this is a misusage of the API the fact is that it is very often misused and an exception will trigger an immediate stop of execution as well as log this behaviour and show a pretty error page.

I also adjusted some usages where I believe that we need to catch these errors, in most cases this is though simply an error that should hard-fail.
2015-10-25 17:58:21 +01:00
Robin Appelman 9d7138aa50 Dont lock /$user/files 2015-10-23 14:59:16 +02:00
Roeland Jago Douma 9071e756a1 Fix for broken ajax/share.php endpoint
Even more code mess :(
All tests pass again. But I'm really not happy with this endpoint.
2015-10-23 09:24:03 +02:00
Volker Fröhlich 711e1235ea Expose syslog tag in the configuration 2015-10-22 17:42:55 +02:00
Thomas Müller 4f5ff9c105 Ensure the password is only hashed in case it's changed on the client - fixes #19950 2015-10-22 17:32:40 +02:00
Thomas Müller e471600834 Merge pull request #19890 from owncloud/db-keep-shared-locks
Keep shared locks until the end of the request so we can reuse them
2015-10-22 10:43:00 +02:00
Lukas Reschke 8133d46620 Remove dependency on ICrypto + use XOR 2015-10-21 17:33:41 +02:00
Thomas Müller f7f2a160dd Merge pull request #19918 from owncloud/send-begin-message
Update: state which step we are going to start and warn if it might b…
2015-10-21 14:52:19 +02:00
Thomas Müller 1060be0886 Merge pull request #19927 from owncloud/install-shipped-apps-on-upgrade
Install new shipped apps on upgrade
2015-10-21 14:43:27 +02:00
Roeland Jago Douma c515628ebe Legacy OC_SubAdmin is now just a wrapper 2015-10-21 11:32:38 +02:00
Roeland Jago Douma 0e9ab13943 New \OC\SubAdmin class
* DI
* Tests
* moved OC_SubAdmin to legacy
* Added to private OC\GroupManager
2015-10-21 11:32:38 +02:00
Thomas Müller d8276af301 Install new shipped apps on upgrade -fixes #19925 2015-10-21 11:14:12 +02:00
Thomas Müller d0aeb268d6 Merge pull request #19883 from owncloud/provide-iappcontainer
Provide IAppContainer as dependency injection
2015-10-21 10:49:26 +02:00
Thomas Müller cf9b8fc182 Merge pull request #18184 from owncloud/ocs-merge-headers
Merge headers of ocs results
2015-10-21 10:36:37 +02:00
Robin Appelman f39c73c79c add phpdoc 2015-10-21 09:43:30 +02:00
Robin Appelman cc7bd53d17 Keep shared locks until the end of the request so we can reuse them 2015-10-21 09:43:30 +02:00
Joas Schilling 9200bbeaba Update: state which step we are going to start and warn if it might be slow 2015-10-21 09:17:38 +02:00
Christian Weiske a543d20958 Fix #19181: Support .bz2 app archives
At first a bz2 handling in needs to be fixed; PEAR's Archive_Tar
otherwise gives the following error:
> Unsupported compression type "bz"
> Supported types are "gz", "bz2" and "lzma2"

After that we can whitelist the application/bz2 MIME type in the installer.
2015-10-20 21:56:24 +02:00
Thomas Müller 1a84c8e9d2 Merge pull request #19884 from owncloud/locking_exception
catch all exception if table doesn't exists
2015-10-20 13:44:00 +02:00
Thomas Müller 64dc222ce5 Merge pull request #19874 from owncloud/delete-cookie-instead-of-setting-value-to-empty
Delete cookie instead of emptying value
2015-10-20 12:47:46 +02:00
Björn Schießle 168c2055ba catch all exception if table doesn't exists 2015-10-20 11:34:08 +02:00
Thomas Müller 5752e3b3c0 Merge pull request #19666 from owncloud/fix_13002
Combine OCS API getUser method code into provisioning_api app
2015-10-20 11:10:39 +02:00
Morris Jobke a0743f12c6 Provide IAppContainer as dependency injection 2015-10-20 10:33:53 +02:00
Morris Jobke 5944b33d56 [OCI setup] remove static logger/config calls
* logger/config object are already injected - this only uses it
2015-10-20 08:53:57 +02:00
Lukas Reschke 5588c5f262 Delete cookie instead of emptying value
PHP will handle session cookies with an empty values as an E_WARNING error. ([php/#68063](https://bugs.php.net/bug.php?id=68063))

ownCloud sets the cookie to an empty value in case the session expires, it however after this starts a new session. Due to potential race conditions this can in unlikely cases lead to the fact that the session never gets restarted and the user is left with an empty cookie. PHP tries then to use the empty cookie which makes the instance not usable.

To work around any race condition we now tell PHP to explicitly delete the value which can be done by using `null` as value, PHP will then send a cookie with the value "deleted". Also theepiration has been set to -1.
2015-10-19 19:54:12 +02:00
Jörn Friedrich Dreyer 2895c91291 Merge pull request #17641 from owncloud/fix_objectstore_rename
don't move files in cache twice, fixes renaming for objectstores
2015-10-19 17:18:57 +02:00
Robin Appelman 9c5337ca3e Merge pull request #19833 from owncloud/fix_view_rmdir
Removemount expects absolutePath
2015-10-19 16:22:42 +02:00
Thomas Müller 7fe7655070 The full name has to be tested if it's a dir - fixes #19854 2015-10-19 10:07:33 +02:00
Robin Appelman 0c6c36d0c5 fix objectstore files having create permissions 2015-10-16 21:41:51 +02:00
Robin Appelman e46741cf5d detect object homestorage in share code 2015-10-16 21:41:51 +02:00
Jörn Friedrich Dreyer aab226cef7 don't move files in cache twice, fixes renaming for objectstores 2015-10-16 21:41:51 +02:00
Thomas Müller 6cd1126dd1 Merge pull request #19843 from owncloud/an-app-is-identified-by-having-a-info.xml-app.php-should-not-be-mandatory
an-app-is-identified-by-having-a-info.xml-app.php-should-not-be-manda…
2015-10-16 21:28:55 +02:00
Roeland Jago Douma 8fdb12f8fb Check for error when resharing 2015-10-16 20:43:17 +02:00
Roeland Jago Douma 9e86d71cc5 When sharing with the owner show the path
The error message should contain the path that is being shared not the
numeric id.
2015-10-16 20:43:17 +02:00
Thomas Müller a2ec080427 an-app-is-identified-by-having-a-info.xml-app.php-should-not-be-mandatory 2015-10-16 17:25:22 +02:00
Roeland Jago Douma 3a14cfc295 Removemount expects absolutePath 2015-10-16 14:14:00 +02:00
Thomas Müller 2ff55560e2 Remove $ETagFunction - it was never used 2015-10-16 13:17:12 +02:00
Thomas Müller f2889dc6e4 Consolidate webdav code - move all to one app 2015-10-16 13:17:12 +02:00
Bjoern Schiessle dd6cb67030 check if fopen was successful before continue 2015-10-15 16:27:38 +02:00
Bjoern Schiessle c7883b1769 only wrap source if fopen was successful 2015-10-15 16:27:38 +02:00
Morris Jobke d392ddab70 Remove ArrayParser because it is unused 2015-10-14 16:50:56 +02:00
Thomas Müller fbccdedb5c Merge pull request #19731 from owncloud/update-list-of-deprecated-methods
Update list of deprecated methods
2015-10-14 16:34:55 +02:00
Thomas Müller ba461b0c92 Merge pull request #19760 from owncloud/adding_occ_upgrade_text_note
Adding occ upgrade text note
2015-10-14 16:33:33 +02:00
Thomas Müller db4dae527c Merge pull request #19764 from owncloud/issue-19759-app-check-code-issue
Variables don't have a class, so we can't use toString() on it
2015-10-14 14:10:25 +02:00
Morris Jobke aa10825026 update deprecation message 2015-10-14 14:08:45 +02:00