mirror of
https://github.com/koreanbots/core.git
synced 2025-12-15 22:10:24 +00:00
42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import { GetServerSideProps, NextPage } from 'next'
|
|
import dynamic from 'next/dynamic'
|
|
|
|
import { get, management } from '@utils/Query'
|
|
import { checkUserFlag, getUserFlags, parseCookie } from '@utils/Tools'
|
|
import { User, UserSpec } from '@types'
|
|
|
|
const Forbidden = dynamic(() => import('@components/Forbidden'))
|
|
const Container = dynamic(() => import('@components/Container'))
|
|
|
|
const ManagementPage: NextPage<ManagementProps> = ({ target, user }) => {
|
|
if(checkUserFlag(user?.flags, 'staff')) return <Container paddingTop>
|
|
<h1 className='text-3xl font-bold pt-2'>{target ? `${target.username}#${target.tag} (${target.id})` : 'Not Found'}</h1>
|
|
<ul>
|
|
<li>EMAIL: {target.email}</li>
|
|
<li>FLAGS: {getUserFlags(target.flags).join(', ')}</li>
|
|
<li>BLOCKED?: {target.perm !== 'user' ? 'true' : 'false'}</li>
|
|
<li></li>
|
|
</ul>
|
|
</Container>
|
|
return <Forbidden />
|
|
}
|
|
|
|
export const getServerSideProps: GetServerSideProps<ManagementProps> = async (ctx) => {
|
|
const parsed = parseCookie(ctx.req)
|
|
const userID = await get.Authorization(parsed?.token)
|
|
const user = userID && await get.user.load(userID)
|
|
if(!checkUserFlag(user?.flags, 'staff')) return { props: {} }
|
|
return {
|
|
props: {
|
|
target: await management.user.get(ctx.params.id as string),
|
|
user: user
|
|
}
|
|
}
|
|
}
|
|
|
|
interface ManagementProps {
|
|
target?: UserSpec
|
|
user?: User
|
|
}
|
|
|
|
export default ManagementPage |