Rechtebechebung für User mit Sudorechte
parent
f8934b7a9a
commit
d37ef8ffee
|
|
@ -42,32 +42,40 @@ class DkimStatus extends Component
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Button: (Re)generieren → Service kümmert sich um Helper & Reload */
|
/** Button: (Re)generieren → Service kümmert sich um Helper & Reload */
|
||||||
|
// #[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());
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// $this->selector = $selector;
|
// $this->selector = $selector;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
// #[On('dkim:regenerate')]
|
|
||||||
public function regenerate(?string $selector = null): void
|
public function regenerate(?string $selector = null): void
|
||||||
{
|
{
|
||||||
$selector = $selector
|
$selector = $selector
|
||||||
|
|
@ -80,21 +88,36 @@ class DkimStatus extends Component
|
||||||
]);
|
]);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
/** @var DkimService $svc */
|
/** @var \App\Services\DkimService $svc */
|
||||||
$svc = app(\App\Services\DkimService::class);
|
$svc = app(\App\Services\DkimService::class);
|
||||||
|
|
||||||
Log::info('DKIM regenerate() calling service.generateForDomain');
|
// 1) Keymaterial in storage erzeugen/aktualisieren
|
||||||
$svc->generateForDomain($this->domain, 2048, $selector);
|
$res = $svc->generateForDomain($this->domain, 2048, $selector);
|
||||||
Log::info('DKIM regenerate() service call returned OK');
|
$priv = $res['priv_path']
|
||||||
|
?? storage_path("app/private/dkim/{$this->domain->domain}/{$selector}.private");
|
||||||
|
$txt = storage_path("app/private/dkim/{$this->domain->domain}/{$selector}.txt");
|
||||||
|
|
||||||
// sicherheitshalber
|
if (!is_readable($txt) && !empty($res['dns_txt'])) {
|
||||||
\Illuminate\Support\Facades\Process::run(['sudo','-n','/usr/bin/systemctl','reload','opendkim']);
|
file_put_contents($txt, $res['dns_txt']);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2) In OpenDKIM installieren (Key kopieren + Tabellen pflegen)
|
||||||
|
$proc = Process::run([
|
||||||
|
'sudo','-n','/usr/local/sbin/mailwolt-install-dkim',
|
||||||
|
$this->domain->domain, $selector, $priv, $txt
|
||||||
|
]);
|
||||||
|
if (!$proc->successful()) {
|
||||||
|
throw new \RuntimeException("install-dkim failed: ".$proc->errorOutput());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3) OpenDKIM neu laden
|
||||||
|
Process::run(['sudo','-n','/usr/bin/systemctl','reload','opendkim']);
|
||||||
|
|
||||||
$ok = $this->isDkimReady($this->domain->domain, $selector);
|
$ok = $this->isDkimReady($this->domain->domain, $selector);
|
||||||
$this->dispatch('toast', type: $ok ? 'success' : 'warning',
|
$this->dispatch('toast', type: $ok ? 'success' : 'warning',
|
||||||
message: $ok ? 'DKIM ist aktiv.' : 'DKIM generiert – OpenDKIM prüfen.');
|
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()]);
|
Log::error('DKIM regenerate() failed', ['ex'=>$e->getMessage()]);
|
||||||
$this->dispatch('toast', type: 'error', message: 'DKIM Fehler: '.$e->getMessage());
|
$this->dispatch('toast', type: 'error', message: 'DKIM Fehler: '.$e->getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue