Let invited speakers bypass Events registration and join as panelists.
Deploy Ladill Meet / deploy (push) Successful in 1m30s

Verify speaker tokens from Events on join, grant panelist role for linked webinars, and point bulk comms links to the attendees page instead of the JSON preview API.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-03 15:48:35 +00:00
co-authored by Cursor
parent 08a1437b44
commit f5f599d1e3
5 changed files with 122 additions and 5 deletions
+15 -2
View File
@@ -12,7 +12,7 @@ class EventsRegistrationSession
return "meet.events.registration.{$room->uuid}";
}
/** @return array{email: ?string, name: ?string, badge_code: ?string}|null */
/** @return array{email: ?string, name: ?string, badge_code: ?string, speaker_token: ?string}|null */
public static function get(Request $request, Room $room): ?array
{
$data = $request->session()->get(self::key($room));
@@ -27,13 +27,26 @@ class EventsRegistrationSession
return filled($data['badge_code'] ?? null) && filled($data['email'] ?? null);
}
/** @param array{email?: ?string, name?: ?string, badge_code?: ?string} $data */
public static function isSpeakerVerified(Request $request, Room $room): bool
{
$data = self::get($request, $room);
return filled($data['speaker_token'] ?? null) && filled($data['email'] ?? null);
}
public static function canJoinEventsLinked(Request $request, Room $room): bool
{
return self::isVerified($request, $room) || self::isSpeakerVerified($request, $room);
}
/** @param array{email?: ?string, name?: ?string, badge_code?: ?string, speaker_token?: ?string} $data */
public static function store(Request $request, Room $room, array $data): void
{
$request->session()->put(self::key($room), [
'email' => $data['email'] ?? null,
'name' => $data['name'] ?? null,
'badge_code' => $data['badge_code'] ?? null,
'speaker_token' => $data['speaker_token'] ?? null,
]);
}