import React from 'react'; import useSWR from 'swr'; import LoadingSpinner from '../Common/LoadingSpinner'; import type { User } from '../../../server/entity/User'; import Badge from '../Common/Badge'; import { FormattedDate, defineMessages, useIntl } from 'react-intl'; import Button from '../Common/Button'; import { hasPermission } from '../../../server/lib/permissions'; import { Permission } from '../../hooks/useUser'; import { useRouter } from 'next/router'; import Header from '../Common/Header'; import Table from '../Common/Table'; const messages = defineMessages({ userlist: 'User List', username: 'Username', totalrequests: 'Total Requests', usertype: 'User Type', role: 'Role', created: 'Created', lastupdated: 'Last Updated', edit: 'Edit', delete: 'Delete', admin: 'Admin', user: 'User', plexuser: 'Plex User', }); const UserList: React.FC = () => { const intl = useIntl(); const router = useRouter(); const { data, error } = useSWR('/api/v1/user'); if (!data && !error) { return ; } return ( <>
{intl.formatMessage(messages.userlist)}
{intl.formatMessage(messages.username)}{intl.formatMessage(messages.totalrequests)}{intl.formatMessage(messages.usertype)}{intl.formatMessage(messages.role)}{intl.formatMessage(messages.created)}{intl.formatMessage(messages.lastupdated)} {data?.map((user) => (
{user.username}
{user.email}
{user.requestCount}
{intl.formatMessage(messages.plexuser)} {hasPermission(Permission.ADMIN, user.permissions) ? intl.formatMessage(messages.admin) : intl.formatMessage(messages.user)} ))}
); }; export default UserList;