Merge pull request #5354 from christianbeeznest/GH-5327

Internal: Implement expiration date login restriction - refs #5327
pull/5355/head
christianbeeznest 1 year ago committed by GitHub
commit d403f83868
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 5
      assets/vue/composables/auth/login.js
  2. 9
      src/CoreBundle/Controller/SecurityController.php

@ -3,6 +3,7 @@ import { useRoute, useRouter } from "vue-router"
import { useSecurityStore } from "../../store/securityStore"
import { ref } from "vue"
import securityService from "../../services/securityService"
import { useNotification } from "../notification"
function isValidHttpUrl(string) {
let url
@ -21,6 +22,7 @@ export function useLogin() {
const router = useRouter()
const securityStore = useSecurityStore()
const platformConfigurationStore = usePlatformConfig()
const { showSuccessNotification, showErrorNotification } = useNotification()
const isLoading = ref(false)
@ -54,6 +56,9 @@ export function useLogin() {
} else {
await router.replace({ name: "Home" })
}
} catch (error) {
const errorMessage = error.response?.data?.error || "An error occurred during login."
showErrorNotification(errorMessage)
} finally {
isLoading.value = false
}

@ -62,6 +62,15 @@ class SecurityController extends AbstractController
return $this->json(['error' => $message], 401);
}
if (null !== $user->getExpirationDate() && $user->getExpirationDate() <= new \DateTime()) {
$message = $translator->trans('Your account has expired.');
$tokenStorage->setToken(null);
$request->getSession()->invalidate();
return $this->json(['error' => $message], 401);
}
$extraFieldValuesRepository = $this->entityManager->getRepository(ExtraFieldValues::class);
$legalTermsRepo = $this->entityManager->getRepository(Legal::class);
if ($user->hasRole('ROLE_STUDENT')

Loading…
Cancel
Save