Commit Graph

74 Commits

Author SHA1 Message Date
Christoph Wurst 3cf39c573f
Allow lazy app registration
During app installation we run migration steps. Those steps may use
services the app registers or classes from composer. Hence we have to
make sure the app runs through the registration.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-11-18 08:48:45 +01:00
Christoph Wurst d36155620c
Revert "Installation goes brrrr" 2020-11-11 17:40:12 +01:00
Joas Schilling 7f45f90789
Only update the schema when we install anyway
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-11 11:40:51 +01:00
Daniel Kesselberg d11de8c8e7
Add more details if extract fails.
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2020-10-22 10:15:46 +02:00
Christoph Wurst d9015a8c94
Format code to a single space around binary operators
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-10-05 20:25:24 +02:00
John Molakvoæ (skjnldsv) 9e962fb69f
Allow to update to nightly
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2020-08-07 13:51:39 +02:00
Christoph Wurst caff1023ea
Format control structures, classes, methods and function
To continue this formatting madness, here's a tiny patch that adds
unified formatting for control structures like if and loops as well as
classes, their methods and anonymous functions. This basically forces
the constructs to start on the same line. This is not exactly what PSR2
wants, but I think we can have a few exceptions with "our" style. The
starting of braces on the same line is pracrically standard for our
code.

This also removes and empty lines from method/function bodies at the
beginning and end.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 14:19:56 +02:00
Christoph Wurst 44577e4345
Remove trailing and in between spaces
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-09 16:07:47 +02:00
Arthur Schiwon d06ef07a97
disable timeout on app install via cli
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2020-02-12 16:52:45 +01:00
Joas Schilling c7e81c2c52
Increase the timeout for app downloads
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-01-20 16:20:09 +01:00
Joas Schilling 3eee359d7f
Allow to force enable apps via CLI
Co-authored-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2019-12-13 13:06:12 +01:00
Christoph Wurst 5bf3d1bb38
Update license headers
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2019-12-05 15:38:45 +01:00
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