mirror of
https://gitlab.linphone.org/BC/public/flexisip-account-manager.git
synced 2026-01-17 01:58:07 +00:00
Fix FLEXIAPI-384 Allow carddav_user_credentials to be set and use the correct...
This commit is contained in:
parent
6770e198d9
commit
d8f0c47d8f
3 changed files with 65 additions and 36 deletions
|
|
@ -11,19 +11,19 @@ use App\SpaceCardDavServer;
|
||||||
|
|
||||||
class CardDavServerController extends Controller
|
class CardDavServerController extends Controller
|
||||||
{
|
{
|
||||||
public function index(string $host)
|
public function index(string $domain)
|
||||||
{
|
{
|
||||||
return Space::where('host', $host)->firstOrFail()->carddavServers;
|
return Space::where('domain', $domain)->firstOrFail()->carddavServers;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function show(string $host, int $carddavServerId)
|
public function show(string $domain, int $carddavServerId)
|
||||||
{
|
{
|
||||||
return Space::where('host', $host)->firstOrFail()->carddavServers()->findOrFail($carddavServerId);
|
return Space::where('domain', $domain)->firstOrFail()->carddavServers()->findOrFail($carddavServerId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function store(CardDavServer $request, string $host)
|
public function store(CardDavServer $request, string $domain)
|
||||||
{
|
{
|
||||||
$space = Space::where('host', $host)->firstOrFail();
|
$space = Space::where('domain', $domain)->firstOrFail();
|
||||||
|
|
||||||
$carddavServer = new SpaceCardDavServer;
|
$carddavServer = new SpaceCardDavServer;
|
||||||
$carddavServer->space_id = $space->id;
|
$carddavServer->space_id = $space->id;
|
||||||
|
|
@ -34,9 +34,9 @@ class CardDavServerController extends Controller
|
||||||
return $carddavServer->save();
|
return $carddavServer->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function update(CardDavServer $request, string $host, int $carddavServerId)
|
public function update(CardDavServer $request, string $domain, int $carddavServerId)
|
||||||
{
|
{
|
||||||
$space = Space::where('host', $host)->firstOrFail();
|
$space = Space::where('domain', $domain)->firstOrFail();
|
||||||
|
|
||||||
$carddavServer = $space->carddavServers()->findOrFail($carddavServerId);
|
$carddavServer = $space->carddavServers()->findOrFail($carddavServerId);
|
||||||
$carddavServer->fill($request->validated());
|
$carddavServer->fill($request->validated());
|
||||||
|
|
@ -46,9 +46,9 @@ class CardDavServerController extends Controller
|
||||||
return $carddavServer->save();
|
return $carddavServer->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function destroy(string $host, int $carddavServerId)
|
public function destroy(string $domain, int $carddavServerId)
|
||||||
{
|
{
|
||||||
$space = Space::where('host', $host)->firstOrFail();
|
$space = Space::where('domain', $domain)->firstOrFail();
|
||||||
|
|
||||||
$carddavServer = $space->carddavServers()->findOrFail($carddavServerId);
|
$carddavServer = $space->carddavServers()->findOrFail($carddavServerId);
|
||||||
return $carddavServer->delete();
|
return $carddavServer->delete();
|
||||||
|
|
|
||||||
|
|
@ -131,33 +131,33 @@ class SpaceController extends Controller
|
||||||
$space->name = $request->get('name');
|
$space->name = $request->get('name');
|
||||||
$space->host = $request->get('host');
|
$space->host = $request->get('host');
|
||||||
$space->super = $request->get('super');
|
$space->super = $request->get('super');
|
||||||
$space->disable_chat_feature = $request->get('disable_chat_feature');
|
|
||||||
$space->disable_meetings_feature = $request->get('disable_meetings_feature');
|
|
||||||
$space->disable_broadcast_feature = $request->get('disable_broadcast_feature');
|
|
||||||
$space->hide_settings = $request->get('hide_settings');
|
|
||||||
$space->hide_account_settings = $request->get('hide_account_settings');
|
|
||||||
$space->disable_call_recordings_feature = $request->get('disable_call_recordings_feature');
|
|
||||||
$space->only_display_sip_uri_username = $request->get('only_display_sip_uri_username');
|
|
||||||
$space->assistant_hide_create_account = $request->get('assistant_hide_create_account');
|
|
||||||
$space->assistant_disable_qr_code = $request->get('assistant_disable_qr_code');
|
|
||||||
$space->assistant_hide_third_party_account = $request->get('assistant_hide_third_party_account');
|
|
||||||
$space->max_account = $request->get('max_account', 0);
|
|
||||||
$space->max_accounts = $request->get('max_accounts', 0);
|
|
||||||
$space->expire_at = $request->get('expire_at');
|
|
||||||
|
|
||||||
$space->copyright_text = $request->get('copyright_text');
|
|
||||||
$space->intro_registration_text = $request->get('intro_registration_text');
|
|
||||||
$space->newsletter_registration_address = $request->get('newsletter_registration_address');
|
|
||||||
$space->account_proxy_registrar_address = $request->get('account_proxy_registrar_address');
|
$space->account_proxy_registrar_address = $request->get('account_proxy_registrar_address');
|
||||||
$space->account_realm = $request->get('account_realm');
|
$space->account_realm = $request->get('account_realm');
|
||||||
|
$space->assistant_disable_qr_code = $request->get('assistant_disable_qr_code');
|
||||||
|
$space->assistant_hide_create_account = $request->get('assistant_hide_create_account');
|
||||||
|
$space->assistant_hide_third_party_account = $request->get('assistant_hide_third_party_account');
|
||||||
|
$space->copyright_text = $request->get('copyright_text');
|
||||||
|
$space->carddav_user_credentials = $request->get('carddav_user_credentials');
|
||||||
$space->custom_provisioning_entries = $request->get('custom_provisioning_entries');
|
$space->custom_provisioning_entries = $request->get('custom_provisioning_entries');
|
||||||
$space->custom_provisioning_overwrite_all = $request->get('custom_provisioning_overwrite_all');
|
$space->custom_provisioning_overwrite_all = $request->get('custom_provisioning_overwrite_all');
|
||||||
$space->provisioning_use_linphone_provisioning_header = $request->get('provisioning_use_linphone_provisioning_header');
|
|
||||||
$space->custom_theme = $request->get('custom_theme');
|
$space->custom_theme = $request->get('custom_theme');
|
||||||
$space->web_panel = $request->get('web_panel');
|
$space->disable_broadcast_feature = $request->get('disable_broadcast_feature');
|
||||||
$space->public_registration = $request->get('public_registration');
|
$space->disable_call_recordings_feature = $request->get('disable_call_recordings_feature');
|
||||||
$space->phone_registration = $request->get('phone_registration');
|
$space->disable_chat_feature = $request->get('disable_chat_feature');
|
||||||
|
$space->disable_meetings_feature = $request->get('disable_meetings_feature');
|
||||||
|
$space->expire_at = $request->get('expire_at');
|
||||||
|
$space->hide_account_settings = $request->get('hide_account_settings');
|
||||||
|
$space->hide_settings = $request->get('hide_settings');
|
||||||
$space->intercom_features = $request->get('intercom_features');
|
$space->intercom_features = $request->get('intercom_features');
|
||||||
|
$space->intro_registration_text = $request->get('intro_registration_text');
|
||||||
|
$space->max_account = $request->get('max_account', 0);
|
||||||
|
$space->max_accounts = $request->get('max_accounts', 0);
|
||||||
|
$space->newsletter_registration_address = $request->get('newsletter_registration_address');
|
||||||
|
$space->only_display_sip_uri_username = $request->get('only_display_sip_uri_username');
|
||||||
|
$space->phone_registration = $request->get('phone_registration');
|
||||||
|
$space->provisioning_use_linphone_provisioning_header = $request->get('provisioning_use_linphone_provisioning_header');
|
||||||
|
$space->public_registration = $request->get('public_registration');
|
||||||
|
$space->web_panel = $request->get('web_panel');
|
||||||
|
|
||||||
$space->save();
|
$space->save();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ class ApiSpaceCardDavServersTest extends TestCase
|
||||||
$admin = Account::factory()->admin()->create();
|
$admin = Account::factory()->admin()->create();
|
||||||
$admin->generateUserApiKey();
|
$admin->generateUserApiKey();
|
||||||
|
|
||||||
$route = $this->spaceRoute . '/' . $admin->space->host . '/carddavs';
|
$route = $this->spaceRoute . '/' . $admin->space->domain . '/carddavs';
|
||||||
$uri = 'http://test.com';
|
$uri = 'http://test.com';
|
||||||
|
|
||||||
$this->keyAuthenticated($admin)
|
$this->keyAuthenticated($admin)
|
||||||
|
|
@ -50,10 +50,30 @@ class ApiSpaceCardDavServersTest extends TestCase
|
||||||
$superAdmin = Account::factory()->superAdmin()->create();
|
$superAdmin = Account::factory()->superAdmin()->create();
|
||||||
$superAdmin->generateUserApiKey();
|
$superAdmin->generateUserApiKey();
|
||||||
|
|
||||||
$route = $this->spaceRoute . '/' . $superAdmin->space->host . '/carddavs';
|
$route = $this->spaceRoute . '/' . $superAdmin->space->domain . '/carddavs';
|
||||||
|
|
||||||
$uri = 'http://test.com';
|
$uri = 'http://test.com';
|
||||||
$uri2 = 'http://test2.com';
|
$uri2 = 'http://test2.com';
|
||||||
|
|
||||||
|
// Test with a standard admin first
|
||||||
|
|
||||||
|
$superAdmin->space->super = false;
|
||||||
|
$superAdmin->space->save();
|
||||||
|
|
||||||
|
$this->keyAuthenticated($superAdmin)
|
||||||
|
->json('GET', $route)
|
||||||
|
->assertStatus(403);
|
||||||
|
|
||||||
|
$superAdmin->space->super = true;
|
||||||
|
$superAdmin->space->save();
|
||||||
|
|
||||||
|
// Super Admin again
|
||||||
|
|
||||||
|
$this->keyAuthenticated($superAdmin)
|
||||||
|
->json('GET', $route)
|
||||||
|
->assertJson([])
|
||||||
|
->assertStatus(200);
|
||||||
|
|
||||||
$this->keyAuthenticated($superAdmin)
|
$this->keyAuthenticated($superAdmin)
|
||||||
->json('POST', $route, [
|
->json('POST', $route, [
|
||||||
'uri' => $uri
|
'uri' => $uri
|
||||||
|
|
@ -133,7 +153,7 @@ class ApiSpaceCardDavServersTest extends TestCase
|
||||||
'algorithm' => 'MD5'
|
'algorithm' => 'MD5'
|
||||||
];
|
];
|
||||||
|
|
||||||
$route = $this->spaceRoute . '/' . $admin->space->host . '/carddavs';
|
$route = $this->spaceRoute . '/' . $admin->space->domain . '/carddavs';
|
||||||
|
|
||||||
// Creating the CardDav
|
// Creating the CardDav
|
||||||
$this->keyAuthenticated($superAdmin)
|
$this->keyAuthenticated($superAdmin)
|
||||||
|
|
@ -143,7 +163,16 @@ class ApiSpaceCardDavServersTest extends TestCase
|
||||||
->assertStatus(200);
|
->assertStatus(200);
|
||||||
|
|
||||||
// Allowing CardDav credentials for Admin 1 space
|
// Allowing CardDav credentials for Admin 1 space
|
||||||
Space::where('domain', $admin->domain)->update(['carddav_user_credentials' => true]);
|
$server = $this->keyAuthenticated($admin)
|
||||||
|
->json('GET', $this->spaceRoute . '/' . $admin->space->domain)
|
||||||
|
->assertStatus(200)
|
||||||
|
->json();
|
||||||
|
|
||||||
|
$server['carddav_user_credentials'] = true;
|
||||||
|
|
||||||
|
$this->keyAuthenticated($admin)
|
||||||
|
->json('PUT', $this->spaceRoute . '/' . $admin->space->domain, $server)
|
||||||
|
->assertStatus(200);
|
||||||
|
|
||||||
// First Admin can get its own credentials
|
// First Admin can get its own credentials
|
||||||
$this->keyAuthenticated($admin)
|
$this->keyAuthenticated($admin)
|
||||||
|
|
@ -182,7 +211,7 @@ class ApiSpaceCardDavServersTest extends TestCase
|
||||||
Space::where('domain', $user->domain)->update(['super' => true]);
|
Space::where('domain', $user->domain)->update(['super' => true]);
|
||||||
|
|
||||||
$this->keyAuthenticated($admin)
|
$this->keyAuthenticated($admin)
|
||||||
->json('POST', $this->spaceRoute . '/' . $admin->space->host . '/carddavs', [
|
->json('POST', $this->spaceRoute . '/' . $admin->space->domain . '/carddavs', [
|
||||||
'uri' => 'http://uri.com'
|
'uri' => 'http://uri.com'
|
||||||
])
|
])
|
||||||
->assertStatus(200);
|
->assertStatus(200);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue