Disconnect unactive users
This commit is contained in:
@@ -82,6 +82,7 @@ export default function CreateForm({
|
||||
}
|
||||
|
||||
await handleSubmit({
|
||||
userId: session.user.userId,
|
||||
accessToken: session.user.accessToken,
|
||||
content: formattedContent,
|
||||
collection,
|
||||
|
||||
@@ -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
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user