newsroom: Hinweis „Diesen Newsroom verwalten“ auf der Seite und in der Mail (Roadmap 1b.4, E4)
E4 (15.09.2026): Die Veröffentlichungsmail trägt den Hinweis am Ende, als Hinweis, nicht als Angebot. Auf der Newsroom-Seite eine Zeile unter dem Profil. Der Mail-Link ist mit src=mail_publish getaggt; die Claim-Seite reicht die Herkunft bis auf das Token durch, sodass die Leiter „aus der Mail beansprucht“ von „auf der Seite entdeckt“ unterscheidet. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
9143cc4a54
commit
01014887cf
11 changed files with 141 additions and 5 deletions
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace App\Http\Controllers\Web;
|
||||
|
||||
use App\Enums\ConversionSource;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Company;
|
||||
use App\Scopes\PortalScope;
|
||||
|
|
@ -68,7 +69,7 @@ class NewsroomClaimController extends Controller
|
|||
|
||||
// Enumeration-sicher: dieselbe Meldung, ob ein Konto deaktiviert ist
|
||||
// oder nicht — die Adresse ist ohnehin nur maskiert sichtbar.
|
||||
$this->claims->request($company, $request->ip());
|
||||
$this->claims->request($company, $request->ip(), $this->sourceOf($request));
|
||||
|
||||
return back()->with('newsroom-claim-status', __('static.newsroom_claim.flash_sent'));
|
||||
}
|
||||
|
|
@ -101,6 +102,20 @@ class NewsroomClaimController extends Controller
|
|||
abort(404);
|
||||
}
|
||||
|
||||
/**
|
||||
* Kam der Besucher aus einer Mail (`src` aus dem Link, per Formular
|
||||
* weitergereicht), trägt das Token diese Herkunft — sonst ist es der
|
||||
* Hinweis auf der Newsroom-Seite.
|
||||
*/
|
||||
private function sourceOf(Request $request): ConversionSource
|
||||
{
|
||||
$source = ConversionSource::parse($request->filled('src') ? (string) $request->input('src') : null);
|
||||
|
||||
return in_array($source, [ConversionSource::MailPublish, ConversionSource::MailReject], true)
|
||||
? $source
|
||||
: ConversionSource::ProfileClaim;
|
||||
}
|
||||
|
||||
private function ensureNotRateLimited(Request $request, int $companyId): void
|
||||
{
|
||||
$perDay = (int) config('newsroom.claim.links_per_day', 3);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue