Added new permission types

This commit is contained in:
Tiago Ribeiro
2024-11-25 11:22:58 +00:00
parent 47762544fc
commit bce3a25dc2
4 changed files with 43 additions and 8 deletions

View File

@@ -43,6 +43,10 @@ const USER_MANAGEMENT: PermissionLayout[] = [
{ label: "Delete Teachers", key: "delete_teachers" },
{ label: "Delete Corporate Accounts", key: "delete_corporates" },
{ label: "Delete Master Corporate Accounts", key: "delete_mastercorporates" },
{ label: "Create a Single User", key: "create_user" },
{ label: "Create Users in Batch", key: "create_user_batch" },
{ label: "Create a Single Code", key: "create_code" },
{ label: "Create Codes in Batch", key: "create_code_batch" },
]
const EXAM_MANAGEMENT: PermissionLayout[] = [

View File

@@ -35,6 +35,7 @@ import { isAdmin } from "@/utils/users";
import { getGradingSystemByEntities, getGradingSystemByEntity } from "@/utils/grading.be";
import { Grading } from "@/interfaces";
import { useRouter } from "next/router";
import { useAllowedEntities } from "@/hooks/useEntityPermissions";
export const getServerSideProps = withIronSessionSsr(async ({ req, res }) => {
const user = await requestUser(req, res)
@@ -66,6 +67,11 @@ export default function Admin({ user, entities, permissions, allUsers, entitiesG
const [modalOpen, setModalOpen] = useState<string>();
const router = useRouter()
const entitiesAllowCreateUser = useAllowedEntities(user, entities, 'create_user')
const entitiesAllowCreateUsers = useAllowedEntities(user, entities, 'create_user_batch')
const entitiesAllowCreateCode = useAllowedEntities(user, entities, 'create_code')
const entitiesAllowCreateCodes = useAllowedEntities(user, entities, 'create_code_batch')
return (
<>
<Head>
@@ -80,7 +86,12 @@ export default function Admin({ user, entities, permissions, allUsers, entitiesG
<ToastContainer />
<Layout user={user} className="gap-6">
<Modal isOpen={modalOpen === "batchCreateUser"} onClose={() => setModalOpen(undefined)} maxWidth="max-w-[85%]">
<BatchCreateUser user={user} entities={entities} permissions={permissions} onFinish={() => setModalOpen(undefined)} />
<BatchCreateUser
user={user}
entities={entitiesAllowCreateUser}
permissions={permissions}
onFinish={() => setModalOpen(undefined)}
/>
</Modal>
<Modal isOpen={modalOpen === "batchCreateCode"} onClose={() => setModalOpen(undefined)}>
<BatchCodeGenerator user={user} users={allUsers} permissions={permissions} onFinish={() => setModalOpen(undefined)} />
@@ -89,7 +100,13 @@ export default function Admin({ user, entities, permissions, allUsers, entitiesG
<CodeGenerator user={user} permissions={permissions} onFinish={() => setModalOpen(undefined)} />
</Modal>
<Modal isOpen={modalOpen === "createUser"} onClose={() => setModalOpen(undefined)}>
<UserCreator user={user} entities={entities} users={allUsers} permissions={permissions} onFinish={() => setModalOpen(undefined)} />
<UserCreator
user={user}
entities={entitiesAllowCreateUsers}
users={allUsers}
permissions={permissions}
onFinish={() => setModalOpen(undefined)}
/>
</Modal>
<Modal isOpen={modalOpen === "gradingSystem"} onClose={() => setModalOpen(undefined)}>
<CorporateGradingSystem
@@ -110,6 +127,7 @@ export default function Admin({ user, entities, permissions, allUsers, entitiesG
color="purple"
className="w-full h-full"
onClick={() => setModalOpen("createCode")}
disabled={entitiesAllowCreateCode.length > 0}
/>
<IconCard
Icon={BsCodeSquare}
@@ -117,6 +135,7 @@ export default function Admin({ user, entities, permissions, allUsers, entitiesG
color="purple"
className="w-full h-full"
onClick={() => setModalOpen("batchCreateCode")}
disabled={entitiesAllowCreateCodes.length > 0}
/>
<IconCard
Icon={BsPersonFill}
@@ -124,6 +143,7 @@ export default function Admin({ user, entities, permissions, allUsers, entitiesG
color="purple"
className="w-full h-full"
onClick={() => setModalOpen("createUser")}
disabled={entitiesAllowCreateUser.length > 0}
/>
<IconCard
Icon={BsPeopleFill}
@@ -131,6 +151,7 @@ export default function Admin({ user, entities, permissions, allUsers, entitiesG
color="purple"
className="w-full h-full"
onClick={() => setModalOpen("batchCreateUser")}
disabled={entitiesAllowCreateUsers.length > 0}
/>
{checkAccess(user, ["admin", "corporate", "developer", "mastercorporate"]) && (
<IconCard