@@ -372,7 +422,14 @@ new #[Layout('components.layouts.app'), Title('Pressemitteilung')] class extends
@@ -411,6 +468,32 @@ new #[Layout('components.layouts.app'), Title('Pressemitteilung')] class extends
@endif
+ @php
+ // Neben dem Autor können weitere User (Firmen-Mitglieder, z. B.
+ // per Magic-Link eingeladen) auf die PM zugreifen.
+ $companyUsers = $pr->company?->users ?? collect();
+ @endphp
+ @if ($companyUsers->isNotEmpty())
+
+
+ {{ __('Benutzer mit Zugriff (über Firma)') }}
+
+
+ @foreach ($companyUsers as $companyUser)
+
+
+ {{ $companyUser->name }}
+
+
+ {{ $companyUser->pivot->role === 'owner' ? __('Owner') : __('Member') }}@if ($companyUser->id === $pr->user_id) · {{ __('Autor') }}@endif
+
+
+ @endforeach
+
+
+ @endif
+
@if ($pr->no_export)
diff --git a/tests/Feature/Admin/AdminPressReleaseShowTest.php b/tests/Feature/Admin/AdminPressReleaseShowTest.php
index 1817a384..8bb8ad95 100644
--- a/tests/Feature/Admin/AdminPressReleaseShowTest.php
+++ b/tests/Feature/Admin/AdminPressReleaseShowTest.php
@@ -51,7 +51,12 @@ test('admin show zeigt zugeordnete Pressekontakte', function () {
$admin = makeAdminForShow();
$this->actingAs($admin);
- $company = Company::factory()->presseecho()->create();
+ $company = Company::factory()->presseecho()->create([
+ 'name' => 'Muster GmbH',
+ 'email' => 'firma@example.test',
+ 'phone' => '+49 30 1234567',
+ 'website' => 'https://muster.example.test',
+ ]);
$contact = Contact::factory()->for($company)->create([
'first_name' => 'Max',
'last_name' => 'Mustermann',
@@ -64,6 +69,11 @@ test('admin show zeigt zugeordnete Pressekontakte', function () {
$pr->contacts()->sync([$contact->id]);
LivewireVolt::test('admin.press-releases.show', ['id' => $pr->id])
+ ->assertSee('Firma & Pressekontakte')
+ ->assertSee('Muster GmbH')
+ ->assertSee('firma@example.test')
+ ->assertSee('+49 30 1234567')
+ ->assertSee('https://muster.example.test')
->assertSee('Zugeordnete Pressekontakte')
->assertSee('Max Mustermann')
->assertSee('Pressesprecher')
@@ -112,6 +122,30 @@ test('admin show zeigt Embargo-Info im Published-Workflow', function () {
->assertSee('Sperrfrist bis');
});
+test('admin show verlinkt Firma, Autor und Firmen-Benutzer', function () {
+ /** @var TestCase $this */
+ $admin = makeAdminForShow();
+ $this->actingAs($admin);
+
+ $company = Company::factory()->presseecho()->create(['name' => 'Muster GmbH']);
+ $author = User::factory()->create(['name' => 'Anna Autorin']);
+ $coEditor = User::factory()->create(['name' => 'Carl Co-Editor']);
+ $company->users()->attach($author->id, ['role' => 'owner']);
+ $company->users()->attach($coEditor->id, ['role' => 'member']);
+
+ $pr = PressRelease::factory()->create([
+ 'company_id' => $company->id,
+ 'user_id' => $author->id,
+ ]);
+
+ LivewireVolt::test('admin.press-releases.show', ['id' => $pr->id])
+ ->assertSee('Benutzer mit Zugriff')
+ ->assertSee('Carl Co-Editor')
+ ->assertSeeHtml(route('admin.companies.show', $company->id))
+ ->assertSeeHtml(route('admin.users.show', $author->id))
+ ->assertSeeHtml(route('admin.users.show', $coEditor->id));
+});
+
test('admin show zeigt Autor im Status-Verlauf-Grid', function () {
/** @var TestCase $this */
$admin = makeAdminForShow();