From 9585685d4a623cc6e04de1dc303e586f0a890edd Mon Sep 17 00:00:00 2001 From: Vitalii Date: Fri, 12 Apr 2024 18:25:38 +0300 Subject: [PATCH] web/satellite: prevent setting past expiration date in create AG flow Added logic to handle possible user error when they try to set past expiration date in create AG flow. Change-Id: Idceb36d6492299c2092afcc32fb2ce507ae983b4 --- .../ChoosePermissionsStep.vue | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/web/satellite/src/components/dialogs/createAccessSteps/ChoosePermissionsStep.vue b/web/satellite/src/components/dialogs/createAccessSteps/ChoosePermissionsStep.vue index 5e707b8183b0..11c87bbb7066 100644 --- a/web/satellite/src/components/dialogs/createAccessSteps/ChoosePermissionsStep.vue +++ b/web/satellite/src/components/dialogs/createAccessSteps/ChoosePermissionsStep.vue @@ -215,9 +215,13 @@ import { AccessGrantEndDate, Permission } from '@/types/createAccessGrant'; import { useBucketsStore } from '@/store/modules/bucketsStore'; import { SHORT_MONTHS_NAMES } from '@/utils/constants/date'; import { ValidationRule, RequiredRule, DialogStepComponent } from '@/types/common'; +import { AnalyticsErrorEventSource } from '@/utils/constants/analyticsEventNames'; +import { useNotify } from '@/utils/hooks'; type EndDateListItem = AccessGrantEndDate | { divider: true }; +const notify = useNotify(); + const allPermissions: Permission[] = [ Permission.Read, Permission.Write, @@ -323,9 +327,21 @@ function onDatePickerSubmit(): void { if (!datePickerModel.value) return; const date = datePickerModel.value; + const submitted = new Date( + date.getFullYear(), + date.getMonth(), + date.getDate(), + 11, 59, 59, + ); + + if (submitted.getTime() < new Date().getTime()) { + notify.error('Please select future date', AnalyticsErrorEventSource.CREATE_AG_MODAL); + return; + } + endDate.value = { title: `${date.getDate()} ${SHORT_MONTHS_NAMES[date.getMonth()]} ${date.getFullYear()}`, - date: new Date(date.getFullYear(), date.getMonth(), date.getDate(), 11, 59, 59), + date: submitted, }; isDatePicker.value = false;