Rechtebechebung für User mit Sudorechte
parent
450247d163
commit
98ccb68a34
|
|
@ -5,7 +5,9 @@ namespace App\Livewire\Ui\Domain;
|
||||||
use App\Models\Domain;
|
use App\Models\Domain;
|
||||||
use App\Services\DkimService;
|
use App\Services\DkimService;
|
||||||
use Illuminate\Contracts\View\View;
|
use Illuminate\Contracts\View\View;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
use Illuminate\Support\Facades\Process;
|
use Illuminate\Support\Facades\Process;
|
||||||
|
use Livewire\Attributes\On;
|
||||||
use Livewire\Component;
|
use Livewire\Component;
|
||||||
|
|
||||||
class DkimStatus extends Component
|
class DkimStatus extends Component
|
||||||
|
|
@ -40,24 +42,59 @@ class DkimStatus extends Component
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Button: (Re)generieren → Service kümmert sich um Helper & Reload */
|
/** Button: (Re)generieren → Service kümmert sich um Helper & Reload */
|
||||||
|
// public function regenerate(?string $selector = null): void
|
||||||
|
// {
|
||||||
|
// $selector = $selector
|
||||||
|
// ?: ($this->selector ?: (string) config('mailpool.defaults.dkim_selector', 'mwl1'));
|
||||||
|
//
|
||||||
|
// try {
|
||||||
|
// /** @var DkimService $svc */
|
||||||
|
// $svc = app(DkimService::class);
|
||||||
|
// $svc->generateForDomain($this->domain, 2048, $selector);
|
||||||
|
//
|
||||||
|
// // Status nach der Erzeugung erneut prüfen
|
||||||
|
// $ok = $this->isDkimReady($this->domain->domain, $selector);
|
||||||
|
//
|
||||||
|
// $this->dispatch('toast',
|
||||||
|
// type: $ok ? 'success' : 'warning',
|
||||||
|
// message: $ok ? 'DKIM ist aktiv.' : 'DKIM generiert – OpenDKIM prüfen.'
|
||||||
|
// );
|
||||||
|
// } catch (\Throwable $e) {
|
||||||
|
// $this->dispatch('toast', type: 'error', message: 'DKIM Fehler: '.$e->getMessage());
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// $this->selector = $selector;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
// #[On('dkim:regenerate')]
|
||||||
public function regenerate(?string $selector = null): void
|
public function regenerate(?string $selector = null): void
|
||||||
{
|
{
|
||||||
$selector = $selector
|
$selector = $selector
|
||||||
?: ($this->selector ?: (string) config('mailpool.defaults.dkim_selector', 'mwl1'));
|
?: ($this->selector ?: (string) config('mailpool.defaults.dkim_selector', 'mwl1'));
|
||||||
|
|
||||||
|
Log::info('DKIM regenerate() CLICKED', [
|
||||||
|
'domain' => $this->domain->domain,
|
||||||
|
'selector' => $selector,
|
||||||
|
'user' => auth()->id(),
|
||||||
|
]);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
/** @var DkimService $svc */
|
/** @var DkimService $svc */
|
||||||
$svc = app(DkimService::class);
|
$svc = app(\App\Services\DkimService::class);
|
||||||
|
|
||||||
|
Log::info('DKIM regenerate() calling service.generateForDomain');
|
||||||
$svc->generateForDomain($this->domain, 2048, $selector);
|
$svc->generateForDomain($this->domain, 2048, $selector);
|
||||||
|
Log::info('DKIM regenerate() service call returned OK');
|
||||||
|
|
||||||
|
// sicherheitshalber
|
||||||
|
\Illuminate\Support\Facades\Process::run(['sudo','-n','/usr/bin/systemctl','reload','opendkim']);
|
||||||
|
|
||||||
// Status nach der Erzeugung erneut prüfen
|
|
||||||
$ok = $this->isDkimReady($this->domain->domain, $selector);
|
$ok = $this->isDkimReady($this->domain->domain, $selector);
|
||||||
|
$this->dispatch('toast', type: $ok ? 'success' : 'warning',
|
||||||
$this->dispatch('toast',
|
message: $ok ? 'DKIM ist aktiv.' : 'DKIM generiert – OpenDKIM prüfen.');
|
||||||
type: $ok ? 'success' : 'warning',
|
|
||||||
message: $ok ? 'DKIM ist aktiv.' : 'DKIM generiert – OpenDKIM prüfen.'
|
|
||||||
);
|
|
||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
|
Log::error('DKIM regenerate() failed', ['ex' => $e->getMessage(), 'trace' => $e->getTraceAsString()]);
|
||||||
$this->dispatch('toast', type: 'error', message: 'DKIM Fehler: '.$e->getMessage());
|
$this->dispatch('toast', type: 'error', message: 'DKIM Fehler: '.$e->getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,13 +6,12 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@if(!$dkimOk)
|
@if(!$dkimOk)
|
||||||
<button wire:click="regenerate"
|
<button
|
||||||
wire:loading.attr="disabled"
|
wire:click="regenerate('{{ $selector ?? ($domain->dkimKeys()->where('is_active', true)->latest()->value('selector') ?? 'mwl1') }}')"
|
||||||
class="inline-flex items-center gap-2 rounded-lg px-3 py-1.5 text-xs font-medium
|
wire:loading.attr="disabled"
|
||||||
border border-slate-600/40 bg-slate-800/40 hover:bg-slate-800
|
class="inline-flex items-center gap-2 rounded-lg px-3 py-1.5 text-xs font-medium
|
||||||
disabled:opacity-50">
|
border border-slate-600/40 bg-slate-800/40 hover:bg-slate-800 disabled:opacity-50">
|
||||||
<i class="ph-bold ph-arrow-clockwise text-base"
|
<i class="ph-bold ph-arrow-clockwise text-sm" wire:loading.class="animate-spin"></i>
|
||||||
wire:loading.class="animate-spin"></i>
|
|
||||||
<span wire:loading.remove>DKIM reparieren</span>
|
<span wire:loading.remove>DKIM reparieren</span>
|
||||||
<span wire:loading>Repariere…</span>
|
<span wire:loading>Repariere…</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
@if($systemDomain)
|
@if($systemDomain)
|
||||||
<div class="rounded-xl border border-white/10 bg-white/[0.04] px-3 py-3">
|
<div class="rounded-xl border border-white/10 bg-white/[0.04] px-3 py-3">
|
||||||
<div class="grid grid-cols-1 md:grid-cols-4 items-center gap-3">
|
<div class="grid grid-cols-1 #md:grid-cols-4 items-center gap-3">
|
||||||
<div class=" flex items-center gap-1 text-white/90 font-medium truncate">
|
<div class=" flex items-center gap-1 text-white/90 font-medium truncate">
|
||||||
<span class="relative flex size-2.5 mx-1">
|
<span class="relative flex size-2.5 mx-1">
|
||||||
@if($systemDomain->is_active)
|
@if($systemDomain->is_active)
|
||||||
|
|
@ -37,8 +37,8 @@
|
||||||
<span class="relative inline-flex size-2.5 rounded-full bg-amber-400/90 ring-2 ring-amber-200/20"></span>
|
<span class="relative inline-flex size-2.5 rounded-full bg-amber-400/90 ring-2 ring-amber-200/20"></span>
|
||||||
@endif
|
@endif
|
||||||
</span>
|
</span>
|
||||||
{{ $systemDomain->domain }}
|
<div>{{ $systemDomain->domain }} </div>
|
||||||
<livewire:ui.domain.dkim-status :domain="$systemDomain" class="ml-2"/>
|
<div><livewire:ui.domain.dkim-status :domain="$systemDomain" :wire:key="'dkim-'.$systemDomain->id" class="ml-2"/></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -106,7 +106,7 @@
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
{{ $d->domain }}
|
{{ $d->domain }}
|
||||||
<livewire:ui.domain.dkim-status :domain="$d" class="ml-2"/>
|
<livewire:ui.domain.dkim-status :domain="$d" :wire:key="'dkim-'.$d->id" class="ml-2"/>
|
||||||
|
|
||||||
<div class="mt-1 flex items-center gap-1.5">
|
<div class="mt-1 flex items-center gap-1.5">
|
||||||
{{-- Zähler-Badges --}}
|
{{-- Zähler-Badges --}}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue