Commit Graph

62 Commits

Author SHA1 Message Date
Julius Härtl
8f2e8fa324 Run repair steps when enabling an app that has already been installed
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2019-06-05 13:52:46 +02:00
Roeland Jago Douma
f021db956c Check if elements are set in installer
Since we now have all the apps from the appstore we need to do a bit
more checking.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2019-03-22 16:54:35 +01:00
Roeland Jago Douma
769cb629ae allow enforcing apps to ignore the max version
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2019-03-20 15:16:11 +01:00
Joas Schilling
483ad01a09 There is no update available if the app didnt have a version (aka was not installed)
Signed-off-by: Joas Schilling <coding@schilljs.com>
2018-08-02 14:27:16 +02:00
Arthur Schiwon
38a90130ce move log constants to ILogger
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2018-04-26 10:45:52 +02:00
Morris Jobke
4fd697e733 Remove a check for an unused variable
Left over from a refactoring

https://github.com/nextcloud/server/pull/1940

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-04-23 11:53:48 +02:00
Morris Jobke
514de5dfa1 Use isInstalled of AppManger instead of reimplement it
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-03-21 11:34:18 +01:00
Joas Schilling
1aa846107d Dont use $info as array when its not an array
Signed-off-by: Joas Schilling <coding@schilljs.com>
2018-02-22 14:43:56 +01:00
Morris Jobke
9dc3b04802 Fix app version to be always string and neither array nor null
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-02-17 16:05:13 +01:00
Morris Jobke
d3d045dd5c Remove unused import statements
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-02-14 16:55:43 +01:00
Julius Härtl
efbdad2d0c Remove OC_App::removeApp
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-01-31 14:15:12 +01:00
Joas Schilling
d971b104ed Do not cache the settings/sections in the database anymore
This caused more troubles then it had benefits, especially
when an app got disabled or was removed without being disabled.

