Adjust join token expiry for event dates
This commit is contained in:
@@ -33,7 +33,7 @@ class EventJoinTokenController extends Controller
|
||||
{
|
||||
$this->authorizeEvent($request, $event, 'join-tokens:manage');
|
||||
|
||||
$validated = $this->validatePayload($request);
|
||||
$validated = $this->validatePayload($request, $event);
|
||||
|
||||
$token = $this->joinTokenService->createToken($event, array_merge($validated, [
|
||||
'created_by' => Auth::id(),
|
||||
@@ -52,7 +52,7 @@ class EventJoinTokenController extends Controller
|
||||
abort(404);
|
||||
}
|
||||
|
||||
$validated = $this->validatePayload($request, true);
|
||||
$validated = $this->validatePayload($request, $event, true);
|
||||
|
||||
$payload = [];
|
||||
|
||||
@@ -115,11 +115,18 @@ class EventJoinTokenController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
private function validatePayload(Request $request, bool $partial = false): array
|
||||
private function validatePayload(Request $request, Event $event, bool $partial = false): array
|
||||
{
|
||||
$minimumExpiry = $this->joinTokenService->minimumExpiryForEvent($event);
|
||||
$expiresAtRules = [$partial ? 'nullable' : 'sometimes', 'nullable', 'date', 'after:now'];
|
||||
|
||||
if ($minimumExpiry) {
|
||||
$expiresAtRules[] = 'after_or_equal:'.$minimumExpiry->toDateTimeString();
|
||||
}
|
||||
|
||||
$rules = [
|
||||
'label' => [$partial ? 'nullable' : 'sometimes', 'string', 'max:255'],
|
||||
'expires_at' => [$partial ? 'nullable' : 'sometimes', 'nullable', 'date', 'after:now'],
|
||||
'expires_at' => $expiresAtRules,
|
||||
'usage_limit' => [$partial ? 'nullable' : 'sometimes', 'nullable', 'integer', 'min:1'],
|
||||
'metadata' => [$partial ? 'nullable' : 'sometimes', 'nullable', 'array'],
|
||||
'metadata.layout_customization' => ['nullable', 'array'],
|
||||
|
||||
Reference in New Issue
Block a user