mirror of
https://github.com/R0m1k3/Socialflow.git
synced 2026-10-11 17:26:45 +02:00
Add an admin-only endpoint to migrate existing user page permissions
Introduced a new POST endpoint `/api/admin/migrate-permissions` to iterate through all users and their associated social pages, creating new page permissions for any missing entries. This ensures proper access control is established for existing data. 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
88a0d066b5
commit
c70da5136f
1 file changed
+35
@@ -252,6 +252,41 @@ export async function registerRoutes(app: Express): Promise<Server> {
|
||||
}
|
||||
});
|
||||
|
||||
// Route pour migrer les permissions existantes (réservée aux admins)
|
||||
app.post("/api/admin/migrate-permissions", requireAdmin, async (req, res) => {
|
||||
try {
|
||||
// Récupérer tous les utilisateurs
|
||||
const allUsers = await storage.getAllUsers();
|
||||
let migratedCount = 0;
|
||||
|
||||
for (const user of allUsers) {
|
||||
// Récupérer toutes les pages créées par cet utilisateur
|
||||
const userPages = await storage.getSocialPages(user.id);
|
||||
|
||||
for (const page of userPages) {
|
||||
// Vérifier si une permission existe déjà
|
||||
const existingPermissions = await storage.getUserPagePermissions(user.id);
|
||||
const hasPermission = existingPermissions.some(p => p.pageId === page.id);
|
||||
|
||||
if (!hasPermission) {
|
||||
// Créer la permission
|
||||
await storage.createPagePermission({ userId: user.id, pageId: page.id });
|
||||
migratedCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
message: `${migratedCount} permissions migrées avec succès`,
|
||||
migratedCount
|
||||
});
|
||||
} catch (error) {
|
||||
console.error("Error migrating permissions:", error);
|
||||
res.status(500).json({ error: "Erreur lors de la migration des permissions" });
|
||||
}
|
||||
});
|
||||
|
||||
// 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) => {
|
||||
try {
|
||||
|
||||
Reference in new issue
Block a user