Assign other user by admin account

This commit is contained in:
T'JAMPENS QUENTIN p2406187
2026-03-15 16:12:33 +01:00
parent cadf0d1fac
commit 539f42d671
3 changed files with 47 additions and 4 deletions
@@ -7,6 +7,8 @@ import Loading from "../../../../components/ui/Loading/Loading";
import getUserById from "../../../../utils/users/getUserById"; import getUserById from "../../../../utils/users/getUserById";
import styles from "./AssignUserBtn.module.css"; import styles from "./AssignUserBtn.module.css";
import {AuthContext} from "../../../../contexts/Auth/AuthContext"; import {AuthContext} from "../../../../contexts/Auth/AuthContext";
import assignOtherUser from "../../../../utils/tasks/assignOtherUser";
import unAssignOtherUser from "../../../../utils/tasks/unAssignOtherUser";
interface AssignUserBtnProps { interface AssignUserBtnProps {
taskId: string | number; taskId: string | number;
@@ -50,8 +52,17 @@ export default function AssignUserBtn({ taskId }: AssignUserBtnProps): ReactNode
})(); })();
}, []); }, []);
const handleAssign = async (user: User) => { const isUserAssigned = (u: User): boolean =>
u.tasks.some(t => t.id === taskId);
const handleAssign = async (selectedUser: User) => {
await assignOtherUser(taskId as number, selectedUser.id);
setOpen(false);
};
const handleUnassign = async (selectedUser: User) => {
await unAssignOtherUser(taskId as number, selectedUser.id);
setOpen(false);
}; };
return <> return <>
@@ -65,9 +76,15 @@ export default function AssignUserBtn({ taskId }: AssignUserBtnProps): ReactNode
{user.name} {user.lastname} {user.name} {user.lastname}
</p> </p>
<Button onClick={() => handleAssign(user)}> {isUserAssigned(user) ? (
Assigner <Button variant={"danger"} onClick={() => handleUnassign(user)}>
</Button> Désassigner
</Button>
) : (
<Button onClick={() => handleAssign(user)}>
Assigner
</Button>
)}
</div> </div>
))} ))}
</div> </div>
+13
View File
@@ -0,0 +1,13 @@
import fetchWrapper from "../fetchWrapper.js";
import getXSRFToken from "../getXSRF.js";
export default async function assignOtherUser(taskId: number, userId: number): Promise<any> {
const csrfToken = await getXSRFToken();
return fetchWrapper(
`/api/events/task/assign/${userId}`,
{task_id: taskId},
"POST",
{"X-XSRF-TOKEN": csrfToken}
);
}
+13
View File
@@ -0,0 +1,13 @@
import fetchWrapper from "../fetchWrapper.js";
import getXSRFToken from "../getXSRF.js";
export default async function unAssignOtherUser(taskId: number, userId: number): Promise<any> {
const csrfToken = await getXSRFToken();
return fetchWrapper(
`/api/events/task/unassign/${userId}`,
{task_id: taskId},
"POST",
{"X-XSRF-TOKEN": csrfToken}
);
}