mirror of
https://github.com/R0m1k3/Socialflow.git
synced 2026-10-23 15:08:13 +02:00
Add administrator ability to manage user page permissions
Add new API endpoints to server/routes.ts for administrators to retrieve and update user page permissions, enhancing user management capabilities. Replit-Commit-Author: Agent Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda Replit-Commit-Checkpoint-Type: intermediate_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/u2SCNAb
This commit is contained in:
1 parent
e8fb9c166b
commit
d711bdfc81
1 file changed
+39
@@ -213,6 +213,45 @@ export async function registerRoutes(app: Express): Promise<Server> {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Route pour obtenir les permissions d'un utilisateur (réservée aux admins)
|
||||||
|
app.get("/api/users/:id/page-permissions", requireAdmin, async (req, res) => {
|
||||||
|
try {
|
||||||
|
const userId = req.params.id;
|
||||||
|
const permissions = await storage.getUserPagePermissions(userId);
|
||||||
|
res.json(permissions);
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error fetching user permissions:", error);
|
||||||
|
res.status(500).json({ error: "Erreur lors de la récupération des permissions" });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Route pour mettre à jour les permissions d'un utilisateur (réservée aux admins)
|
||||||
|
app.post("/api/users/:id/page-permissions", requireAdmin, async (req, res) => {
|
||||||
|
try {
|
||||||
|
const userId = req.params.id;
|
||||||
|
const { pageIds } = req.body as { pageIds: string[] };
|
||||||
|
|
||||||
|
if (!Array.isArray(pageIds)) {
|
||||||
|
return res.status(400).json({ error: "pageIds doit être un tableau" });
|
||||||
|
}
|
||||||
|
|
||||||
|
// Supprimer toutes les permissions existantes de l'utilisateur
|
||||||
|
await storage.deleteAllUserPagePermissions(userId);
|
||||||
|
|
||||||
|
// Créer les nouvelles permissions
|
||||||
|
const permissions = await Promise.all(
|
||||||
|
pageIds.map(pageId =>
|
||||||
|
storage.createPagePermission({ userId, pageId })
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
res.json(permissions);
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error updating user permissions:", error);
|
||||||
|
res.status(500).json({ error: "Erreur lors de la mise à jour des permissions" });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// Route pour vérifier si le mot de passe admin par défaut a été changé
|
// Route pour vérifier si le mot de passe admin par défaut a été changé
|
||||||
app.get("/api/auth/default-password-status", async (req, res) => {
|
app.get("/api/auth/default-password-status", async (req, res) => {
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in new issue
Block a user