Signed-off-by: Joas Schilling <coding@schilljs.com>
2018-01-29 15:47:37 +01:00
Morris Jobke
a661f043e1 Remove unneeded semicolon and parentheses
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-26 23:46:40 +01:00
Morris Jobke
9ff51aafc5 Use index based string access for substr with length of 1
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-26 13:38:34 +01:00
Morris Jobke
2a38605545 Properly log the full exception instead of only the message
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-23 10:57:21 +01:00
Roeland Jago Douma
09f8a755ec Remove IAppConfig::getValue
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-01-17 21:41:56 +01:00
Morris Jobke
97f80f5581 Merge pull request #7505 from nextcloud/do-not-update-if-app-comes-from-git
Do not update apps if it comes from git
2017-12-18 13:43:58 +01:00
John Molakvoæ (skjnldsv)
2dbd5052ff Up check
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2017-12-14 10:00:34 +01:00
Morris Jobke
54c227b6c4 Use cached app list
Followup to #7264

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-12-14 09:56:53 +01:00
John Molakvoæ (skjnldsv)
cca8744350 Do not update apps if it comes from git
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2017-12-14 09:50:31 +01:00
Lukas Reschke
8ccb486876 Merge pull request #7264 from nextcloud/cache-fetched-apps
Cache fetched apps in update check
2017-11-27 11:48:59 +01:00
Morris Jobke
df61d43529 Make isUpdateAvailable non-static
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-25 12:01:02 +01:00
Morris Jobke
a97a290fd5 Cache fetched apps in update check
The code tried to find the apps with updates and thus was called for every available app. This caused to get the full appstore content as often as apps are available. The appstore request itself was cached nevertheless in an appdata dir, but with an object storage this is still a lot of round trips to read this cached result. Thus the instantiated list is now cached in a static variable (because it's a static method call).

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-25 12:00:56 +01:00
Morris Jobke
05abb9ea66 Remove unused checkCode method
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-24 10:50:50 +01:00
Lukas Reschke
8c915baa34 Merge pull request #6788 from staabm/master
Prevent XSS in links which open a new browser window
2017-11-08 18:55:35 +01:00
Morris Jobke
4866314ce0 Run updated license header updater
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-07 13:47:42 +01:00
Morris Jobke
31c5c2a592 Change @georgehrke's email
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-06 20:38:59 +01:00
Morris Jobke
0eebff152a Update license headers
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-06 16:56:19 +01:00
Markus Staab
db34b59238 Prevent XSS in links which open a new browser window 2017-10-19 12:16:04 +02:00
Christoph Wurst
2e19c42bc5 Check whether an app archive can be extracted
If extraction fails we should not continue the installation/update
process as the info.xml cannot be loaded and an unrelated error
occurs.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2017-09-20 14:07:17 +02:00
Joas Schilling
79d7c26b8a Register autoloading before running migrations
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-07-07 12:01:11 +02:00
Joas Schilling
7a3d83d630 Register autoloading before running migrations
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-07-05 13:02:16 +02:00
Joas Schilling
183b1dbde3 Use migrations when there is no database.xml
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-07-05 13:01:19 +02:00
Morris Jobke
be33234266 Remove OC_App:installApp
* uses Installer->installApp now
* removes unused code
* fixes #4453
* added some additional checks

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-05-15 00:03:35 -05:00
Lukas Reschke
47cd976035 Add app bundles
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-04-26 20:07:49 +02:00
Morris Jobke
c54a59d51e Remove unused use statements
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-04-22 19:23:31 -05:00
Lukas Reschke
32bf8ec826 Don't use cached informations for app version
When installing an app from the appstore the `\OC_App::getAppVersion` code is triggered twice:

- First when the downloader tries to compare the current version to the new version on the appstore to check if there is a newer version. This protects against downgrade attacks and is implemented in `\OC\Installer::downloadApp`.
- Second, when the app is actually installed the current version is written to the database. (`\OC\Installer::installApp`)

This fails however when the version is actually cached. Because in step 1 the cached version will be set to "0" and then be reused in the second step.

While this is probably not the cleanest version I assume this is an approach that is least invasive. Feedback and suggestions welcome :)

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-12-09 18:01:45 +01:00
Lukas Reschke
7cb0df28e2 Prevent downgrade attacks for apps
We should verify the app versions when installing a new update, otherwise this could result in downgrade attacks when an attacker just copies the old signature.

Plus it prevents the case that in case of a bug in the appstore actually an older version gets installed.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-11-11 18:53:26 +01:00
Joas Schilling
2f7e291101 Correctly catch the "soft errors" now
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-11-09 10:30:19 +01:00
Joas Schilling
224dfaf1e6 Use a better error message and point the users to the support channels
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-11-09 09:10:32 +01:00
Lukas Reschke
0eeef26a8e Add tests for installer method
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-10-31 19:39:35 +01:00
Lukas Reschke
086d43f26d Move to non-static version
The static version is used nowhere in the code and just decreases coverage

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-10-31 18:42:19 +01:00
Lukas Reschke
d805df7bb3 Use findAppInDirectories
The other function doesn't work if the appstore is disabled

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-10-31 17:30:02 +01:00
Lukas Reschke
8acb54aa0b Add update support
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-10-31 17:17:47 +01:00
Lukas Reschke
3e6dd86ee4 Add support for CRL
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-10-31 17:17:46 +01:00
Lukas Reschke
0e2aee2be6 Replace with exception instead of boolean return value
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-10-31 17:17:46 +01:00
Lukas Reschke
ca7f6dec55 Make non-static
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-10-31 17:17:45 +01:00
Lukas Reschke
32cf661215 Use new appstore API
This change introduces the new appstore API in Nextcloud.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-10-31 17:17:44 +01:00
Joas Schilling
356ac5d42f Add app name to the call
Regression from 69b063f4c6

Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-10-10 16:34:14 +02:00
Arthur Schiwon
ac04ba6784 register app autoload instead of loading apps 2016-08-12 13:23:14 +02:00