@@ -10,6 +10,8 @@ import { checkLicenseConfigValid, getUserInfoResponse } from '../redux/actions'
1010import { getAPIAccessToken , checkLicensePresent } from 'Redux/actions'
1111import GluuTimeoutModal from 'Routes/Apps/Gluu/GluuTimeoutModal'
1212import GluuErrorModal from 'Routes/Apps/Gluu/GluuErrorModal'
13+ import GluuToast from 'Routes/Apps/Gluu/GluuToast'
14+ import { toast } from 'react-toastify'
1315import { updateToast } from 'Redux/features/toastSlice'
1416import {
1517 FetchRequestor ,
@@ -30,6 +32,7 @@ import {
3032 fetchUserInformation ,
3133 type FetchUserInfoResult ,
3234} from 'Redux/api/backend-api'
35+ import { useTranslation } from 'react-i18next'
3336import { jwtDecode } from 'jwt-decode'
3437import type { UserInfo } from '@/redux/features/types/authTypes'
3538
@@ -50,9 +53,12 @@ interface AppAuthProviderProps {
5053 children : ReactNode
5154}
5255
56+ const LOGOUT_DELAY_SECONDS = 10
57+
5358export default function AppAuthProvider ( { children } : Readonly < AppAuthProviderProps > ) {
5459 const dispatch = useAppDispatch ( )
5560 const location = useLocation ( )
61+ const { t } = useTranslation ( )
5662 const [ roleNotFound , setRoleNotFound ] = useState ( false )
5763 const [ showAdminUI , setShowAdminUI ] = useState ( false )
5864 const {
@@ -236,11 +242,16 @@ export default function AppAuthProvider({ children }: Readonly<AppAuthProviderPr
236242
237243 if ( ! hasValidRole ) {
238244 setShowAdminUI ( false )
239- alert ( 'The logged-in user do not have valid role. Logging out of Admin UI' )
240245 setRoleNotFound ( true )
241246 const state = uuidv4 ( )
242247 const sessionEndpoint = `${ authConfigs ?. endSessionEndpoint ?? '' } ?state=${ state } &post_logout_redirect_uri=${ localStorage . getItem ( 'postLogoutRedirectUri' ) ?? '' } `
243- window . location . href = sessionEndpoint
248+ const redirect = ( ) => {
249+ window . location . href = sessionEndpoint
250+ }
251+ toast . error ( t ( 'messages.no_valid_role_logout' , { seconds : LOGOUT_DELAY_SECONDS } ) , {
252+ autoClose : LOGOUT_DELAY_SECONDS * 1000 ,
253+ onClose : redirect ,
254+ } )
244255 return
245256 }
246257
@@ -274,6 +285,7 @@ export default function AppAuthProvider({ children }: Readonly<AppAuthProviderPr
274285
275286 return (
276287 < React . Fragment >
288+ < GluuToast />
277289 < SessionTimeout isAuthenticated = { showAdminUI } />
278290 < GluuTimeoutModal
279291 description = {
0 commit comments