Fix FLEXIAPI-376 Rename domain to realm in CardDav credentials

This commit is contained in:
Timothée Jaussoin 2025-08-27 15:36:11 +02:00
parent 2a3634d461
commit e0a9b75923
12 changed files with 22 additions and 22 deletions

View file

@ -6,6 +6,7 @@ v2.1
- Fix FLEXIAPI-371 Add documentation for the Wizard page - Fix FLEXIAPI-371 Add documentation for the Wizard page
- Fix FLEXIAPI-359 Add CardDav servers support in the spaces - Fix FLEXIAPI-359 Add CardDav servers support in the spaces
- Fix FLEXIAPI-374 Improve CardDav credentials form - Fix FLEXIAPI-374 Improve CardDav credentials form
- Fix FLEXIAPI-376 Rename domain to realm in CardDav credentials
v2.0 v2.0
---- ----

View file

@ -153,7 +153,7 @@ class Account extends Authenticatable
public function carddavServers() public function carddavServers()
{ {
return $this->belongsToMany(SpaceCardDavServer::class, 'account_carddav_credentials', 'account_id', 'space_carddav_server_id') return $this->belongsToMany(SpaceCardDavServer::class, 'account_carddav_credentials', 'account_id', 'space_carddav_server_id')
->withPivot('username', 'domain', 'algorithm', 'password'); ->withPivot('username', 'realm', 'algorithm', 'password');
} }
public function getDictionaryAttribute() public function getDictionaryAttribute()

View file

@ -211,8 +211,8 @@ class ProvisioningController extends Controller
$entry->setAttribute('name', 'username'); $entry->setAttribute('name', 'username');
$section->appendChild($entry); $section->appendChild($entry);
$entry = $dom->createElement('entry', $carddavServer->pivot->domain); $entry = $dom->createElement('entry', $carddavServer->pivot->realm);
$entry->setAttribute('name', 'domain'); $entry->setAttribute('name', 'realm');
$section->appendChild($entry); $section->appendChild($entry);
$entry = $dom->createElement('entry', $carddavServer->pivot->password); $entry = $dom->createElement('entry', $carddavServer->pivot->password);

View file

@ -55,10 +55,10 @@ class CardDavCredentialsController extends Controller
$accountCarddavCredentials->space_carddav_server_id = $request->get('carddav_id'); $accountCarddavCredentials->space_carddav_server_id = $request->get('carddav_id');
$accountCarddavCredentials->account_id = $account->id; $accountCarddavCredentials->account_id = $account->id;
$accountCarddavCredentials->username = $request->get('username'); $accountCarddavCredentials->username = $request->get('username');
$accountCarddavCredentials->domain = $request->get('domain'); $accountCarddavCredentials->realm = $request->get('realm');
$accountCarddavCredentials->password = bchash( $accountCarddavCredentials->password = bchash(
$request->get('username'), $request->get('username'),
$request->get('domain'), $request->get('realm'),
$request->get('password'), $request->get('password'),
$request->get('algorithm') $request->get('algorithm')
); );

View file

@ -46,10 +46,10 @@ class CardDavCredentialsController extends Controller
$accountCarddavCredentials->space_carddav_server_id = $cardDavServer->id; $accountCarddavCredentials->space_carddav_server_id = $cardDavServer->id;
$accountCarddavCredentials->account_id = $account->id; $accountCarddavCredentials->account_id = $account->id;
$accountCarddavCredentials->username = $request->get('username'); $accountCarddavCredentials->username = $request->get('username');
$accountCarddavCredentials->domain = $request->get('domain'); $accountCarddavCredentials->realm = $request->get('realm');
$accountCarddavCredentials->password = bchash( $accountCarddavCredentials->password = bchash(
$request->get('username'), $request->get('username'),
$request->get('domain'), $request->get('realm'),
$request->get('password'), $request->get('password'),
$request->get('algorithm') $request->get('algorithm')
); );
@ -70,7 +70,7 @@ class CardDavCredentialsController extends Controller
return [ return [
'carddav_id' => $cardDavServer->id, 'carddav_id' => $cardDavServer->id,
'username' => $cardDavServer->pivot->username, 'username' => $cardDavServer->pivot->username,
'domain' => $cardDavServer->pivot->domain, 'realm' => $cardDavServer->pivot->realm,
'algorithm' => $cardDavServer->pivot->algorithm, 'algorithm' => $cardDavServer->pivot->algorithm,
'password' => $cardDavServer->pivot->password, 'password' => $cardDavServer->pivot->password,
]; ];

View file

@ -33,7 +33,7 @@ class CardDavCredentials extends FormRequest
'username' => 'required', 'username' => 'required',
'password' => 'required', 'password' => 'required',
'algorithm' => ['required', new PasswordAlgorithm], 'algorithm' => ['required', new PasswordAlgorithm],
'domain' => ['required', new Domain], 'realm' => 'required',
]; ];
} }
} }

View file

