Commit Graph

167 Commits

Author SHA1 Message Date
Julius Härtl 23462275ba
Add AppStore Manager
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-06-06 11:40:09 +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 3d80ade8d7
Log possible exception caused by wrong version number
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-04-11 10:08:23 +02:00
Christoph Wurst ac939e8fd4
Fix version comparison with minor and patch level requirements
If an app requires a specific minor or path level server version,
the version_compare prevented the installation as only the major
version had been compared and that checks obviously returns `false`.

Now the full version is used for comparison, making it possible to
release apps for a specific minor or patch level version of Nextcloud.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2018-04-11 10:08:23 +02:00
Christoph Wurst 6248b61193 Fix AppFetcher::setVersion phpdoc
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2018-04-10 12:32:56 +02:00
Julius Härtl eb6e5a27a3
Do not fail hard if no appinfo is returned during update
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-03-28 11:12:56 +02:00
Morris Jobke f843b7edfe
Merge pull request #8506 from nextcloud/use-appmanager
Use isInstalled of AppManger instead of reimplement it
2018-03-22 09:55:19 +01:00
Morris Jobke 8eb57dd835
Deprecate OCP\Files
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-03-21 14:29:35 +01: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
Morris Jobke f5c5c5181f
Remove unused and deprecated class and interface AppHelper
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-03-12 15:27:10 +01:00
Morris Jobke c88112bb41
Merge pull request #8579 from nextcloud/feature/2692/merge-can-i-update
Display a list of unavailable apps for updates (aka. merge "Can I update?")
2018-03-06 21:31:06 +01:00
Morris Jobke b2a9ea08a3
Remove unused and outdated hook
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-03-06 17:56:44 +01:00
Tobia De Koninck 539fdaea1e
Run repair steps on uninstall in all cases
Signed-off-by: Tobia De Koninck <tobia@ledfan.be>
2018-03-06 10:41:55 +01:00
Joas Schilling 029e8cdc5b
Also allow to specify the cache file name
Signed-off-by: Joas Schilling <coding@schilljs.com>
2018-02-28 11:31:33 +01:00
Roeland Jago Douma c2c2c06546
Merge pull request #8476 from nextcloud/strict_l10n
Make OCP\IL10N strict
2018-02-22 10:03:18 +01:00
Roeland Jago Douma 8b17f0d224
Fix other tests
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-02-21 19:53:44 +01:00
Joas Schilling 2c840ca278
Log exceptions that happen when writing the app store reply to storage
Signed-off-by: Joas Schilling <coding@schilljs.com>
2018-02-21 14:14:33 +01:00
Roeland Jago Douma 4a41e0cc42
getIncompatibleApps needs a string not an array
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-02-21 13:00:41 +01:00
Morris Jobke 70b1f510f2
Use normal header() calls instead of private method calls
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-02-19 09:40:25 +01:00
Morris Jobke ac63c207a9
Merge pull request #8411 from nextcloud/add-strict-types-to-oc_app
Add strict types to OC_App
2018-02-17 21:34:20 +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
Joas Schilling 17a26dfcc1
Validate the info.xml against the appstore schema file
Signed-off-by: Joas Schilling <coding@schilljs.com>
2018-02-16 10:23:51 +01:00
Morris Jobke 954da26e26
Use non aliased method instead
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-02-13 21:48:24 +01:00
Morris Jobke 3fa92a03e5
Add deprecation checks
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-31 14:15:12 +01:00
Julius Härtl 19a0a9a4e7
Move getAppInfo and getAppVersion to IAppManager
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-01-31 14:13:15 +01:00
Morris Jobke 4c38d1ed01
Merge pull request #8054 from nextcloud/substr-use-index
Use index based string access for substr with length of 1
2018-01-26 15:40:44 +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 fe7e726ab2
Merge pull request #8064 from nextcloud/background-jobs
Deprecated OCP interface to fetch background job type
2018-01-26 10:43:21 +01:00
Morris Jobke 9ef6148bfa
Deprecated OCP interface to fetch background job type
* was not used by apps and also is not needed
* migrated the documentation to IJobList

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-26 10:43:01 +01:00
Joas Schilling c2b1bd92d6
Merge pull request #8063 from nextcloud/inline-value
Return value immediately instead of assigning to a one-time variable
2018-01-26 10:15:39 +01:00
Morris Jobke 0a56d2185e
Return value immediately instead of assigning to a one-time variable
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-26 00:02:03 +01:00
Morris Jobke 55ef34b23b
Implements are not needed because they are already done by base class
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-25 22:42:24 +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 e13fe076d2
Add OCP\User deprecations to app code checker
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-16 13:32:37 +01:00
Christoph Wurst bdd99b096f
Merge pull request #7833 from nextcloud/fix-code-checker
Fix casting in app code checker
2018-01-14 22:36:59 +01:00
Roeland Jago Douma 419de27b6d
Merge pull request #7840 from nextcloud/dep_config
Remove deprecated \OCP\Config
2018-01-14 22:21:37 +01:00
Roeland Jago Douma 8a41d05761
Remove deprecated \OCP\Config
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-01-13 14:25:04 +01:00
Morris Jobke 24bc8c44da
Add casts to XML parser in DatabaseSchemaChecker
Preparation for strict_typing for PHP7+.

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-12 23:38:10 +01:00
Morris Jobke c739ca3c50
Fix casting in app code checker
Found while adding strict typing for PHP7+. This adds type hinting to all methods in CodeChecker.php and fixes one implicit cast.

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-12 23:24:11 +01:00
Morris Jobke c5f852d90c
Also log exception for failed appstore request
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-02 09:40:03 +01:00
Roeland Jago Douma 752055220f
Don't spam the log when we could not properly connect to the appstore
If we can't connect to the appstore for some reason we don't have to log
the exception just an info entry is enough.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-12-29 15:55:05 +01:00
Morris Jobke d2d73f1ce8
Also replace all other occurences
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-12-18 20:57:11 +01:00
Roeland Jago Douma 2eb2b6e437
If there is no internet connection don't try to contact appstore
Fixes #7119

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-11-17 20:35:04 +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 0eebff152a
Update license headers
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-06 16:56:19 +01:00
Joas Schilling 6292f665d7
Allow multiple settings and sections per app
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-10-05 11:34:03 +02:00
Arthur Schiwon 9db3b04f1b
finetune the appinfo parser
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2017-09-26 23:10:23 +02:00
Arthur Schiwon f7713e5f3f
make it possible to register plugins and kick out the circle one
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2017-09-26 23:10:23 +02:00
Roeland Jago Douma ede15f0988
Fix L10N::t
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-08-01 08:20:17 +02:00
Lukas Reschke 4166d61ce6
Fix MigrationSchemaChecker and CryptoWrapper
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-08-01 08:20:16 +02:00
Lukas Reschke 013d7483bf Add new bundle
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-07-26 11:49:03 +02:00
Roeland Jago Douma 5f227bd93b
More phpstorm inspection fixes
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-07-24 11:39:29 +02:00
Joas Schilling 3b267b165f Check the migration files for table, column and index length errors
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-07-05 13:02:16 +02:00
Morris Jobke d6adc0eba1 Deprecate static writeLog() method
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-06-23 11:21:46 -05:00
Joas Schilling eebd2811dc
Version and dependency are now required
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-05-22 09:54:44 +02:00
Joas Schilling 1951c88bdc
We don't use the prefix on index names
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-05-16 16:16:12 +02:00
Joas Schilling 8e757b343d
Fix apps without translations
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-05-16 16:16:11 +02:00
Joas Schilling 31bb65fa36
Check the name length of database items
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-05-16 16:16:11 +02:00
Joas Schilling 93fc7fcdbe
Check the syntax of the language file
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-05-16 16:16:07 +02:00
Lukas Reschke 48a9a4bd81 Merge pull request #4825 from nextcloud/add-timeout-appstore
Add timeout for requests to appstore
2017-05-12 12:37:18 +02:00
Morris Jobke 72943c99a4 Add timeout for requests to appstore
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-05-11 17:49:03 -05:00
Morris Jobke c90d832ce4 Log connectiong problems while fetching data from appstore
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-05-11 17:46:41 -05:00
Joas Schilling 538d32fe87
Automatic injection into the Fetchers
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-05-10 09:56:38 +02:00
Roeland Jago Douma e79424932a
Make sure the AppFetcher fetches the new applist from the appstore
When in the upgrade process the version in the config is still the old
version. (Since we only upgrade it after the upgrade is complete).
However the app list fetched from the appstore must be the new list.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-05-02 10:24:10 +02:00
Roeland Jago Douma 095463d568
Do not do ETag caching when the version is updated
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-05-02 08:44:20 +02:00
Lukas Reschke 3df99d8fd6
Add SocialSharingBundle
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-04-26 20:07:53 +02:00
Lukas Reschke a05295fca3
Add spreed to Groupware bundle
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-04-26 20:07:52 +02:00
Lukas Reschke 78d0bb99f7
Remove unrequired getDescription() method
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-04-26 20:07:51 +02: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
Joas Schilling 6d30b35ed7
Some more code fixes
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-03-20 10:45:27 +01:00
Joas Schilling 591e75df5c
Don't use a generic exception
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-03-20 10:33:16 +01:00
Lukas Reschke 20c80cba6f
Add exception to PHPDoc
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-03-20 10:13:57 +01:00
noveens 5481a9b84a
checking if app exists in the FileStream now
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-03-20 00:38:29 -06:00
Morris Jobke f3bfacc976
Fix unit tests and improve appstore logic
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-02-24 08:34:14 +01:00
Steffen Lindner cfb6223de7
Add back appstoreenabled config switch
Signed-off-by: Steffen Lindner <mail@steffen-lindner.de>
2017-02-24 08:31:56 +01:00
Joas Schilling fee18d6c78 Merge pull request #2814 from nextcloud/appstore_etag_validation
Add ETag validation to appstore requests
2017-01-09 14:56:20 +01:00
Roeland Jago Douma fc04779a26
Add ETag validation to appstore requests
* If the ETag if present store it
* If a stored ETag is present then pass it along (with the original
response) to get
* Add tests
* Added files to classmap

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-01-05 14:26:09 +01:00
Joas Schilling ec4b0d1e84
Remove group restrictions when those are not allowed anymore
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-01-04 10:40:14 +01:00
Roeland Jago Douma 245501fb0c
Clear appstore cache on version upgrade
* Add version to cached json
* Compare version
* Updated calls
* Updated tests

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-12-15 22:04:03 +01:00
Joas Schilling 77b6b7b23e
Use the mocked config version
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-12-14 10:45:27 +01:00
Lukas Reschke 60d1e8e63e
Check for nextcloud version as well
The code checker didn't consider the "nextcloud" version before, resulting in fails such as https://travis-ci.org/nextcloud/richdocuments/jobs/181470760#L415-L416

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-12-05 22:18:24 +01:00
Lukas Reschke 29402e2c0a
Exclude pre-release versions as per SemVer
As SemVer can be used apps could define a release like "10.0.0-alpha". This is something that we don't support at the moment in the server and we should filter all prereleases.

