Stuff with the new corporate
This commit is contained in:
@@ -33,6 +33,7 @@ import {
|
|||||||
} from "react-icons/bs";
|
} from "react-icons/bs";
|
||||||
import { ToastContainer } from "react-toastify";
|
import { ToastContainer } from "react-toastify";
|
||||||
import { useAllowedEntities } from "@/hooks/useEntityPermissions";
|
import { useAllowedEntities } from "@/hooks/useEntityPermissions";
|
||||||
|
import { isAdmin } from "@/utils/users";
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
user: User;
|
user: User;
|
||||||
@@ -51,12 +52,12 @@ export const getServerSideProps = withIronSessionSsr(async ({ req, res }) => {
|
|||||||
if (!checkAccess(user, ["admin", "developer", "corporate"])) return redirect("/")
|
if (!checkAccess(user, ["admin", "developer", "corporate"])) return redirect("/")
|
||||||
|
|
||||||
const entityIDS = mapBy(user.entities, "id") || [];
|
const entityIDS = mapBy(user.entities, "id") || [];
|
||||||
const entities = await getEntitiesWithRoles(entityIDS);
|
const entities = await getEntitiesWithRoles(isAdmin(user) ? undefined : entityIDS);
|
||||||
const users = await filterAllowedUsers(user, entities)
|
const users = await filterAllowedUsers(user, entities)
|
||||||
|
|
||||||
const userCounts = await countAllowedUsers(user, entities)
|
const userCounts = await countAllowedUsers(user, entities)
|
||||||
const assignmentsCount = await countEntitiesAssignments(entityIDS, { archived: { $ne: true } });
|
const assignmentsCount = await countEntitiesAssignments(mapBy(entities, "id"), { archived: { $ne: true } });
|
||||||
const groupsCount = await countGroupsByEntities(entityIDS);
|
const groupsCount = await countGroupsByEntities(mapBy(entities, "id"));
|
||||||
|
|
||||||
const stats = await getStatsByUsers(users.map((u) => u.id));
|
const stats = await getStatsByUsers(users.map((u) => u.id));
|
||||||
|
|
||||||
@@ -132,7 +133,7 @@ export default function Dashboard({ user, users, userCounts, entities, assignmen
|
|||||||
<IconCard Icon={BsPersonFillGear}
|
<IconCard Icon={BsPersonFillGear}
|
||||||
onClick={() => router.push("/users/performance")}
|
onClick={() => router.push("/users/performance")}
|
||||||
label="Student Performance"
|
label="Student Performance"
|
||||||
value={students.length}
|
value={userCounts.student}
|
||||||
color="purple"
|
color="purple"
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -168,10 +168,10 @@ export const countAllowedUsers = async (user: User, entities: EntityWithRoles[])
|
|||||||
const corporateAllowedEntities = findAllowedEntities(user, entities, 'view_corporates')
|
const corporateAllowedEntities = findAllowedEntities(user, entities, 'view_corporates')
|
||||||
const masterCorporateAllowedEntities = findAllowedEntities(user, entities, 'view_mastercorporates')
|
const masterCorporateAllowedEntities = findAllowedEntities(user, entities, 'view_mastercorporates')
|
||||||
|
|
||||||
const students = await countEntitiesUsers(mapBy(studentsAllowedEntities, 'id'), { type: "student" })
|
const student = await countEntitiesUsers(mapBy(studentsAllowedEntities, 'id'), { type: "student" })
|
||||||
const teachers = await countEntitiesUsers(mapBy(teachersAllowedEntities, 'id'), { type: "teacher" })
|
const teacher = await countEntitiesUsers(mapBy(teachersAllowedEntities, 'id'), { type: "teacher" })
|
||||||
const corporates = await countEntitiesUsers(mapBy(corporateAllowedEntities, 'id'), { type: "corporate" })
|
const corporate = await countEntitiesUsers(mapBy(corporateAllowedEntities, 'id'), { type: "corporate" })
|
||||||
const masterCorporates = await countEntitiesUsers(mapBy(masterCorporateAllowedEntities, 'id'), { type: "mastercorporate" })
|
const masterCorporate = await countEntitiesUsers(mapBy(masterCorporateAllowedEntities, 'id'), { type: "mastercorporate" })
|
||||||
|
|
||||||
return { students, teachers, corporates, masterCorporates }
|
return { student, teacher, corporate, masterCorporate }
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user