58 lines
2.4 KiB
PHP
58 lines
2.4 KiB
PHP
<?php
|
|
|
|
use App\Models\Operator;
|
|
|
|
/**
|
|
* Was „nicht entfernbar" heisst, muss auch wirklich nicht entfernbar sein.
|
|
*
|
|
* In der Konsole standen alle Eintraege aus TRUSTED_RANGES untereinander mit
|
|
* demselben Vermerk „Management-VPN, nicht entfernbar" — auch eine Bueroadresse,
|
|
* die jemand einmal in die .env geschrieben hatte. Der Betreiber konnte sie
|
|
* damit nicht aendern und wusste nicht einmal, dass sie aus einer Datei kommt.
|
|
* Beim naechsten Umzug des Buero-Anschlusses waere das ein Aussperren gewesen.
|
|
*/
|
|
it('nennt eine von Hand eingetragene Adresse nicht unveraenderlich', function () {
|
|
config()->set('admin_access.trusted_ranges', ['10.66.0.0/24', '127.0.0.1', '62.178.50.33']);
|
|
config()->set('admin_access.structural_ranges', ['10.66.0.0/24', '127.0.0.1']);
|
|
|
|
$html = $this->actingAs(admin(), 'operator')
|
|
->get(route('admin.settings', ['tab' => 'security']))
|
|
->assertOk()
|
|
->getContent();
|
|
|
|
// Der Vermerk „nicht entfernbar" darf nicht mehr auf die Bueroadresse
|
|
// zutreffen — sie steht in der Warnzeile, mit dem Weg heraus.
|
|
expect($html)->toContain(__('admin_settings.console_env_note'))
|
|
->and($html)->toContain('62.178.50.33');
|
|
});
|
|
|
|
it('laesst die zwei strukturellen Eintraege in Ruhe', function () {
|
|
config()->set('admin_access.trusted_ranges', ['10.66.0.0/24', '127.0.0.1']);
|
|
|
|
$html = $this->actingAs(admin(), 'operator')
|
|
->get(route('admin.settings', ['tab' => 'security']))
|
|
->assertOk()
|
|
->getContent();
|
|
|
|
expect($html)->toContain(__('admin_settings.console_vpn_note'))
|
|
// Ohne handgemachte Eintraege gibt es auch nichts zu warnen.
|
|
->and($html)->not->toContain(__('admin_settings.console_env_note'));
|
|
});
|
|
|
|
it('nennt einen Host-Zugang so, wie der Host heute heisst', function () {
|
|
// Ein Zugang bekommt seinen Namen einmal beim Anlegen. Wird der Host spaeter
|
|
// umbenannt, zeigte die Liste weiter den alten: „pve-fns-1" neben einem
|
|
// Host, der laengst „fsn-01" hiess. Zwei Namen fuer dieselbe Maschine.
|
|
$host = \App\Models\Host::factory()->create(['name' => 'fsn-01']);
|
|
\App\Models\VpnPeer::factory()->create([
|
|
'host_id' => $host->id,
|
|
'name' => 'pve-fns-1',
|
|
'kind' => 'host',
|
|
]);
|
|
|
|
$html = $this->actingAs(admin(), 'operator')->get(route('admin.vpn'))->assertOk()->getContent();
|
|
|
|
expect($html)->toContain('fsn-01')
|
|
->and($html)->not->toContain('pve-fns-1');
|
|
});
|