diff --git a/backend/src/routes/permanences.routes.ts b/backend/src/routes/permanences.routes.ts index a5d2f6d..7b6c307 100644 --- a/backend/src/routes/permanences.routes.ts +++ b/backend/src/routes/permanences.routes.ts @@ -8,16 +8,17 @@ const permanenceRouter = express.Router(); const upload = multer({ dest: "uploads/permcsv/" }); // Admin routes -permanenceRouter.post("/admin/permanence", checkRole("Admin",[]), permanenceController.createPermanence); -permanenceRouter.delete("/admin/permanence", checkRole("Admin",[]), permanenceController.deletePermanence); -permanenceRouter.post("/admin/updatepermanence", checkRole("Admin",[]), permanenceController.updatePermanence); -permanenceRouter.post("/admin/open", checkRole("Admin",[]), permanenceController.openPermanence); -permanenceRouter.post("/admin/close", checkRole("Admin",[]), permanenceController.closePermanence); -permanenceRouter.get("/admin/permanences", checkRole("Admin",[]), permanenceController.getAllPermanences); -permanenceRouter.get("/admin/users", checkRole("Admin",[]), permanenceController.getUsersInPermanence); -permanenceRouter.post("/admin/add", checkRole("Admin",[]), permanenceController.addUserToPermanence); -permanenceRouter.post("/admin/remove", checkRole("Admin",[]), permanenceController.removeUserToPermanence); -permanenceRouter.post("/admin/importpermanences",checkRole("Admin",[]), upload.single("file"), permanenceController.uploadPermanencesCSV); +permanenceRouter.post("/admin/permanence", checkRole("Admin",["Respo CE"]), permanenceController.createPermanence); +permanenceRouter.delete("/admin/permanence", checkRole("Admin",["Respo CE"]), permanenceController.deletePermanence); +permanenceRouter.post("/admin/updatepermanence", checkRole("Admin",["Respo CE"]), permanenceController.updatePermanence); +permanenceRouter.post("/admin/open", checkRole("Admin",["Respo CE"]), permanenceController.openPermanence); +permanenceRouter.post("/admin/close", checkRole("Admin",["Respo CE"]), permanenceController.closePermanence); +permanenceRouter.get("/admin/permanences", checkRole("Admin",["Respo CE"]), permanenceController.getAllPermanences); +permanenceRouter.get("/admin/users", checkRole("Admin",["Respo CE"]), permanenceController.getUsersInPermanence); +permanenceRouter.post("/admin/add", checkRole("Admin",["Respo CE"]), permanenceController.addUserToPermanence); +permanenceRouter.post("/admin/remove", checkRole("Admin",["Respo CE"]), permanenceController.removeUserToPermanence); +permanenceRouter.post("/admin/importpermanences",checkRole("Admin",["Respo CE"]), upload.single("file"), permanenceController.uploadPermanencesCSV); +permanenceRouter.post("/admin/claimedmember",checkRole("Admin",["Respo CE"]), permanenceController.claimMember); //Respo de perm routes diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index e0d74c9..aeaa043 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -86,6 +86,7 @@ const App: React.FC = () => { {/* ResposCE et Admin */} } /> } /> + } /> {/* ResposCE et Admin */} } /> @@ -96,7 +97,6 @@ const App: React.FC = () => { } /> } /> } /> - } /> } /> } /> } /> diff --git a/frontend/src/components/Admin/AdminPerm/adminPermMembers.tsx b/frontend/src/components/Admin/AdminPerm/adminPermMembers.tsx index 9005784..677d263 100644 --- a/frontend/src/components/Admin/AdminPerm/adminPermMembers.tsx +++ b/frontend/src/components/Admin/AdminPerm/adminPermMembers.tsx @@ -8,7 +8,7 @@ import { getUsersByPermanence, addUserToPermanence, removeUserFromPermanence, - claimedMember, + claimedMemberAdmin, } from "../../../services/requests/permanence.service"; import { Permanence } from "../../../interfaces/permanence.interface"; import { User } from "../../../interfaces/user.interface"; @@ -105,7 +105,7 @@ const PermanenceMembers: React.FC = ({ perm, users, onRe const handleToggleClaim = async (user: PermanenceMember): Promise => { try { const newClaimedStatus = !user.claimed; - await claimedMember(user.userId, perm.id, newClaimedStatus); + await claimedMemberAdmin(user.userId, perm.id, newClaimedStatus); await Swal.fire( newClaimedStatus ? "Présence confirmée" : "Présence retirée", diff --git a/frontend/src/components/navbar.tsx b/frontend/src/components/navbar.tsx index e73fcc1..4fe3dd3 100644 --- a/frontend/src/components/navbar.tsx +++ b/frontend/src/components/navbar.tsx @@ -65,7 +65,7 @@ export const Navbar = () => { { label: "Teams", to: "/admin/teams", rolesAllowed: ["Admin", "Respo CE"] }, { label: "Factions", to: "/admin/factions", rolesAllowed: ["Admin", "Respo CE"] }, { label: "Events", to: "/admin/events", rolesAllowed: ["Admin"] }, - { label: "Permanences", to: "/admin/permanences", rolesAllowed: ["Admin"] }, + { label: "Permanences", to: "/admin/permanences", rolesAllowed: ["Admin", "Respo CE"] }, { label: "Challenge", to: "/admin/challenge", rolesAllowed: ["Admin", "Arbitre"] }, { label: "Export / Import", to: "/admin/export-import", rolesAllowed: ["Admin"] }, { label: "Email", to: "/admin/email", rolesAllowed: ["Admin"] }, diff --git a/frontend/src/pages/admin.tsx b/frontend/src/pages/admin.tsx index c15656f..57fba2c 100644 --- a/frontend/src/pages/admin.tsx +++ b/frontend/src/pages/admin.tsx @@ -131,7 +131,7 @@ export const AdminPagePerm: React.FC = () => { }; return ( - +
{/* Formulaire (créer/éditer) */} diff --git a/frontend/src/services/requests/permanence.service.ts b/frontend/src/services/requests/permanence.service.ts index a5c824f..453202c 100644 --- a/frontend/src/services/requests/permanence.service.ts +++ b/frontend/src/services/requests/permanence.service.ts @@ -171,5 +171,14 @@ export const claimedMember = async (userId: number, permId: number, claimed : bo return response.data; }; +export const claimedMemberAdmin = async (userId: number, permId: number, claimed : boolean) => { + const response = await api.post(`/permanence/admin/claimedmember`, { + userId, + permId, + claimed + }); + return response.data; +}; +