Disconnect unactive users

This commit is contained in:
2024-07-02 15:00:02 +02:00
parent 1ca14549fc
commit 4b78471916
3 changed files with 28 additions and 4 deletions
@@ -82,6 +82,7 @@ export default function CreateForm({
}
await handleSubmit({
userId: session.user.userId,
accessToken: session.user.accessToken,
content: formattedContent,
collection,
+5 -3
View File
@@ -12,7 +12,7 @@ import Divider from '@mui/material/Divider'
import Box from '@mui/material/Box'
import {readItems, withToken} from '@directus/sdk'
import LogoutCountdown from '../session/logout-countdown.js'
import {directusClient} from '@/lib/directus.js'
import {directusClient, handleUserStatus} from '@/lib/directus.js'
import {formatDate} from '@/lib/format.js'
const commentsPerPage = process.env.NEXT_PUBLIC_COMMENTS_PER_PAGE || 2
@@ -30,6 +30,8 @@ export default function ListComments({session, selectedTitre, isOpen, setIsOpen,
useEffect(() => {
async function fetchComments() {
try {
await handleUserStatus(session.user.accessToken, session.user.userId)
const result = await directusClient.request(withToken(
session.user.accessToken,
readItems('commentaires', {
@@ -73,7 +75,7 @@ export default function ListComments({session, selectedTitre, isOpen, setIsOpen,
<Dialog open={isOpen} onClose={handleClose}>
<DialogTitle>Commentaires</DialogTitle>
<List sx={{width: '100%', maxWidth: 360, bgcolor: 'background.paper'}}>
{selectedComments && selectedComments.length > 0 ? selectedComments.map(({id, date_created, text, user_created}) => (
{selectedComments && selectedComments.length > 0 ? selectedComments.map(({id, date_created, contenu, user_created}) => (
<React.Fragment key={id}>
<ListItem alignItems='flex-start'>
<ListItemText
@@ -90,7 +92,7 @@ export default function ListComments({session, selectedTitre, isOpen, setIsOpen,
variant='body2'
color='text.primary'
>
{text}
{contenu}
</Typography>
<br />
{formatDate(date_created, 'PPPPpp')}
+22 -1
View File
@@ -1,6 +1,8 @@
import {
createDirectus, rest, authentication, withToken, createItem
createDirectus, rest, authentication, withToken, createItem,
readUser
} from '@directus/sdk'
import {signOut} from 'next-auth/react'
import {hasRestrictedChar} from './format.js'
const apiUrl = process.env.DIRECTUS_API_URL || process.env.NEXT_PUBLIC_DIRECTUS_API_URL
@@ -9,7 +11,24 @@ export const directusClient = createDirectus(apiUrl)
.with(authentication('cookie', {credentials: 'include', autoRefresh: true}))
.with(rest())
export async function handleUserStatus(accessToken, userId) {
const {status} = await directusClient.request(
withToken(
accessToken,
readUser(userId, {
fields: 'status'
})
)
)
if (status !== 'active') {
signOut()
throw new Error('Déconnexion')
}
}
export async function handleSubmit({
userId,
accessToken,
content,
collection,
@@ -27,6 +46,8 @@ export async function handleSubmit({
return
}
await handleUserStatus(accessToken, userId)
await directusClient.request(
withToken(
accessToken,