diff options
author | sualko <klaus@jsxc.org> | 2021-05-16 21:33:27 +0300 |
---|---|---|
committer | sualko <klaus@jsxc.org> | 2021-05-28 18:35:54 +0300 |
commit | 87f9d21e59e46ac7aa97720b47f19622d748b2b8 (patch) | |
tree | e40b4ae2fff47ee274db267894a0ab5ca1041903 | |
parent | db9ccf7bd342cca4f3fabd96b4a56639c6a1da00 (diff) |
chore: add psalm
-rw-r--r-- | .github/workflows/static.yml | 24 | ||||
-rw-r--r-- | composer.json | 10 | ||||
-rw-r--r-- | composer.lock | 684 | ||||
-rw-r--r-- | lib/AppInfo/Application.php | 2 | ||||
-rw-r--r-- | lib/Command/RefreshRoster.php (renamed from lib/command/refreshroster.php) | 2 | ||||
-rw-r--r-- | lib/Command/ServerSharing.php (renamed from lib/command/serversharing.php) | 15 | ||||
-rw-r--r-- | lib/Controller/HttpBindController.php | 10 | ||||
-rw-r--r-- | lib/Controller/ManagedServerController.php | 3 | ||||
-rw-r--r-- | lib/Migration/MigrateConfig.php | 3 | ||||
-rw-r--r-- | lib/Migration/RefreshRoster.php | 2 | ||||
-rw-r--r-- | lib/UserManagerUserProvider.php | 4 | ||||
-rw-r--r-- | lib/db/stanza.php | 10 | ||||
-rw-r--r-- | lib/dblock.php | 3 | ||||
-rw-r--r-- | lib/memlock.php | 4 | ||||
-rw-r--r-- | lib/stanzahandlers/iq.php | 2 | ||||
-rw-r--r-- | psalm.xml | 37 |
16 files changed, 782 insertions, 33 deletions
diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml new file mode 100644 index 0000000..901fea1 --- /dev/null +++ b/.github/workflows/static.yml @@ -0,0 +1,24 @@ +name: Static analysis +on: [push] + +jobs: + static-psalm-analysis: + runs-on: ubuntu-latest + strategy: + matrix: + ocp-version: [ 'dev-stable21', 'dev-stable20' ] + name: Nextcloud ${{ matrix.ocp-version }} + steps: + - name: Checkout + uses: actions/checkout@master + - name: Set up php + uses: shivammathur/setup-php@master + with: + php-version: 7.4 + coverage: none + - name: Install dependencies + run: composer i + - name: Install dependencies + run: composer require --dev christophwurst/nextcloud:${{ matrix.ocp-version }} + - name: Run coding standards check + run: composer run psalm diff --git a/composer.json b/composer.json index 108c50c..543e412 100644 --- a/composer.json +++ b/composer.json @@ -5,12 +5,18 @@ }, "require-dev": { "phpunit/phpunit": "^8.5 || ^9.3", - "friendsofphp/php-cs-fixer": "^2.14" + "friendsofphp/php-cs-fixer": "^2.14", + "christophwurst/nextcloud": "dev-stable20 || dev-stable21", + "vimeo/psalm": "^4.5" }, "scripts": { "test": "phpunit --configuration phpunit.xml", "cs:check": "php-cs-fixer fix --dry-run --diff", "cs:fix": "php-cs-fixer fix", - "lint": "find . -name \\*.php -not -path './vendor/*' -exec php -l \"{}\" \\;" + "lint": "find . -name \\*.php -not -path './vendor/*' -exec php -l \"{}\" \\;", + "psalm": "psalm --threads=1", + "psalm:clear": "psalm --clear-cache && psalm --clear-global-cache", + "psalm:fix": "psalm --alter --issues=InvalidReturnType,InvalidNullableReturnType,MissingParamType,InvalidFalsableReturnType", + "psalm:update": "psalm --set-baseline=tests/psalm-baseline.xml && psalm --update-baseline" } } diff --git a/composer.lock b/composer.lock index 3030ef6..024b87f 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "2c91c5530223b5de2568a7656ef0cb68", + "content-hash": "0034a93f7304f72dce2c31b68cb1b29d", "packages": [ { "name": "sabre/uri", @@ -133,6 +133,287 @@ ], "packages-dev": [ { + "name": "amphp/amp", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/amphp/amp.git", + "reference": "efca2b32a7580087adb8aabbff6be1dc1bb924a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/amp/zipball/efca2b32a7580087adb8aabbff6be1dc1bb924a9", + "reference": "efca2b32a7580087adb8aabbff6be1dc1bb924a9", + "shasum": "" + }, + "require": { + "php": ">=7" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1", + "ext-json": "*", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^6.0.9 | ^7", + "psalm/phar": "^3.11@dev", + "react/promise": "^2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Amp\\": "lib" + }, + "files": [ + "lib/functions.php", + "lib/Internal/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A non-blocking concurrency framework for PHP applications.", + "homepage": "http://amphp.org/amp", + "keywords": [ + "async", + "asynchronous", + "awaitable", + "concurrency", + "event", + "event-loop", + "future", + "non-blocking", + "promise" + ], + "support": { + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/amp/issues", + "source": "https://github.com/amphp/amp/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2021-01-10T17:06:37+00:00" + }, + { + "name": "amphp/byte-stream", + "version": "v1.8.1", + "source": { + "type": "git", + "url": "https://github.com/amphp/byte-stream.git", + "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/acbd8002b3536485c997c4e019206b3f10ca15bd", + "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd", + "shasum": "" + }, + "require": { + "amphp/amp": "^2", + "php": ">=7.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1.4", + "friendsofphp/php-cs-fixer": "^2.3", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^6 || ^7 || ^8", + "psalm/phar": "^3.11.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Amp\\ByteStream\\": "lib" + }, + "files": [ + "lib/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A stream abstraction to make working with non-blocking I/O simple.", + "homepage": "http://amphp.org/byte-stream", + "keywords": [ + "amp", + "amphp", + "async", + "io", + "non-blocking", + "stream" + ], + "support": { + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/byte-stream/issues", + "source": "https://github.com/amphp/byte-stream/tree/v1.8.1" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2021-03-30T17:13:30+00:00" + }, + { + "name": "christophwurst/nextcloud", + "version": "dev-stable21", + "source": { + "type": "git", + "url": "https://github.com/ChristophWurst/nextcloud_composer.git", + "reference": "be42b39d878f042fca36ffb7f71b09f8de8cd9d1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ChristophWurst/nextcloud_composer/zipball/be42b39d878f042fca36ffb7f71b09f8de8cd9d1", + "reference": "be42b39d878f042fca36ffb7f71b09f8de8cd9d1", + "shasum": "" + }, + "require": { + "php": "^7.3 || ~8.0.0", + "psr/container": "^1.0", + "psr/log": "^1.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "21.0.0-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "AGPL-3.0-or-later" + ], + "authors": [ + { + "name": "Christoph Wurst", + "email": "christoph@winzerhof-wurst.at" + } + ], + "description": "Composer package containing Nextcloud's public API (classes, interfaces)", + "support": { + "issues": "https://github.com/ChristophWurst/nextcloud_composer/issues", + "source": "https://github.com/ChristophWurst/nextcloud_composer/tree/stable21" + }, + "time": "2021-03-26T07:42:50+00:00" + }, + { + "name": "composer/package-versions-deprecated", + "version": "1.11.99.1", + "source": { + "type": "git", + "url": "https://github.com/composer/package-versions-deprecated.git", + "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/7413f0b55a051e89485c5cb9f765fe24bb02a7b6", + "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1.0 || ^2.0", + "php": "^7 || ^8" + }, + "replace": { + "ocramius/package-versions": "1.11.99" + }, + "require-dev": { + "composer/composer": "^1.9.3 || ^2.0@dev", + "ext-zip": "^1.13", + "phpunit/phpunit": "^6.5 || ^7" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "support": { + "issues": "https://github.com/composer/package-versions-deprecated/issues", + "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.1" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-11-11T10:22:58+00:00" + }, + { "name": "composer/semver", "version": "3.2.4", "source": { @@ -278,6 +559,43 @@ "time": "2021-05-05T19:37:51+00:00" }, { + "name": "dnoegel/php-xdg-base-dir", + "version": "v0.1.1", + "source": { + "type": "git", + "url": "https://github.com/dnoegel/php-xdg-base-dir.git", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "XdgBaseDir\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "implementation of xdg base directory specification for php", + "support": { + "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", + "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" + }, + "time": "2019-12-04T15:06:13+00:00" + }, + { "name": "doctrine/annotations", "version": "1.13.0", "source": { @@ -499,6 +817,107 @@ "time": "2020-05-25T17:44:05+00:00" }, { + "name": "felixfbecker/advanced-json-rpc", + "version": "v3.2.0", + "source": { + "type": "git", + "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", + "reference": "06f0b06043c7438959dbdeed8bb3f699a19be22e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/06f0b06043c7438959dbdeed8bb3f699a19be22e", + "reference": "06f0b06043c7438959dbdeed8bb3f699a19be22e", + "shasum": "" + }, + "require": { + "netresearch/jsonmapper": "^1.0 || ^2.0", + "php": "^7.1 || ^8.0", + "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" + }, + "require-dev": { + "phpunit/phpunit": "^7.0 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "AdvancedJsonRpc\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "description": "A more advanced JSONRPC implementation", + "support": { + "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", + "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.0" + }, + "time": "2021-01-10T17:48:47+00:00" + }, + { + "name": "felixfbecker/language-server-protocol", + "version": "1.5.1", + "source": { + "type": "git", + "url": "https://github.com/felixfbecker/php-language-server-protocol.git", + "reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/9d846d1f5cf101deee7a61c8ba7caa0a975cd730", + "reference": "9d846d1f5cf101deee7a61c8ba7caa0a975cd730", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpstan/phpstan": "*", + "squizlabs/php_codesniffer": "^3.1", + "vimeo/psalm": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "LanguageServerProtocol\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "description": "PHP classes for the Language Server Protocol", + "keywords": [ + "language", + "microsoft", + "php", + "server" + ], + "support": { + "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", + "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/1.5.1" + }, + "time": "2021-02-22T14:02:09+00:00" + }, + { "name": "friendsofphp/php-cs-fixer", "version": "v2.19.0", "source": { @@ -666,6 +1085,57 @@ "time": "2020-11-13T09:40:50+00:00" }, { + "name": "netresearch/jsonmapper", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/cweiske/jsonmapper.git", + "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/e0f1e33a71587aca81be5cffbb9746510e1fe04e", + "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=5.6" + }, + "require-dev": { + "phpunit/phpunit": "~4.8.35 || ~5.7 || ~6.4 || ~7.0", + "squizlabs/php_codesniffer": "~3.5" + }, + "type": "library", + "autoload": { + "psr-0": { + "JsonMapper": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "OSL-3.0" + ], + "authors": [ + { + "name": "Christian Weiske", + "email": "cweiske@cweiske.de", + "homepage": "http://github.com/cweiske/jsonmapper/", + "role": "Developer" + } + ], + "description": "Map nested JSON structures onto PHP classes", + "support": { + "email": "cweiske@cweiske.de", + "issues": "https://github.com/cweiske/jsonmapper/issues", + "source": "https://github.com/cweiske/jsonmapper/tree/master" + }, + "time": "2020-04-16T18:48:43+00:00" + }, + { "name": "nikic/php-parser", "version": "v4.10.5", "source": { @@ -722,6 +1192,59 @@ "time": "2021-05-03T19:11:20+00:00" }, { + "name": "openlss/lib-array2xml", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/nullivex/lib-array2xml.git", + "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", + "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "autoload": { + "psr-0": { + "LSS": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Bryan Tong", + "email": "bryan@nullivex.com", + "homepage": "https://www.nullivex.com" + }, + { + "name": "Tony Butler", + "email": "spudz76@gmail.com", + "homepage": "https://www.nullivex.com" + } + ], + "description": "Array2XML conversion library credit to lalit.org", + "homepage": "https://www.nullivex.com", + "keywords": [ + "array", + "array conversion", + "xml", + "xml conversion" + ], + "support": { + "issues": "https://github.com/nullivex/lib-array2xml/issues", + "source": "https://github.com/nullivex/lib-array2xml/tree/master" + }, + "time": "2019-03-29T20:06:56+00:00" + }, + { "name": "phar-io/manifest", "version": "2.0.1", "source": { @@ -4181,6 +4704,111 @@ "time": "2020-07-12T23:59:07+00:00" }, { + "name": "vimeo/psalm", + "version": "4.7.2", + "source": { + "type": "git", + "url": "https://github.com/vimeo/psalm.git", + "reference": "83a0325c0a95c0ab531d6b90c877068b464377b5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/83a0325c0a95c0ab531d6b90c877068b464377b5", + "reference": "83a0325c0a95c0ab531d6b90c877068b464377b5", + "shasum": "" + }, + "require": { + "amphp/amp": "^2.4.2", + "amphp/byte-stream": "^1.5", + "composer/package-versions-deprecated": "^1.8.0", + "composer/semver": "^1.4 || ^2.0 || ^3.0", + "composer/xdebug-handler": "^1.1 || ^2.0", + "dnoegel/php-xdg-base-dir": "^0.1.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-simplexml": "*", + "ext-tokenizer": "*", + "felixfbecker/advanced-json-rpc": "^3.0.3", + "felixfbecker/language-server-protocol": "^1.5", + "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", + "nikic/php-parser": "^4.10.1", + "openlss/lib-array2xml": "^1.0", + "php": "^7.1|^8", + "sebastian/diff": "^3.0 || ^4.0", + "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0", + "webmozart/path-util": "^2.3" + }, + "provide": { + "psalm/psalm": "self.version" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.2", + "brianium/paratest": "^4.0||^6.0", + "ext-curl": "*", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpdocumentor/reflection-docblock": "^5", + "phpmyadmin/sql-parser": "5.1.0||dev-master", + "phpspec/prophecy": ">=1.9.0", + "phpunit/phpunit": "^9.0", + "psalm/plugin-phpunit": "^0.13", + "slevomat/coding-standard": "^6.3.11", + "squizlabs/php_codesniffer": "^3.5", + "symfony/process": "^4.3", + "weirdan/phpunit-appveyor-reporter": "^1.0.0", + "weirdan/prophecy-shim": "^1.0 || ^2.0" + }, + "suggest": { + "ext-igbinary": "^2.0.5" + }, + "bin": [ + "psalm", + "psalm-language-server", + "psalm-plugin", + "psalm-refactor", + "psalter" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev", + "dev-3.x": "3.x-dev", + "dev-2.x": "2.x-dev", + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psalm\\": "src/Psalm/" + }, + "files": [ + "src/functions.php", + "src/spl_object_id.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matthew Brown" + } + ], + "description": "A static analysis tool for finding errors in PHP applications", + "keywords": [ + "code", + "inspection", + "php" + ], + "support": { + "issues": "https://github.com/vimeo/psalm/issues", + "source": "https://github.com/vimeo/psalm/tree/4.7.2" + }, + "time": "2021-05-01T20:56:25+00:00" + }, + { "name": "webmozart/assert", "version": "1.10.0", "source": { @@ -4237,11 +4865,63 @@ "source": "https://github.com/webmozarts/assert/tree/1.10.0" }, "time": "2021-03-09T10:59:23+00:00" + }, + { + "name": "webmozart/path-util", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/path-util.git", + "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", + "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "webmozart/assert": "~1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\PathUtil\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", + "support": { + "issues": "https://github.com/webmozart/path-util/issues", + "source": "https://github.com/webmozart/path-util/tree/2.3.0" + }, + "time": "2015-12-17T08:42:14+00:00" } ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": { + "christophwurst/nextcloud": 20 + }, "prefer-stable": false, "prefer-lowest": false, "platform": [], diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php index 02700aa..417ea17 100644 --- a/lib/AppInfo/Application.php +++ b/lib/AppInfo/Application.php @@ -30,11 +30,11 @@ use OCA\OJSXC\Hooks; use OCA\OJSXC\UserManagerUserProvider; use OCA\OJSXC\ContactsStoreUserProvider; use OCA\OJSXC\Config; -use OCP\AppFramework\App; use OCP\IContainer; use OCP\IRequest; use OCP\IUserBackend; use OCA\OJSXC\Migration\MigrateConfig; +use OCP\AppFramework\App; class Application extends App { diff --git a/lib/command/refreshroster.php b/lib/Command/RefreshRoster.php index 331810b..b7eb769 100644 --- a/lib/command/refreshroster.php +++ b/lib/Command/RefreshRoster.php @@ -50,5 +50,7 @@ class RefreshRoster extends Command $stats = $this->rosterPush->refreshRoster(); $output->writeln("Updated " . $stats["updated"] . " roster items"); $output->writeln("Removed " . $stats["removed"] . " roster items"); + + return 0; } } diff --git a/lib/command/serversharing.php b/lib/Command/ServerSharing.php index eb6189b..c290581 100644 --- a/lib/command/serversharing.php +++ b/lib/Command/ServerSharing.php @@ -8,7 +8,7 @@ use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; -class serversharing extends Command +class ServerSharing extends Command { /** @@ -33,14 +33,9 @@ class serversharing extends Command protected function execute(InputInterface $input, OutputInterface $output) { - if (\OCP\Util::getVersion()[0] < 13) { - $output->write('This feature is only supported in Nextcloud 13 or later.', true); - return; - } - if (Application::getServerType() !== 'internal') { $output->write('This feature is only supported using the internal backend.', true); - return; + return 0; } $enable = $input->getOption('enable'); @@ -53,13 +48,13 @@ class serversharing extends Command $state = 'disabled'; } $output->write('This feature is currently ' . $state, true); - return; + return 0; } if ($enable === $disable) { // if both enable and disable passed or none option $output->write('Please provide only --enable or --disable', true); - return; + return 1; } @@ -72,5 +67,7 @@ class serversharing extends Command $this->config->setAppValue('ojsxc', 'use_server_sharing_settings', 'no'); $output->write('Successfully disabled.', true); } + + return 0; } } diff --git a/lib/Controller/HttpBindController.php b/lib/Controller/HttpBindController.php index 4f20762..84e5bb0 100644 --- a/lib/Controller/HttpBindController.php +++ b/lib/Controller/HttpBindController.php @@ -58,18 +58,16 @@ class HttpBindController extends Controller */ private $messageHandler; - /** - * @var Body request body - */ + /** @var string */ private $body; /** - * @var SleepTime + * @var int SleepTime */ private $sleepTime; /** - * @var SleepTime + * @var int */ private $maxCicles; @@ -245,7 +243,7 @@ class HttpBindController extends Controller /** * @param $stanza - * @return int + * @return int|null * @codeCoverageIgnore */ private function getStanzaType($stanza) diff --git a/lib/Controller/ManagedServerController.php b/lib/Controller/ManagedServerController.php index 58cd0be..878fac6 100644 --- a/lib/Controller/ManagedServerController.php +++ b/lib/Controller/ManagedServerController.php @@ -23,8 +23,9 @@ class ManagedServerController extends Controller private $userSession; private $logger; private $dataRetriever; - private $registrationUrl; private $random; + private $appManager; + private $registrationUrl; public function __construct( $appName, diff --git a/lib/Migration/MigrateConfig.php b/lib/Migration/MigrateConfig.php index a4ab91f..b4c49c6 100644 --- a/lib/Migration/MigrateConfig.php +++ b/lib/Migration/MigrateConfig.php @@ -3,6 +3,7 @@ namespace OCA\OJSXC\Migration; use OCA\OJSXC\Config; +use OCP\ILogger; use OCP\Migration\IOutput; use OCP\Migration\IRepairStep; @@ -14,7 +15,7 @@ class MigrateConfig implements IRepairStep private $config; /** - * @param IConfig $config + * @param Config $config * @param ILogger $logger */ public function __construct(Config $config) diff --git a/lib/Migration/RefreshRoster.php b/lib/Migration/RefreshRoster.php index f7023d5..b4779ac 100644 --- a/lib/Migration/RefreshRoster.php +++ b/lib/Migration/RefreshRoster.php @@ -64,7 +64,7 @@ class RefreshRoster implements IRepairStep * We want only to refresh the rosters if this app was installed before, * since only then the rosters can be outdated. */ - if ($this->config->getAppValue('ojsxc', 'installed_version', null) !== null + if ($this->config->getAppValue('ojsxc', 'installed_version') !== '' && Application::getServerType() === Application::INTERNAL) { $stats = $this->rosterPush->refreshRoster(); $output->info("Updated " . $stats["updated"] . " roster items"); diff --git a/lib/UserManagerUserProvider.php b/lib/UserManagerUserProvider.php index 7685d64..bcc7ce0 100644 --- a/lib/UserManagerUserProvider.php +++ b/lib/UserManagerUserProvider.php @@ -68,13 +68,13 @@ class UserManagerUserProvider implements IUserProvider public function hasUserForUser(User $user1, User $user2) { // since we don't have access to the ContactsStore, we don't apply the enhancement privacy rules. - $this->hasUser($user2); + return $this->hasUser($user2); } public function hasUserForUserByUID($uid1, $uid2) { // since we don't have access to the ContactsStore, we don't apply the enhancement privacy rules. - $this->hasUserByUID($uid2); + return $this->hasUserByUID($uid2); } public function isUserExcluded($userId) diff --git a/lib/db/stanza.php b/lib/db/stanza.php index 7db1b5b..a3e5145 100644 --- a/lib/db/stanza.php +++ b/lib/db/stanza.php @@ -64,10 +64,10 @@ class Stanza extends Entity implements XmlSerializable * Sets the to user as a `user`. * * @see setFullTo - * @param $userId - * @param null $host_and_or_resource + * @param string $userId + * @param string $host_and_or_resource */ - public function setTo($userId, $host_and_or_resource = null) + public function setTo($userId, ?string $host_and_or_resource = null) { if (is_array($userId)) { // support mapFromRow @@ -87,9 +87,9 @@ class Stanza extends Entity implements XmlSerializable * * @see setFullFrom * @param $userId - * @param null $host_and_or_resource + * @param string $host_and_or_resource */ - public function setFrom($userId, $host_and_or_resource = null) + public function setFrom($userId, ?string $host_and_or_resource = null) { if (is_array($userId)) { // support mapFromRow diff --git a/lib/dblock.php b/lib/dblock.php index 31a5888..791c8ed 100644 --- a/lib/dblock.php +++ b/lib/dblock.php @@ -27,6 +27,9 @@ class DbLock implements ILock */ private $pollingId; + /** @var IDBConnection */ + private $con; + /** * DbLock constructor. * diff --git a/lib/memlock.php b/lib/memlock.php index 64ddb0a..902bfdd 100644 --- a/lib/memlock.php +++ b/lib/memlock.php @@ -13,7 +13,7 @@ class MemLock implements ILock { /** - * @var \OCP\ICache $memcache + * @var ICache $memcache */ private $memcache; @@ -43,7 +43,7 @@ class MemLock implements ILock public function setLock() { $this->memcache->remove('-' . $this->userId . '-ojxsc-lock'); - $this->memcache->add('-' . $this->userId . '-ojxsc-lock', $this->pollingId); + $this->memcache->set('-' . $this->userId . '-ojxsc-lock', $this->pollingId); } /** diff --git a/lib/stanzahandlers/iq.php b/lib/stanzahandlers/iq.php index 8ccc5c0..dd4cd36 100644 --- a/lib/stanzahandlers/iq.php +++ b/lib/stanzahandlers/iq.php @@ -53,7 +53,7 @@ class IQ extends StanzaHandler /** * @param array $stanza - * @return Stanza + * @return Stanza|null * @throws TerminateException */ public function handle(array $stanza) diff --git a/psalm.xml b/psalm.xml new file mode 100644 index 0000000..e7b226e --- /dev/null +++ b/psalm.xml @@ -0,0 +1,37 @@ +<?xml version="1.0"?> +<psalm + totallyTyped="true" + errorLevel="5" + resolveFromConfigFile="true" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns="https://getpsalm.org/schema/config" + xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd" +> + <projectFiles> + <directory name="lib" /> + <ignoreFiles> + <directory name="vendor" /> + </ignoreFiles> + </projectFiles> + <extraFiles> + <directory name="vendor" /> + <ignoreFiles> + <directory name="vendor/phpunit/php-code-coverage" /> + </ignoreFiles> + </extraFiles> + <issueHandlers> + <UndefinedClass> + <errorLevel type="suppress"> + <referencedClass name="OC" /> + </errorLevel> + </UndefinedClass> + <UndefinedDocblockClass> + <errorLevel type="suppress"> + <referencedClass name="Doctrine\DBAL\Schema\Schema" /> + <referencedClass name="Doctrine\DBAL\Schema\SchemaException" /> + <referencedClass name="Doctrine\DBAL\Driver\Statement" /> + <referencedClass name="Doctrine\DBAL\Schema\Table" /> + </errorLevel> + </UndefinedDocblockClass> + </issueHandlers> +</psalm> |