Ref https://github.com/nextcloud/server/pull/2307#issuecomment-262911588

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-11-25 11:32:46 +01:00
Lukas Reschke 6a4c0cf237
Loop for newest version in appstore response
The current implementation when fetching apps from the appstore is to assume that the first element is the newest version, this is now always applicable and leads to the fact that for some apps (e.g. nextant) the newest version is not delivered. This can be easily tested by comparing the version of the downloaded Nextant version.

This change will loop over all releases delivered by the appstore and chooses the newest compatible one. While not the cleanest solution, it does its job.

Most of the code are actually unit tests. Whereas I have copied the whole original response from the appstore and also have performed the transformation. So that's why the diff looks so huge.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-11-24 14:29:57 +01:00
Julius Haertl caacb6c261
Expose getAppPath to public API
Signed-off-by: Julius Haertl <jus@bitgrid.net>
2016-11-17 19:24:24 +01:00
Joas Schilling b2248efd75
Allow to register Providers
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-11-16 09:25:45 +01:00
Joas Schilling 13ff56bfc5
Allow to register settings/types via info.xml
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-11-16 09:25:44 +01:00
Joas Schilling 280d5325c7
Allow to register activity filters via info.xml
Signed-off-by: Joas Schilling <coding@schilljs.com>
2016-11-16 09:25:40 +01:00
Lukas Reschke 5fd428413b
Adjust previous fallbacks
11.0 is 11 and not 9.2 anymore

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-11-15 15:07:58 +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 01c566883e
%d instead %s
These are only numbers. THX @nickvergessen

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-10-31 17:17:46 +01:00
Lukas Reschke 89fc4358ba
Use substr and explode instead of a regex
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-10-31 17:17:45 +01:00
Lukas Reschke 067fb18670
Read array elements instead of substr
Otherwise this would break with 11.0.0

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
Roeland Jago Douma e55e6f1f14
Cleanup usages
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-10-29 14:29:50 +02:00
Thomas Müller 03ec052b4e
App dependencies are now analysed on app enable as well - not only on app install. 2016-10-24 15:59:46 +02:00
Thomas Müller ef842ef20a
Ensure $commands being an array - fixes #26073 2016-10-20 15:40:27 +02:00
Thomas Müller c5ca71ee82
[9.2] Register commands in info.xml (#26248)
* Use DI to load console commands from the apps - class name to be defined in the info.xml

* Load commands from info.xml

* Fix unit test

* Allow Di magic for IMountManager

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2016-10-11 19:48:26 +02:00
Lukas Reschke 0c2b17c80f
Cache AppInfo in Memory Cache if configured
This saves around 20ms on a bare-bone instance, on bigger ones more (depending on the number of installed apps).

See https://blackfire.io/profiles/compare/fc326ad3-100d-49b8-8ea9-8343240f53f3/graph

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-10-07 21:29:23 +02:00
Thomas Müller 67d3574bdf
Don't parse info.xml but reuse already cached app infos - fixes #25603 (#25968)
* Don't parse info.xml but reuse already cached app infos - fixes #25603

* Use === in InfoParser. Fixes test

* InfoParser should not depend on UrlGenerator - fixes issue with session being closed too early
2016-10-07 20:58:22 +02:00