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-359 Add CardDav servers support in the spaces
- Fix FLEXIAPI-374 Improve CardDav credentials form
- Fix FLEXIAPI-376 Rename domain to realm in CardDav credentials
v2.0
----

View file

@ -153,7 +153,7 @@ class Account extends Authenticatable
public function carddavServers()
{
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()

View file

@ -211,8 +211,8 @@ class ProvisioningController extends Controller
$entry->setAttribute('name', 'username');
$section->appendChild($entry);
$entry = $dom->createElement('entry', $carddavServer->pivot->domain);
$entry->setAttribute('name', 'domain');
$entry = $dom->createElement('entry', $carddavServer->pivot->realm);
$entry->setAttribute('name', 'realm');
$section->appendChild($entry);
$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->account_id = $account->id;
$accountCarddavCredentials->username = $request->get('username');
$accountCarddavCredentials->domain = $request->get('domain');
$accountCarddavCredentials->realm = $request->get('realm');
$accountCarddavCredentials->password = bchash(
$request->get('username'),
$request->get('domain'),
$request->get('realm'),
$request->get('password'),
$request->get('algorithm')
);

View file

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

View file

@ -33,7 +33,7 @@ class CardDavCredentials extends FormRequest
'username' => 'required',
'password' => 'required',
'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) {
$table->string('username', 64);
$table->string('password', 255);
$table->string('domain', 255);
$table->string('realm', 255);
$table->string('algorithm', 10)->default('MD5');
$table->bigInteger('space_carddav_server_id')->unsigned();

View file

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

View file

@ -145,7 +145,7 @@
<tr>
<th>{{ __('CardDav Server') }}</th>
<th>{{ __('Username') }}</th>
<th>{{ __('Domain') }}</th>
<th>{{ __('Realm') }}</th>
<th>{{ __('Algorithm') }}</th>
<th></th>
</tr>
@ -160,7 +160,7 @@
<tr>
<td class="line">{{ $carddavServer->name }}</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="actions">
<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
* `password` **required** the password in plain text
* `algorithm` **required**, values can be `SHA-256` or `MD5`
* `domain` **required** the domain
* `realm` **required** the realm
### `DELETE /accounts/{id}/carddavs/{carddav_id}`
<span class="badge badge-warning">Admin</span>

View file

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

View file

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