@ -34,7 +34,7 @@ return new class extends Migration
Schema::create('account_carddav_credentials', function (Blueprint $table) { Schema::create('account_carddav_credentials', function (Blueprint $table) {
$table->string('username', 64); $table->string('username', 64);
$table->string('password', 255); $table->string('password', 255);
$table->string('domain', 255); $table->string('realm', 255);
$table->string('algorithm', 10)->default('MD5'); $table->string('algorithm', 10)->default('MD5');
$table->bigInteger('space_carddav_server_id')->unsigned(); $table->bigInteger('space_carddav_server_id')->unsigned();

View file

@ -28,9 +28,9 @@
@include('parts.errors', ['name' => 'username']) @include('parts.errors', ['name' => 'username'])
</div> </div>
<div> <div>
<input placeholder="domain.com, realm.tld" name="domain" type="text" value="{{ old('domain') }}" required> <input placeholder="Realm, realm.tld" name="realm" type="text" value="{{ old('realm') }}" required>
<label for="domain">{{ __('Domain') }}</label> <label for="realm">{{ __('Realm') }}</label>
@include('parts.errors', ['name' => 'domain']) @include('parts.errors', ['name' => 'realm'])
</div> </div>
<div> <div>
<input placeholder="Password" name="password" type="password" required> <input placeholder="Password" name="password" type="password" required>

View file

@ -145,7 +145,7 @@
<tr> <tr>
<th>{{ __('CardDav Server') }}</th> <th>{{ __('CardDav Server') }}</th>
<th>{{ __('Username') }}</th> <th>{{ __('Username') }}</th>
<th>{{ __('Domain') }}</th> <th>{{ __('Realm') }}</th>
<th>{{ __('Algorithm') }}</th> <th>{{ __('Algorithm') }}</th>
<th></th> <th></th>
</tr> </tr>
@ -160,7 +160,7 @@
<tr> <tr>
<td class="line">{{ $carddavServer->name }}</td> <td class="line">{{ $carddavServer->name }}</td>
<td class="line">{{ $carddavServer->pivot->username }}</td> <td class="line">{{ $carddavServer->pivot->username }}</td>
<td class="line">{{ $carddavServer->pivot->domain }}</td> <td class="line">{{ $carddavServer->pivot->realm }}</td>
<td class="line">{{ $carddavServer->pivot->algorithm }}</td> <td class="line">{{ $carddavServer->pivot->algorithm }}</td>
<td class="actions"> <td class="actions">
<a type="button" class="btn small tertiary" href="{{ route('admin.account.carddavs.delete', [$account, $carddavServer]) }}"> <a type="button" class="btn small tertiary" href="{{ route('admin.account.carddavs.delete', [$account, $carddavServer]) }}">

View file

@ -22,7 +22,7 @@ JSON parameters:
* `username` **required** the username * `username` **required** the username
* `password` **required** the password in plain text * `password` **required** the password in plain text
* `algorithm` **required**, values can be `SHA-256` or `MD5` * `algorithm` **required**, values can be `SHA-256` or `MD5`
* `domain` **required** the domain * `realm` **required** the realm
### `DELETE /accounts/{id}/carddavs/{carddav_id}` ### `DELETE /accounts/{id}/carddavs/{carddav_id}`
<span class="badge badge-warning">Admin</span> <span class="badge badge-warning">Admin</span>

View file

@ -248,7 +248,7 @@ class AccountProvisioningTest extends TestCase
$credentials = [ $credentials = [
'username' => 'john', 'username' => 'john',
'domain' => 'hop.com', 'realm' => 'hop.com',
'password' => '1234', 'password' => '1234',
'algorithm' => 'MD5' 'algorithm' => 'MD5'
]; ];

View file

@ -128,7 +128,7 @@ class ApiSpaceCardDavServersTest extends TestCase
$credentials = [ $credentials = [
'username' => 'john', 'username' => 'john',
'domain' => 'hop.com', 'realm' => 'hop.com',
'password' => '1234', 'password' => '1234',
'algorithm' => 'MD5' 'algorithm' => 'MD5'
]; ];
@ -195,7 +195,7 @@ class ApiSpaceCardDavServersTest extends TestCase
$credentials = [ $credentials = [
'username' => 'john', 'username' => 'john',
'domain' => 'hop.com', 'realm' => 'hop.com',
'password' => '1234', 'password' => '1234',
'algorithm' => 'MD5' 'algorithm' => 'MD5'
]; ];
@ -208,7 +208,7 @@ class ApiSpaceCardDavServersTest extends TestCase
->json('PUT', $route . '/' . $cardDavServer->id , $credentials) ->json('PUT', $route . '/' . $cardDavServer->id , $credentials)
->assertStatus(200); ->assertStatus(200);
$credentials['domain'] = 'hop2.com'; $credentials['realm'] = 'hop2.com';
// Again // Again
$this->keyAuthenticated($admin) $this->keyAuthenticated($admin)
@ -217,12 +217,11 @@ class ApiSpaceCardDavServersTest extends TestCase
$this->keyAuthenticated($admin) $this->keyAuthenticated($admin)
->json('GET', $route) ->json('GET', $route)
//->dump()
->assertJsonFragment([ ->assertJsonFragment([
'username' => $credentials['username'], 'username' => $credentials['username'],
]) ])
->assertJsonFragment([ ->assertJsonFragment([
'domain' => $credentials['domain'], 'realm' => $credentials['realm'],
]) ])
->assertStatus(200); ->assertStatus(200);