Add a new API endpoint to allow the refresh of the confirmation_key

Complete the related documentation and tests
Update the dependencies
This commit is contained in:
Timothée Jaussoin 2022-05-10 17:09:53 +02:00
parent 5e377a2b84
commit 4345fa8a42
7 changed files with 230 additions and 185 deletions

View file

@ -70,7 +70,7 @@ class AccountController extends Controller
$account->delete();
}
public function activate($id)
public function activate(int $id)
{
$account = Account::findOrFail($id);
$account->activated = true;
@ -81,7 +81,7 @@ class AccountController extends Controller
return $account;
}
public function deactivate($id)
public function deactivate(int $id)
{
$account = Account::findOrFail($id);
$account->activated = false;
@ -92,6 +92,17 @@ class AccountController extends Controller
return $account;
}
public function provision(int $id)
{
$account = Account::findOrFail($id);
$account->confirmation_key = Str::random(WebAuthenticateController::$emailCodeSize);
$account->save();
Log::channel('events')->info('API Admin: Account provisioned', ['id' => $account->identifier]);
return $account->makeVisible(['confirmation_key']);
}
public function store(Request $request)
{
$request->validate([

364
flexiapi/composer.lock generated
View file

@ -332,22 +332,22 @@
},
{
"name": "doctrine/dbal",
"version": "3.3.3",
"version": "3.3.6",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
"reference": "82331b861727c15b1f457ef05a8729e508e7ead5"
"reference": "9e7f76dd1cde81c62574fdffa5a9c655c847ad21"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/82331b861727c15b1f457ef05a8729e508e7ead5",
"reference": "82331b861727c15b1f457ef05a8729e508e7ead5",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/9e7f76dd1cde81c62574fdffa5a9c655c847ad21",
"reference": "9e7f76dd1cde81c62574fdffa5a9c655c847ad21",
"shasum": ""
},
"require": {
"composer-runtime-api": "^2",
"doctrine/cache": "^1.11|^2.0",
"doctrine/deprecations": "^0.5.3",
"doctrine/deprecations": "^0.5.3|^1",
"doctrine/event-manager": "^1.0",
"php": "^7.3 || ^8.0",
"psr/cache": "^1|^2|^3",
@ -355,15 +355,15 @@
},
"require-dev": {
"doctrine/coding-standard": "9.0.0",
"jetbrains/phpstorm-stubs": "2021.1",
"phpstan/phpstan": "1.4.6",
"phpstan/phpstan-strict-rules": "^1.1",
"phpunit/phpunit": "9.5.16",
"jetbrains/phpstorm-stubs": "2022.1",
"phpstan/phpstan": "1.6.3",
"phpstan/phpstan-strict-rules": "^1.2",
"phpunit/phpunit": "9.5.20",
"psalm/plugin-phpunit": "0.16.1",
"squizlabs/php_codesniffer": "3.6.2",
"symfony/cache": "^5.2|^6.0",
"symfony/console": "^2.7|^3.0|^4.0|^5.0|^6.0",
"vimeo/psalm": "4.22.0"
"vimeo/psalm": "4.23.0"
},
"suggest": {
"symfony/console": "For helpful console commands such as SQL execution and import of files."
@ -423,7 +423,7 @@
],
"support": {
"issues": "https://github.com/doctrine/dbal/issues",
"source": "https://github.com/doctrine/dbal/tree/3.3.3"
"source": "https://github.com/doctrine/dbal/tree/3.3.6"
},
"funding": [
{
@ -439,29 +439,29 @@
"type": "tidelift"
}
],
"time": "2022-03-09T15:39:50+00:00"
"time": "2022-05-02T17:21:01+00:00"
},
{
"name": "doctrine/deprecations",
"version": "v0.5.3",
"version": "v1.0.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/deprecations.git",
"reference": "9504165960a1f83cc1480e2be1dd0a0478561314"
"reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/deprecations/zipball/9504165960a1f83cc1480e2be1dd0a0478561314",
"reference": "9504165960a1f83cc1480e2be1dd0a0478561314",
"url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de",
"reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de",
"shasum": ""
},
"require": {
"php": "^7.1|^8.0"
},
"require-dev": {
"doctrine/coding-standard": "^6.0|^7.0|^8.0",
"phpunit/phpunit": "^7.0|^8.0|^9.0",
"psr/log": "^1.0"
"doctrine/coding-standard": "^9",
"phpunit/phpunit": "^7.5|^8.5|^9.5",
"psr/log": "^1|^2|^3"
},
"suggest": {
"psr/log": "Allows logging deprecations via PSR-3 logger implementation"
@ -480,9 +480,9 @@
"homepage": "https://www.doctrine-project.org/",
"support": {
"issues": "https://github.com/doctrine/deprecations/issues",
"source": "https://github.com/doctrine/deprecations/tree/v0.5.3"
"source": "https://github.com/doctrine/deprecations/tree/v1.0.0"
},
"time": "2021-03-21T12:59:47+00:00"
"time": "2022-05-02T15:47:09+00:00"
},
{
"name": "doctrine/event-manager",
@ -1430,16 +1430,16 @@
},
{
"name": "laravel/framework",
"version": "v8.83.5",
"version": "v8.83.12",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "33b1b981266e3a19fbc826b60c4a6847e311ac95"
"reference": "2af2314989845db68dfbb65a54b8748ffaf26204"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/33b1b981266e3a19fbc826b60c4a6847e311ac95",
"reference": "33b1b981266e3a19fbc826b60c4a6847e311ac95",
"url": "https://api.github.com/repos/laravel/framework/zipball/2af2314989845db68dfbb65a54b8748ffaf26204",
"reference": "2af2314989845db68dfbb65a54b8748ffaf26204",
"shasum": ""
},
"require": {
@ -1599,7 +1599,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2022-03-15T13:37:44+00:00"
"time": "2022-05-10T13:57:07+00:00"
},
{
"name": "laravel/serializable-closure",
@ -1662,16 +1662,16 @@
},
{
"name": "laravel/tinker",
"version": "v2.7.1",
"version": "v2.7.2",
"source": {
"type": "git",
"url": "https://github.com/laravel/tinker.git",
"reference": "1e2d500585a4e546346fadd3adc6f9c1a97e15f4"
"reference": "dff39b661e827dae6e092412f976658df82dbac5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/tinker/zipball/1e2d500585a4e546346fadd3adc6f9c1a97e15f4",
"reference": "1e2d500585a4e546346fadd3adc6f9c1a97e15f4",
"url": "https://api.github.com/repos/laravel/tinker/zipball/dff39b661e827dae6e092412f976658df82dbac5",
"reference": "dff39b661e827dae6e092412f976658df82dbac5",
"shasum": ""
},
"require": {
@ -1724,9 +1724,9 @@
],
"support": {
"issues": "https://github.com/laravel/tinker/issues",
"source": "https://github.com/laravel/tinker/tree/v2.7.1"
"source": "https://github.com/laravel/tinker/tree/v2.7.2"
},
"time": "2022-03-15T15:25:01+00:00"
"time": "2022-03-23T12:38:24+00:00"
},
{
"name": "laravelcollective/html",
@ -1989,16 +1989,16 @@
},
{
"name": "league/mime-type-detection",
"version": "1.9.0",
"version": "1.11.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/mime-type-detection.git",
"reference": "aa70e813a6ad3d1558fc927863d47309b4c23e69"
"reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/aa70e813a6ad3d1558fc927863d47309b4c23e69",
"reference": "aa70e813a6ad3d1558fc927863d47309b4c23e69",
"url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ff6248ea87a9f116e78edd6002e39e5128a0d4dd",
"reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd",
"shasum": ""
},
"require": {
@ -2029,7 +2029,7 @@
"description": "Mime-type detection for Flysystem",
"support": {
"issues": "https://github.com/thephpleague/mime-type-detection/issues",
"source": "https://github.com/thephpleague/mime-type-detection/tree/1.9.0"
"source": "https://github.com/thephpleague/mime-type-detection/tree/1.11.0"
},
"funding": [
{
@ -2041,20 +2041,20 @@
"type": "tidelift"
}
],
"time": "2021-11-21T11:48:40+00:00"
"time": "2022-04-17T13:12:02+00:00"
},
{
"name": "monolog/monolog",
"version": "2.4.0",
"version": "2.6.0",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
"reference": "d7fd7450628561ba697b7097d86db72662f54aef"
"reference": "247918972acd74356b0a91dfaa5adcaec069b6c0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/d7fd7450628561ba697b7097d86db72662f54aef",
"reference": "d7fd7450628561ba697b7097d86db72662f54aef",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/247918972acd74356b0a91dfaa5adcaec069b6c0",
"reference": "247918972acd74356b0a91dfaa5adcaec069b6c0",
"shasum": ""
},
"require": {
@ -2067,18 +2067,23 @@
"require-dev": {
"aws/aws-sdk-php": "^2.4.9 || ^3.0",
"doctrine/couchdb": "~1.0@dev",
"elasticsearch/elasticsearch": "^7",
"elasticsearch/elasticsearch": "^7 || ^8",
"ext-json": "*",
"graylog2/gelf-php": "^1.4.2",
"guzzlehttp/guzzle": "^7.4",
"guzzlehttp/psr7": "^2.2",
"mongodb/mongodb": "^1.8",
"php-amqplib/php-amqplib": "~2.4 || ^3",
"php-console/php-console": "^3.1.3",
"phpspec/prophecy": "^1.6.1",
"phpspec/prophecy": "^1.15",
"phpstan/phpstan": "^0.12.91",
"phpunit/phpunit": "^8.5",
"phpunit/phpunit": "^8.5.14",
"predis/predis": "^1.1",
"rollbar/rollbar": "^1.3 || ^2 || ^3",
"ruflin/elastica": ">=0.90@dev",
"swiftmailer/swiftmailer": "^5.3|^6.0"
"ruflin/elastica": "^7",
"swiftmailer/swiftmailer": "^5.3|^6.0",
"symfony/mailer": "^5.4 || ^6",
"symfony/mime": "^5.4 || ^6"
},
"suggest": {
"aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
@ -2128,7 +2133,7 @@
],
"support": {
"issues": "https://github.com/Seldaek/monolog/issues",
"source": "https://github.com/Seldaek/monolog/tree/2.4.0"
"source": "https://github.com/Seldaek/monolog/tree/2.6.0"
},
"funding": [
{
@ -2140,20 +2145,20 @@
"type": "tidelift"
}
],
"time": "2022-03-14T12:44:37+00:00"
"time": "2022-05-10T09:36:00+00:00"
},
{
"name": "nesbot/carbon",
"version": "2.57.0",
"version": "2.58.0",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
"reference": "4a54375c21eea4811dbd1149fe6b246517554e78"
"reference": "97a34af22bde8d0ac20ab34b29d7bfe360902055"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4a54375c21eea4811dbd1149fe6b246517554e78",
"reference": "4a54375c21eea4811dbd1149fe6b246517554e78",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/97a34af22bde8d0ac20ab34b29d7bfe360902055",
"reference": "97a34af22bde8d0ac20ab34b29d7bfe360902055",
"shasum": ""
},
"require": {
@ -2171,7 +2176,8 @@
"phpmd/phpmd": "^2.9",
"phpstan/extension-installer": "^1.0",
"phpstan/phpstan": "^0.12.54 || ^1.0",
"phpunit/phpunit": "^7.5.20 || ^8.5.14",
"phpunit/php-file-iterator": "^2.0.5",
"phpunit/phpunit": "^7.5.20 || ^8.5.23",
"squizlabs/php_codesniffer": "^3.4"
},
"bin": [
@ -2236,7 +2242,7 @@
"type": "tidelift"
}
],
"time": "2022-02-13T18:13:33+00:00"
"time": "2022-04-25T19:31:17+00:00"
},
{
"name": "nikic/php-parser",
@ -2834,16 +2840,16 @@
},
{
"name": "psy/psysh",
"version": "v0.11.2",
"version": "v0.11.4",
"source": {
"type": "git",
"url": "https://github.com/bobthecow/psysh.git",
"reference": "7f7da640d68b9c9fec819caae7c744a213df6514"
"reference": "05c544b339b112226ad14803e1e5b09a61957454"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/7f7da640d68b9c9fec819caae7c744a213df6514",
"reference": "7f7da640d68b9c9fec819caae7c744a213df6514",
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/05c544b339b112226ad14803e1e5b09a61957454",
"reference": "05c544b339b112226ad14803e1e5b09a61957454",
"shasum": ""
},
"require": {
@ -2858,15 +2864,13 @@
"symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.2",
"hoa/console": "3.17.05.02"
"bamarni/composer-bin-plugin": "^1.2"
},
"suggest": {
"ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
"ext-pdo-sqlite": "The doc command requires SQLite to work.",
"ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.",
"ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.",
"hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit."
"ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history."
},
"bin": [
"bin/psysh"
@ -2906,9 +2910,9 @@
],
"support": {
"issues": "https://github.com/bobthecow/psysh/issues",
"source": "https://github.com/bobthecow/psysh/tree/v0.11.2"
"source": "https://github.com/bobthecow/psysh/tree/v0.11.4"
},
"time": "2022-02-28T15:28:54+00:00"
"time": "2022-05-06T12:49:14+00:00"
},
{
"name": "ralouphie/getallheaders",
@ -3892,16 +3896,16 @@
},
{
"name": "symfony/console",
"version": "v5.4.5",
"version": "v5.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "d8111acc99876953f52fe16d4c50eb60940d49ad"
"reference": "ffe3aed36c4d60da2cf1b0a1cee6b8f2e5fa881b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/d8111acc99876953f52fe16d4c50eb60940d49ad",
"reference": "d8111acc99876953f52fe16d4c50eb60940d49ad",
"url": "https://api.github.com/repos/symfony/console/zipball/ffe3aed36c4d60da2cf1b0a1cee6b8f2e5fa881b",
"reference": "ffe3aed36c4d60da2cf1b0a1cee6b8f2e5fa881b",
"shasum": ""
},
"require": {
@ -3971,7 +3975,7 @@
"terminal"
],
"support": {
"source": "https://github.com/symfony/console/tree/v5.4.5"
"source": "https://github.com/symfony/console/tree/v5.4.8"
},
"funding": [
{
@ -3987,7 +3991,7 @@
"type": "tidelift"
}
],
"time": "2022-02-24T12:45:35+00:00"
"time": "2022-04-12T16:02:29+00:00"
},
{
"name": "symfony/css-selector",
@ -4057,16 +4061,16 @@
},
{
"name": "symfony/deprecation-contracts",
"version": "v2.5.0",
"version": "v2.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
"reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8"
"reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8",
"reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
"reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
"shasum": ""
},
"require": {
@ -4104,7 +4108,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.0"
"source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.1"
},
"funding": [
{
@ -4120,20 +4124,20 @@
"type": "tidelift"
}
],
"time": "2021-07-12T14:48:14+00:00"
"time": "2022-01-02T09:53:40+00:00"
},
{
"name": "symfony/error-handler",
"version": "v5.4.3",
"version": "v5.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
"reference": "c4ffc2cd919950d13c8c9ce32a70c70214c3ffc5"
"reference": "c1fcde614dfe99d62a83b796a53b8bad358b266a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/error-handler/zipball/c4ffc2cd919950d13c8c9ce32a70c70214c3ffc5",
"reference": "c4ffc2cd919950d13c8c9ce32a70c70214c3ffc5",
"url": "https://api.github.com/repos/symfony/error-handler/zipball/c1fcde614dfe99d62a83b796a53b8bad358b266a",
"reference": "c1fcde614dfe99d62a83b796a53b8bad358b266a",
"shasum": ""
},
"require": {
@ -4175,7 +4179,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/error-handler/tree/v5.4.3"
"source": "https://github.com/symfony/error-handler/tree/v5.4.8"
},
"funding": [
{
@ -4191,7 +4195,7 @@
"type": "tidelift"
}
],
"time": "2022-01-02T09:53:40+00:00"
"time": "2022-04-12T15:48:08+00:00"
},
{
"name": "symfony/event-dispatcher",
@ -4280,16 +4284,16 @@
},
{
"name": "symfony/event-dispatcher-contracts",
"version": "v2.5.0",
"version": "v2.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
"reference": "66bea3b09be61613cd3b4043a65a8ec48cfa6d2a"
"reference": "f98b54df6ad059855739db6fcbc2d36995283fe1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/66bea3b09be61613cd3b4043a65a8ec48cfa6d2a",
"reference": "66bea3b09be61613cd3b4043a65a8ec48cfa6d2a",
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1",
"reference": "f98b54df6ad059855739db6fcbc2d36995283fe1",
"shasum": ""
},
"require": {
@ -4339,7 +4343,7 @@
"standards"
],
"support": {
"source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.0"
"source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.1"
},
"funding": [
{
@ -4355,20 +4359,20 @@
"type": "tidelift"
}
],
"time": "2021-07-12T14:48:14+00:00"
"time": "2022-01-02T09:53:40+00:00"
},
{
"name": "symfony/finder",
"version": "v5.4.3",
"version": "v5.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
"reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d"
"reference": "9b630f3427f3ebe7cd346c277a1408b00249dad9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/231313534dded84c7ecaa79d14bc5da4ccb69b7d",
"reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d",
"url": "https://api.github.com/repos/symfony/finder/zipball/9b630f3427f3ebe7cd346c277a1408b00249dad9",
"reference": "9b630f3427f3ebe7cd346c277a1408b00249dad9",
"shasum": ""
},
"require": {
@ -4402,7 +4406,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/finder/tree/v5.4.3"
"source": "https://github.com/symfony/finder/tree/v5.4.8"
},
"funding": [
{
@ -4418,20 +4422,20 @@
"type": "tidelift"
}
],
"time": "2022-01-26T16:34:36+00:00"
"time": "2022-04-15T08:07:45+00:00"
},
{
"name": "symfony/http-foundation",
"version": "v5.4.6",
"version": "v5.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
"reference": "34e89bc147633c0f9dd6caaaf56da3b806a21465"
"reference": "ff2818d1c3d49860bcae1f2cbb5eb00fcd3bf9e2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/34e89bc147633c0f9dd6caaaf56da3b806a21465",
"reference": "34e89bc147633c0f9dd6caaaf56da3b806a21465",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/ff2818d1c3d49860bcae1f2cbb5eb00fcd3bf9e2",
"reference": "ff2818d1c3d49860bcae1f2cbb5eb00fcd3bf9e2",
"shasum": ""
},
"require": {
@ -4475,7 +4479,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/http-foundation/tree/v5.4.6"
"source": "https://github.com/symfony/http-foundation/tree/v5.4.8"
},
"funding": [
{
@ -4491,20 +4495,20 @@
"type": "tidelift"
}
],
"time": "2022-03-05T21:03:43+00:00"
"time": "2022-04-22T08:14:12+00:00"
},
{
"name": "symfony/http-kernel",
"version": "v5.4.6",
"version": "v5.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
"reference": "d41f29ae9af1b5f40c7ebcddf09082953229411d"
"reference": "cf7e61106abfc19b305ca0aedc41724ced89a02a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/d41f29ae9af1b5f40c7ebcddf09082953229411d",
"reference": "d41f29ae9af1b5f40c7ebcddf09082953229411d",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/cf7e61106abfc19b305ca0aedc41724ced89a02a",
"reference": "cf7e61106abfc19b305ca0aedc41724ced89a02a",
"shasum": ""
},
"require": {
@ -4587,7 +4591,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/http-kernel/tree/v5.4.6"
"source": "https://github.com/symfony/http-kernel/tree/v5.4.8"
},
"funding": [
{
@ -4603,20 +4607,20 @@
"type": "tidelift"
}
],
"time": "2022-03-05T21:14:51+00:00"
"time": "2022-04-27T17:22:21+00:00"
},
{
"name": "symfony/mime",
"version": "v5.4.3",
"version": "v5.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
"reference": "e1503cfb5c9a225350f549d3bb99296f4abfb80f"
"reference": "af49bc163ec3272f677bde3bc44c0d766c1fd662"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/mime/zipball/e1503cfb5c9a225350f549d3bb99296f4abfb80f",
"reference": "e1503cfb5c9a225350f549d3bb99296f4abfb80f",
"url": "https://api.github.com/repos/symfony/mime/zipball/af49bc163ec3272f677bde3bc44c0d766c1fd662",
"reference": "af49bc163ec3272f677bde3bc44c0d766c1fd662",
"shasum": ""
},
"require": {
@ -4670,7 +4674,7 @@
"mime-type"
],
"support": {
"source": "https://github.com/symfony/mime/tree/v5.4.3"
"source": "https://github.com/symfony/mime/tree/v5.4.8"
},
"funding": [
{
@ -4686,7 +4690,7 @@
"type": "tidelift"
}
],
"time": "2022-01-02T09:53:40+00:00"
"time": "2022-04-12T15:48:08+00:00"
},
{
"name": "symfony/polyfill-ctype",
@ -5507,16 +5511,16 @@
},
{
"name": "symfony/process",
"version": "v5.4.5",
"version": "v5.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
"reference": "95440409896f90a5f85db07a32b517ecec17fa4c"
"reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/95440409896f90a5f85db07a32b517ecec17fa4c",
"reference": "95440409896f90a5f85db07a32b517ecec17fa4c",
"url": "https://api.github.com/repos/symfony/process/zipball/597f3fff8e3e91836bb0bd38f5718b56ddbde2f3",
"reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3",
"shasum": ""
},
"require": {
@ -5549,7 +5553,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/process/tree/v5.4.5"
"source": "https://github.com/symfony/process/tree/v5.4.8"
},
"funding": [
{
@ -5565,20 +5569,20 @@
"type": "tidelift"
}
],
"time": "2022-01-30T18:16:22+00:00"
"time": "2022-04-08T05:07:18+00:00"
},
{
"name": "symfony/routing",
"version": "v5.4.3",
"version": "v5.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
"reference": "44b29c7a94e867ccde1da604792f11a469958981"
"reference": "e07817bb6244ea33ef5ad31abc4a9288bef3f2f7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/routing/zipball/44b29c7a94e867ccde1da604792f11a469958981",
"reference": "44b29c7a94e867ccde1da604792f11a469958981",
"url": "https://api.github.com/repos/symfony/routing/zipball/e07817bb6244ea33ef5ad31abc4a9288bef3f2f7",
"reference": "e07817bb6244ea33ef5ad31abc4a9288bef3f2f7",
"shasum": ""
},
"require": {
@ -5639,7 +5643,7 @@
"url"
],
"support": {
"source": "https://github.com/symfony/routing/tree/v5.4.3"
"source": "https://github.com/symfony/routing/tree/v5.4.8"
},
"funding": [
{
@ -5655,26 +5659,26 @@
"type": "tidelift"
}
],
"time": "2022-01-02T09:53:40+00:00"
"time": "2022-04-18T21:45:37+00:00"
},
{
"name": "symfony/service-contracts",
"version": "v2.5.0",
"version": "v2.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
"reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc"
"reference": "24d9dc654b83e91aa59f9d167b131bc3b5bea24c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc",
"reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/24d9dc654b83e91aa59f9d167b131bc3b5bea24c",
"reference": "24d9dc654b83e91aa59f9d167b131bc3b5bea24c",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"psr/container": "^1.1",
"symfony/deprecation-contracts": "^2.1"
"symfony/deprecation-contracts": "^2.1|^3"
},
"conflict": {
"ext-psr": "<1.1|>=2"
@ -5722,7 +5726,7 @@
"standards"
],
"support": {
"source": "https://github.com/symfony/service-contracts/tree/v2.5.0"
"source": "https://github.com/symfony/service-contracts/tree/v2.5.1"
},
"funding": [
{
@ -5738,20 +5742,20 @@
"type": "tidelift"
}
],
"time": "2021-11-04T16:48:04+00:00"
"time": "2022-03-13T20:07:29+00:00"
},
{
"name": "symfony/string",
"version": "v5.4.3",
"version": "v5.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
"reference": "92043b7d8383e48104e411bc9434b260dbeb5a10"
"reference": "3c061a76bff6d6ea427d85e12ad1bb8ed8cd43e8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/92043b7d8383e48104e411bc9434b260dbeb5a10",
"reference": "92043b7d8383e48104e411bc9434b260dbeb5a10",
"url": "https://api.github.com/repos/symfony/string/zipball/3c061a76bff6d6ea427d85e12ad1bb8ed8cd43e8",
"reference": "3c061a76bff6d6ea427d85e12ad1bb8ed8cd43e8",
"shasum": ""
},
"require": {
@ -5808,7 +5812,7 @@
"utf8"
],
"support": {
"source": "https://github.com/symfony/string/tree/v5.4.3"
"source": "https://github.com/symfony/string/tree/v5.4.8"
},
"funding": [
{
@ -5824,20 +5828,20 @@
"type": "tidelift"
}
],
"time": "2022-01-02T09:53:40+00:00"
"time": "2022-04-19T10:40:37+00:00"
},
{
"name": "symfony/translation",
"version": "v5.4.6",
"version": "v5.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
"reference": "a7ca9fdfffb0174209440c2ffa1dee228e15d95b"
"reference": "f5c0f6d1f20993b2606f3a5f36b1dc8c1899170b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/a7ca9fdfffb0174209440c2ffa1dee228e15d95b",
"reference": "a7ca9fdfffb0174209440c2ffa1dee228e15d95b",
"url": "https://api.github.com/repos/symfony/translation/zipball/f5c0f6d1f20993b2606f3a5f36b1dc8c1899170b",
"reference": "f5c0f6d1f20993b2606f3a5f36b1dc8c1899170b",
"shasum": ""
},
"require": {
@ -5905,7 +5909,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/translation/tree/v5.4.6"
"source": "https://github.com/symfony/translation/tree/v5.4.8"
},
"funding": [
{
@ -5921,20 +5925,20 @@
"type": "tidelift"
}
],
"time": "2022-03-02T12:56:28+00:00"
"time": "2022-04-22T08:14:12+00:00"
},
{
"name": "symfony/translation-contracts",
"version": "v2.5.0",
"version": "v2.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
"reference": "d28150f0f44ce854e942b671fc2620a98aae1b1e"
"reference": "1211df0afa701e45a04253110e959d4af4ef0f07"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/d28150f0f44ce854e942b671fc2620a98aae1b1e",
"reference": "d28150f0f44ce854e942b671fc2620a98aae1b1e",
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/1211df0afa701e45a04253110e959d4af4ef0f07",
"reference": "1211df0afa701e45a04253110e959d4af4ef0f07",
"shasum": ""
},
"require": {
@ -5983,7 +5987,7 @@
"standards"
],
"support": {
"source": "https://github.com/symfony/translation-contracts/tree/v2.5.0"
"source": "https://github.com/symfony/translation-contracts/tree/v2.5.1"
},
"funding": [
{
@ -5999,20 +6003,20 @@
"type": "tidelift"
}
],
"time": "2021-08-17T14:20:01+00:00"
"time": "2022-01-02T09:53:40+00:00"
},
{
"name": "symfony/var-dumper",
"version": "v5.4.6",
"version": "v5.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
"reference": "294e9da6e2e0dd404e983daa5aa74253d92c05d0"
"reference": "cdcadd343d31ad16fc5e006b0de81ea307435053"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/294e9da6e2e0dd404e983daa5aa74253d92c05d0",
"reference": "294e9da6e2e0dd404e983daa5aa74253d92c05d0",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/cdcadd343d31ad16fc5e006b0de81ea307435053",
"reference": "cdcadd343d31ad16fc5e006b0de81ea307435053",
"shasum": ""
},
"require": {
@ -6072,7 +6076,7 @@
"dump"
],
"support": {
"source": "https://github.com/symfony/var-dumper/tree/v5.4.6"
"source": "https://github.com/symfony/var-dumper/tree/v5.4.8"
},
"funding": [
{
@ -6088,7 +6092,7 @@
"type": "tidelift"
}
],
"time": "2022-03-02T12:42:23+00:00"
"time": "2022-04-26T13:19:20+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
@ -7392,16 +7396,16 @@
},
{
"name": "phpdocumentor/type-resolver",
"version": "1.6.0",
"version": "1.6.1",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git",
"reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706"
"reference": "77a32518733312af16a44300404e945338981de3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/93ebd0014cab80c4ea9f5e297ea48672f1b87706",
"reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706",
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3",
"reference": "77a32518733312af16a44300404e945338981de3",
"shasum": ""
},
"require": {
@ -7436,9 +7440,9 @@
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"support": {
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.0"
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1"
},
"time": "2022-01-04T19:58:01+00:00"
"time": "2022-03-15T21:29:03+00:00"
},
{
"name": "phpspec/prophecy",
@ -7827,16 +7831,16 @@
},
{
"name": "phpunit/phpunit",
"version": "9.5.19",
"version": "9.5.20",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "35ea4b7f3acabb26f4bb640f8c30866c401da807"
"reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/35ea4b7f3acabb26f4bb640f8c30866c401da807",
"reference": "35ea4b7f3acabb26f4bb640f8c30866c401da807",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/12bc8879fb65aef2138b26fc633cb1e3620cffba",
"reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba",
"shasum": ""
},
"require": {
@ -7914,7 +7918,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.19"
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.20"
},
"funding": [
{
@ -7926,7 +7930,7 @@
"type": "github"
}
],
"time": "2022-03-15T09:57:31+00:00"
"time": "2022-04-01T12:37:26+00:00"
},
{
"name": "sebastian/cli-parser",
@ -8294,16 +8298,16 @@
},
{
"name": "sebastian/environment",
"version": "5.1.3",
"version": "5.1.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
"reference": "388b6ced16caa751030f6a69e588299fa09200ac"
"reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac",
"reference": "388b6ced16caa751030f6a69e588299fa09200ac",
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7",
"reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7",
"shasum": ""
},
"require": {
@ -8345,7 +8349,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/environment/issues",
"source": "https://github.com/sebastianbergmann/environment/tree/5.1.3"
"source": "https://github.com/sebastianbergmann/environment/tree/5.1.4"
},
"funding": [
{
@ -8353,7 +8357,7 @@
"type": "github"
}
],
"time": "2020-09-28T05:52:38+00:00"
"time": "2022-04-03T09:37:03+00:00"
},
{
"name": "sebastian/exporter",
@ -8894,16 +8898,16 @@
},
{
"name": "symfony/debug",
"version": "v4.4.37",
"version": "v4.4.41",
"source": {
"type": "git",
"url": "https://github.com/symfony/debug.git",
"reference": "5de6c6e7f52b364840e53851c126be4d71e60470"
"reference": "6637e62480b60817b9a6984154a533e8e64c6bd5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/debug/zipball/5de6c6e7f52b364840e53851c126be4d71e60470",
"reference": "5de6c6e7f52b364840e53851c126be4d71e60470",
"url": "https://api.github.com/repos/symfony/debug/zipball/6637e62480b60817b9a6984154a533e8e64c6bd5",
"reference": "6637e62480b60817b9a6984154a533e8e64c6bd5",
"shasum": ""
},
"require": {
@ -8942,7 +8946,7 @@
"description": "Provides tools to ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/debug/tree/v4.4.37"
"source": "https://github.com/symfony/debug/tree/v4.4.41"
},
"funding": [
{
@ -8958,7 +8962,7 @@
"type": "tidelift"
}
],
"time": "2022-01-02T09:41:36+00:00"
"time": "2022-04-12T15:19:55+00:00"
},
{
"name": "theseer/tokenizer",

View file

@ -19,7 +19,7 @@ use Illuminate\Http\Request;
function provisioningProxyHook(\DOMElement $proxySection, Request $request, Account $account)
{
/*
// Transfort get parameters from the URI into entries
// Transform get parameters from the URI into entries
foreach ($request->all() as $parameterKey => $parameterValue) {
$entry = $proxySection->ownerDocument->createElement('entry', $parameterValue);
$entry->setAttribute('name', $parameterKey);

View file

@ -213,6 +213,9 @@ Activate an account.
#### `GET /accounts/{id}/deactivate`
Deactivate an account.
#### `GET /accounts/{id}/provision`
Re-provision an account by generating a fresh `confirmation_key`.
### Contacts
#### `GET /accounts/{id}/contacts/`
@ -307,7 +310,7 @@ Retrieve registrations statistics for a month.
# Non-API Endpoints
The following URLs are **not REST API endpoints**, they are not located under `/api` but directly under the root path.
The following URLs are **not API endpoints** they are not returning `JSON` content and they are not located under `/api` but directly under the root path.
## Provisioning

View file

@ -62,6 +62,8 @@ Route::group(['middleware' => ['auth.digest_or_key']], function () {
// Accounts
Route::get('accounts/{id}/activate', 'Api\Admin\AccountController@activate');
Route::get('accounts/{id}/deactivate', 'Api\Admin\AccountController@deactivate');
Route::get('accounts/{id}/provision', 'Api\Admin\AccountController@provision');
Route::post('accounts', 'Api\Admin\AccountController@store');
Route::get('accounts', 'Api\Admin\AccountController@index');
Route::get('accounts/{sip}/search', 'Api\Admin\AccountController@search');

View file

@ -23,6 +23,7 @@ use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
use App\Password;
use App\Admin;
use App\Account as DBAccount;
class AccountProvisioningTest extends TestCase
@ -95,5 +96,29 @@ class AccountProvisioningTest extends TestCase
->assertStatus(200)
->assertHeader('Content-Type', 'application/xml')
->assertDontSee('ha1');
$password->account->refresh();
$confirmationKey = $password->account->confirmation_key;
// Refresh the confirmation_key
$admin = Admin::factory()->create();
$admin->account->generateApiKey();
$this->keyAuthenticated($admin->account)
->json($this->method, '/api/accounts/'.$password->account->id.'/provision')
->assertStatus(200)
->assertSee('confirmation_key')
->assertDontSee($confirmationKey);
$password->account->refresh();
$this->assertNotEquals($confirmationKey, $password->account->confirmation_key);
// And then provision one last time
$this->get($this->route.'/'.$password->account->confirmation_key)
->assertStatus(200)
->assertHeader('Content-Type', 'application/xml')
->assertSee('ha1');
}
}

View file

@ -8,7 +8,7 @@
#%define _datadir %{_datarootdir}
#%define _docdir %{_datadir}/doc
%define build_number 135
%define build_number 136
%define var_dir /var/opt/belledonne-communications
%define opt_dir /opt/belledonne-communications/share/flexisip-account-manager