From fa8dc1ae4b4eb5aae501a9683704da4f66c9e243 Mon Sep 17 00:00:00 2001 From: James Cole Date: Mon, 1 Jan 2024 14:13:49 +0100 Subject: [PATCH] Fix bad validation in variable. --- .../Controllers/Json/RecurrenceController.php | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/app/Http/Controllers/Json/RecurrenceController.php b/app/Http/Controllers/Json/RecurrenceController.php index 5247152a4f..e2bb74d201 100644 --- a/app/Http/Controllers/Json/RecurrenceController.php +++ b/app/Http/Controllers/Json/RecurrenceController.php @@ -70,13 +70,15 @@ class RecurrenceController extends Controller $start = Carbon::createFromFormat('Y-m-d', $request->get('start')); $end = Carbon::createFromFormat('Y-m-d', $request->get('end')); $firstDate = Carbon::createFromFormat('Y-m-d', $request->get('first_date')); - $endDate = '' !== (string)$request->get('end_date') ? Carbon::createFromFormat('Y-m-d', $request->get('end_date')) : null; - $endsAt = (string)$request->get('ends'); + $endDate = '' !== (string) $request->get('end_date') ? Carbon::createFromFormat('Y-m-d', $request->get('end_date')) : null; + $endsAt = (string) $request->get('ends'); $repetitionType = explode(',', $request->get('type'))[0]; - $repetitions = (int)$request->get('reps'); + $repetitions = (int) $request->get('reps'); + $weekend = (int) $request->get('weekend'); $repetitionMoment = ''; - $skip = (int)$request->get('skip'); - $skip = $skip < 1 || $skip > 31 ? 1 : $skip; + $skip = (int) $request->get('skip'); + $skip = $skip < 1 || $skip > 31 ? 1 : $skip; + $weekend = $weekend < 1 || $weekend > 4 ? 1 : $weekend; if (false === $start || false === $end || false === $firstDate || false === $endDate) { return response()->json(); @@ -105,7 +107,7 @@ class RecurrenceController extends Controller $repetition->repetition_type = $repetitionType; $repetition->repetition_moment = $repetitionMoment; $repetition->repetition_skip = $skip; - $repetition->weekend = (int)$request->get('weekend'); + $repetition->weekend = $weekend; $actualEnd = clone $end; if ('until_date' === $endsAt) { @@ -124,7 +126,7 @@ class RecurrenceController extends Controller foreach ($occurrences as $current) { if ($current->gte($start)) { $event = [ - 'id' => $repetitionType.$firstDate->format('Ymd'), + 'id' => $repetitionType . $firstDate->format('Ymd'), 'title' => 'X', 'allDay' => true, 'start' => $current->format('Y-m-d'), @@ -144,7 +146,7 @@ class RecurrenceController extends Controller */ public function suggest(Request $request): JsonResponse { - $string = '' === (string)$request->get('date') ? date('Y-m-d') : (string)$request->get('date'); + $string = '' === (string) $request->get('date') ? date('Y-m-d') : (string) $request->get('date'); $today = today(config('app.timezone'))->startOfDay(); try { @@ -156,37 +158,37 @@ class RecurrenceController extends Controller return response()->json(); } $date->startOfDay(); - $preSelected = (string)$request->get('pre_select'); + $preSelected = (string) $request->get('pre_select'); $locale = app('steam')->getLocale(); app('log')->debug(sprintf('date = %s, today = %s. date > today? %s', $date->toAtomString(), $today->toAtomString(), var_export($date > $today, true))); - app('log')->debug(sprintf('past = true? %s', var_export('true' === (string)$request->get('past'), true))); + app('log')->debug(sprintf('past = true? %s', var_export('true' === (string) $request->get('past'), true))); $result = []; - if ($date > $today || 'true' === (string)$request->get('past')) { + if ($date > $today || 'true' === (string) $request->get('past')) { app('log')->debug('Will fill dropdown.'); $weekly = sprintf('weekly,%s', $date->dayOfWeekIso); $monthly = sprintf('monthly,%s', $date->day); - $dayOfWeek = (string)trans(sprintf('config.dow_%s', $date->dayOfWeekIso)); + $dayOfWeek = (string) trans(sprintf('config.dow_%s', $date->dayOfWeekIso)); $ndom = sprintf('ndom,%s,%s', $date->weekOfMonth, $date->dayOfWeekIso); $yearly = sprintf('yearly,%s', $date->format('Y-m-d')); - $yearlyDate = $date->isoFormat((string)trans('config.month_and_day_no_year_js', [], $locale)); + $yearlyDate = $date->isoFormat((string) trans('config.month_and_day_no_year_js', [], $locale)); $result = [ - 'daily' => ['label' => (string)trans('firefly.recurring_daily'), 'selected' => str_starts_with($preSelected, 'daily')], + 'daily' => ['label' => (string) trans('firefly.recurring_daily'), 'selected' => str_starts_with($preSelected, 'daily')], $weekly => [ - 'label' => (string)trans('firefly.recurring_weekly', ['weekday' => $dayOfWeek]), + 'label' => (string) trans('firefly.recurring_weekly', ['weekday' => $dayOfWeek]), 'selected' => str_starts_with($preSelected, 'weekly'), ], $monthly => [ - 'label' => (string)trans('firefly.recurring_monthly', ['dayOfMonth' => $date->day]), + 'label' => (string) trans('firefly.recurring_monthly', ['dayOfMonth' => $date->day]), 'selected' => str_starts_with($preSelected, 'monthly'), ], $ndom => [ - 'label' => (string)trans('firefly.recurring_ndom', ['weekday' => $dayOfWeek, 'dayOfMonth' => $date->weekOfMonth]), + 'label' => (string) trans('firefly.recurring_ndom', ['weekday' => $dayOfWeek, 'dayOfMonth' => $date->weekOfMonth]), 'selected' => str_starts_with($preSelected, 'ndom'), ], $yearly => [ - 'label' => (string)trans('firefly.recurring_yearly', ['date' => $yearlyDate]), + 'label' => (string) trans('firefly.recurring_yearly', ['date' => $yearlyDate]), 'selected' => str_starts_with($preSelected, 'yearly'), ], ];