Fix FLEXIAPI-380 Fix CardDav documentation

This commit is contained in:
Timothée Jaussoin 2025-09-01 15:07:54 +02:00
parent 38f0120ecc
commit a56de2e93a
5 changed files with 97 additions and 76 deletions

View file

@ -10,6 +10,7 @@ v2.1
- Fix FLEXIAPI-375 Fix VcardsStorage table UUID size, recover the UUID from the stored vCard - Fix FLEXIAPI-375 Fix VcardsStorage table UUID size, recover the UUID from the stored vCard
- Fix FLEXIAPI-378 Return a valid JSON containing the vCard and not the raw vCard in VcardsStorage controller - Fix FLEXIAPI-378 Return a valid JSON containing the vCard and not the raw vCard in VcardsStorage controller
- Fix FLEXIAPI-377 Don't reset authInfoIndex in the Provisioning - Fix FLEXIAPI-377 Don't reset authInfoIndex in the Provisioning
- Fix FLEXIAPI-380 Fix CardDav documentation
v2.0 v2.0
---- ----

150
flexiapi/composer.lock generated
View file

@ -1233,16 +1233,16 @@
}, },
{ {
"name": "giggsey/libphonenumber-for-php-lite", "name": "giggsey/libphonenumber-for-php-lite",
"version": "9.0.12", "version": "9.0.13",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/giggsey/libphonenumber-for-php-lite.git", "url": "https://github.com/giggsey/libphonenumber-for-php-lite.git",
"reference": "8bc6bb69bb4a43a71acf5631de8a9504387d3007" "reference": "0d5fcd837598ee6ec8104a0bc642ebff54fb70e5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/giggsey/libphonenumber-for-php-lite/zipball/8bc6bb69bb4a43a71acf5631de8a9504387d3007", "url": "https://api.github.com/repos/giggsey/libphonenumber-for-php-lite/zipball/0d5fcd837598ee6ec8104a0bc642ebff54fb70e5",
"reference": "8bc6bb69bb4a43a71acf5631de8a9504387d3007", "reference": "0d5fcd837598ee6ec8104a0bc642ebff54fb70e5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1307,7 +1307,7 @@
"issues": "https://github.com/giggsey/libphonenumber-for-php-lite/issues", "issues": "https://github.com/giggsey/libphonenumber-for-php-lite/issues",
"source": "https://github.com/giggsey/libphonenumber-for-php-lite" "source": "https://github.com/giggsey/libphonenumber-for-php-lite"
}, },
"time": "2025-08-15T09:14:59+00:00" "time": "2025-09-01T08:24:26+00:00"
}, },
{ {
"name": "graham-campbell/result-type", "name": "graham-campbell/result-type",
@ -6993,16 +6993,16 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v7.3.2", "version": "v7.3.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "5f360ebc65c55265a74d23d7fe27f957870158a1" "reference": "cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/5f360ebc65c55265a74d23d7fe27f957870158a1", "url": "https://api.github.com/repos/symfony/console/zipball/cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7",
"reference": "5f360ebc65c55265a74d23d7fe27f957870158a1", "reference": "cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -7067,7 +7067,7 @@
"terminal" "terminal"
], ],
"support": { "support": {
"source": "https://github.com/symfony/console/tree/v7.3.2" "source": "https://github.com/symfony/console/tree/v7.3.3"
}, },
"funding": [ "funding": [
{ {
@ -7087,7 +7087,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-07-30T17:13:41+00:00" "time": "2025-08-25T06:35:40+00:00"
}, },
{ {
"name": "symfony/css-selector", "name": "symfony/css-selector",
@ -7304,16 +7304,16 @@
}, },
{ {
"name": "symfony/event-dispatcher", "name": "symfony/event-dispatcher",
"version": "v7.3.0", "version": "v7.3.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/event-dispatcher.git", "url": "https://github.com/symfony/event-dispatcher.git",
"reference": "497f73ac996a598c92409b44ac43b6690c4f666d" "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/497f73ac996a598c92409b44ac43b6690c4f666d", "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b7dc69e71de420ac04bc9ab830cf3ffebba48191",
"reference": "497f73ac996a598c92409b44ac43b6690c4f666d", "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -7364,7 +7364,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/event-dispatcher/tree/v7.3.0" "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.3"
}, },
"funding": [ "funding": [
{ {
@ -7375,12 +7375,16 @@
"url": "https://github.com/fabpot", "url": "https://github.com/fabpot",
"type": "github" "type": "github"
}, },
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{ {
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-04-22T09:11:45+00:00" "time": "2025-08-13T11:49:31+00:00"
}, },
{ {
"name": "symfony/event-dispatcher-contracts", "name": "symfony/event-dispatcher-contracts",
@ -7528,16 +7532,16 @@
}, },
{ {
"name": "symfony/http-foundation", "name": "symfony/http-foundation",
"version": "v7.3.2", "version": "v7.3.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-foundation.git", "url": "https://github.com/symfony/http-foundation.git",
"reference": "6877c122b3a6cc3695849622720054f6e6fa5fa6" "reference": "7475561ec27020196c49bb7c4f178d33d7d3dc00"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/6877c122b3a6cc3695849622720054f6e6fa5fa6", "url": "https://api.github.com/repos/symfony/http-foundation/zipball/7475561ec27020196c49bb7c4f178d33d7d3dc00",
"reference": "6877c122b3a6cc3695849622720054f6e6fa5fa6", "reference": "7475561ec27020196c49bb7c4f178d33d7d3dc00",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -7587,7 +7591,7 @@
"description": "Defines an object-oriented layer for the HTTP specification", "description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/http-foundation/tree/v7.3.2" "source": "https://github.com/symfony/http-foundation/tree/v7.3.3"
}, },
"funding": [ "funding": [
{ {
@ -7607,20 +7611,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-07-10T08:47:49+00:00" "time": "2025-08-20T08:04:18+00:00"
}, },
{ {
"name": "symfony/http-kernel", "name": "symfony/http-kernel",
"version": "v7.3.2", "version": "v7.3.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-kernel.git", "url": "https://github.com/symfony/http-kernel.git",
"reference": "6ecc895559ec0097e221ed2fd5eb44d5fede083c" "reference": "72c304de37e1a1cec6d5d12b81187ebd4850a17b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/6ecc895559ec0097e221ed2fd5eb44d5fede083c", "url": "https://api.github.com/repos/symfony/http-kernel/zipball/72c304de37e1a1cec6d5d12b81187ebd4850a17b",
"reference": "6ecc895559ec0097e221ed2fd5eb44d5fede083c", "reference": "72c304de37e1a1cec6d5d12b81187ebd4850a17b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -7705,7 +7709,7 @@
"description": "Provides a structured process for converting a Request into a Response", "description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/http-kernel/tree/v7.3.2" "source": "https://github.com/symfony/http-kernel/tree/v7.3.3"
}, },
"funding": [ "funding": [
{ {
@ -7725,20 +7729,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-07-31T10:45:04+00:00" "time": "2025-08-29T08:23:45+00:00"
}, },
{ {
"name": "symfony/mailer", "name": "symfony/mailer",
"version": "v7.3.2", "version": "v7.3.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/mailer.git", "url": "https://github.com/symfony/mailer.git",
"reference": "d43e84d9522345f96ad6283d5dfccc8c1cfc299b" "reference": "a32f3f45f1990db8c4341d5122a7d3a381c7e575"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/mailer/zipball/d43e84d9522345f96ad6283d5dfccc8c1cfc299b", "url": "https://api.github.com/repos/symfony/mailer/zipball/a32f3f45f1990db8c4341d5122a7d3a381c7e575",
"reference": "d43e84d9522345f96ad6283d5dfccc8c1cfc299b", "reference": "a32f3f45f1990db8c4341d5122a7d3a381c7e575",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -7789,7 +7793,7 @@
"description": "Helps sending emails", "description": "Helps sending emails",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/mailer/tree/v7.3.2" "source": "https://github.com/symfony/mailer/tree/v7.3.3"
}, },
"funding": [ "funding": [
{ {
@ -7809,7 +7813,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-07-15T11:36:08+00:00" "time": "2025-08-13T11:49:31+00:00"
}, },
{ {
"name": "symfony/mime", "name": "symfony/mime",
@ -8570,16 +8574,16 @@
}, },
{ {
"name": "symfony/process", "name": "symfony/process",
"version": "v7.3.0", "version": "v7.3.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/process.git", "url": "https://github.com/symfony/process.git",
"reference": "40c295f2deb408d5e9d2d32b8ba1dd61e36f05af" "reference": "32241012d521e2e8a9d713adb0812bb773b907f1"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/40c295f2deb408d5e9d2d32b8ba1dd61e36f05af", "url": "https://api.github.com/repos/symfony/process/zipball/32241012d521e2e8a9d713adb0812bb773b907f1",
"reference": "40c295f2deb408d5e9d2d32b8ba1dd61e36f05af", "reference": "32241012d521e2e8a9d713adb0812bb773b907f1",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -8611,7 +8615,7 @@
"description": "Executes commands in sub-processes", "description": "Executes commands in sub-processes",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/process/tree/v7.3.0" "source": "https://github.com/symfony/process/tree/v7.3.3"
}, },
"funding": [ "funding": [
{ {
@ -8622,12 +8626,16 @@
"url": "https://github.com/fabpot", "url": "https://github.com/fabpot",
"type": "github" "type": "github"
}, },
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{ {
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-04-17T09:11:12+00:00" "time": "2025-08-18T09:42:54+00:00"
}, },
{ {
"name": "symfony/routing", "name": "symfony/routing",
@ -8799,16 +8807,16 @@
}, },
{ {
"name": "symfony/string", "name": "symfony/string",
"version": "v7.3.2", "version": "v7.3.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/string.git", "url": "https://github.com/symfony/string.git",
"reference": "42f505aff654e62ac7ac2ce21033818297ca89ca" "reference": "17a426cce5fd1f0901fefa9b2a490d0038fd3c9c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/42f505aff654e62ac7ac2ce21033818297ca89ca", "url": "https://api.github.com/repos/symfony/string/zipball/17a426cce5fd1f0901fefa9b2a490d0038fd3c9c",
"reference": "42f505aff654e62ac7ac2ce21033818297ca89ca", "reference": "17a426cce5fd1f0901fefa9b2a490d0038fd3c9c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -8866,7 +8874,7 @@
"utf8" "utf8"
], ],
"support": { "support": {
"source": "https://github.com/symfony/string/tree/v7.3.2" "source": "https://github.com/symfony/string/tree/v7.3.3"
}, },
"funding": [ "funding": [
{ {
@ -8886,20 +8894,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-07-10T08:47:49+00:00" "time": "2025-08-25T06:35:40+00:00"
}, },
{ {
"name": "symfony/translation", "name": "symfony/translation",
"version": "v7.3.2", "version": "v7.3.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/translation.git", "url": "https://github.com/symfony/translation.git",
"reference": "81b48f4daa96272efcce9c7a6c4b58e629df3c90" "reference": "e0837b4cbcef63c754d89a4806575cada743a38d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/81b48f4daa96272efcce9c7a6c4b58e629df3c90", "url": "https://api.github.com/repos/symfony/translation/zipball/e0837b4cbcef63c754d89a4806575cada743a38d",
"reference": "81b48f4daa96272efcce9c7a6c4b58e629df3c90", "reference": "e0837b4cbcef63c754d89a4806575cada743a38d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -8966,7 +8974,7 @@
"description": "Provides tools to internationalize your application", "description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/translation/tree/v7.3.2" "source": "https://github.com/symfony/translation/tree/v7.3.3"
}, },
"funding": [ "funding": [
{ {
@ -8986,7 +8994,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-07-30T17:31:46+00:00" "time": "2025-08-01T21:02:37+00:00"
}, },
{ {
"name": "symfony/translation-contracts", "name": "symfony/translation-contracts",
@ -9142,16 +9150,16 @@
}, },
{ {
"name": "symfony/var-dumper", "name": "symfony/var-dumper",
"version": "v7.3.2", "version": "v7.3.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/var-dumper.git", "url": "https://github.com/symfony/var-dumper.git",
"reference": "53205bea27450dc5c65377518b3275e126d45e75" "reference": "34d8d4c4b9597347306d1ec8eb4e1319b1e6986f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/53205bea27450dc5c65377518b3275e126d45e75", "url": "https://api.github.com/repos/symfony/var-dumper/zipball/34d8d4c4b9597347306d1ec8eb4e1319b1e6986f",
"reference": "53205bea27450dc5c65377518b3275e126d45e75", "reference": "34d8d4c4b9597347306d1ec8eb4e1319b1e6986f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -9205,7 +9213,7 @@
"dump" "dump"
], ],
"support": { "support": {
"source": "https://github.com/symfony/var-dumper/tree/v7.3.2" "source": "https://github.com/symfony/var-dumper/tree/v7.3.3"
}, },
"funding": [ "funding": [
{ {
@ -9225,7 +9233,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-07-29T20:02:46+00:00" "time": "2025-08-13T11:49:31+00:00"
}, },
{ {
"name": "theseer/tokenizer", "name": "theseer/tokenizer",
@ -10308,16 +10316,16 @@
}, },
{ {
"name": "symfony/dependency-injection", "name": "symfony/dependency-injection",
"version": "v7.3.2", "version": "v7.3.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/dependency-injection.git", "url": "https://github.com/symfony/dependency-injection.git",
"reference": "6cd2a1a77e8a0676a26e8bcddf10acfe7b0ba352" "reference": "ab6c38dad5da9b15b1f7afb2f5c5814112e70261"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/6cd2a1a77e8a0676a26e8bcddf10acfe7b0ba352", "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/ab6c38dad5da9b15b1f7afb2f5c5814112e70261",
"reference": "6cd2a1a77e8a0676a26e8bcddf10acfe7b0ba352", "reference": "ab6c38dad5da9b15b1f7afb2f5c5814112e70261",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -10368,7 +10376,7 @@
"description": "Allows you to standardize and centralize the way objects are constructed in your application", "description": "Allows you to standardize and centralize the way objects are constructed in your application",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/dependency-injection/tree/v7.3.2" "source": "https://github.com/symfony/dependency-injection/tree/v7.3.3"
}, },
"funding": [ "funding": [
{ {
@ -10388,7 +10396,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-07-30T17:31:46+00:00" "time": "2025-08-14T09:54:27+00:00"
}, },
{ {
"name": "symfony/filesystem", "name": "symfony/filesystem",
@ -10462,16 +10470,16 @@
}, },
{ {
"name": "symfony/var-exporter", "name": "symfony/var-exporter",
"version": "v7.3.2", "version": "v7.3.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/var-exporter.git", "url": "https://github.com/symfony/var-exporter.git",
"reference": "05b3e90654c097817325d6abd284f7938b05f467" "reference": "d4dfcd2a822cbedd7612eb6fbd260e46f87b7137"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/var-exporter/zipball/05b3e90654c097817325d6abd284f7938b05f467", "url": "https://api.github.com/repos/symfony/var-exporter/zipball/d4dfcd2a822cbedd7612eb6fbd260e46f87b7137",
"reference": "05b3e90654c097817325d6abd284f7938b05f467", "reference": "d4dfcd2a822cbedd7612eb6fbd260e46f87b7137",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -10519,7 +10527,7 @@
"serialize" "serialize"
], ],
"support": { "support": {
"source": "https://github.com/symfony/var-exporter/tree/v7.3.2" "source": "https://github.com/symfony/var-exporter/tree/v7.3.3"
}, },
"funding": [ "funding": [
{ {
@ -10539,7 +10547,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-07-10T08:47:49+00:00" "time": "2025-08-18T13:10:53+00:00"
} }
], ],
"aliases": [], "aliases": [],

View file

@ -158,7 +158,11 @@
@else @else
@foreach ($account->carddavServers as $carddavServer) @foreach ($account->carddavServers as $carddavServer)
<tr> <tr>
<td class="line">{{ $carddavServer->name }}</td> <td class="line">
{{ $carddavServer->name }}
<br>
<small>{{ $carddavServer->uri }}</small>
</td>
<td class="line">{{ $carddavServer->pivot->username }}</td> <td class="line">{{ $carddavServer->pivot->username }}</td>
<td class="line">{{ $carddavServer->pivot->realm }}</td> <td class="line">{{ $carddavServer->pivot->realm }}</td>
<td class="line">{{ $carddavServer->pivot->algorithm }}</td> <td class="line">{{ $carddavServer->pivot->algorithm }}</td>

View file

@ -1,6 +1,6 @@
## Account CardDav credentials ## Account CardDav credentials
The following endpoints will return `403 Forbidden` if the requested account doesn't have a DTMF protocol configured. The following endpoints will return `403 Forbidden` if the requested account Space doesn't have `carddav_user_credentials` set to `true`.
### `GET /accounts/{id}/carddavs` ### `GET /accounts/{id}/carddavs`
<span class="badge badge-warning">Admin</span> <span class="badge badge-warning">Admin</span>

View file

@ -41,11 +41,19 @@ class ApiAccountPhoneChangeTest extends TestCase
->assertStatus(422); ->assertStatus(422);
// Send a SMS // Send a SMS
/*$this->keyAuthenticated($account) $this->keyAuthenticated($account)
->json($this->method, $this->route.'/request', [ ->json($this->method, $this->route.'/request', [
'phone' => '+3312345678' 'phone' => '+33216412664'
]) ])
->assertStatus(200);*/ ->assertStatus(200);
$this->keyAuthenticated($account)
->json($this->method, $this->route.'/request', [
'phone' => '+33216412664'
])
->assertStatus(200);
$this->assertEquals(2, PhoneChangeCode::where('account_id', $account->id)->count());
} }
public function testCodeExpiration() public function testCodeExpiration()