Merge pull request #56 from R0m1k3/dev

Dev
This commit is contained in:
LogiFlow authored and GitHub committed 2025-10-10 11:48:06 +02:00
commit 9a409d7e1e
2 files changed
+23 -3

No files matched your search

+14
View File
@@ -31,6 +31,19 @@ VALUES (
'user'
) ON CONFLICT (username) DO NOTHING;
-- Créer la table user_page_permissions (permissions d'accès aux pages par utilisateur)
CREATE TABLE IF NOT EXISTS user_page_permissions (
id VARCHAR PRIMARY KEY DEFAULT gen_random_uuid(),
user_id VARCHAR NOT NULL REFERENCES users(id) ON DELETE CASCADE,
page_id VARCHAR NOT NULL REFERENCES social_pages(id) ON DELETE CASCADE,
created_at TIMESTAMP DEFAULT NOW(),
UNIQUE(user_id, page_id)
);
-- Index pour optimiser les requêtes de permissions
CREATE INDEX IF NOT EXISTS idx_user_page_permissions_user_id ON user_page_permissions(user_id);
CREATE INDEX IF NOT EXISTS idx_user_page_permissions_page_id ON user_page_permissions(page_id);
-- Liste des tables créées automatiquement par Drizzle ORM :
-- - users (utilisateurs avec rôles)
-- - social_pages (pages Facebook/Instagram connectées)
@@ -41,3 +54,4 @@ VALUES (
-- - scheduled_posts (publications programmées)
-- - ai_generations (historique des générations IA)
-- - post_media (relation many-to-many entre posts et media)
-- - user_page_permissions (permissions d'accès aux pages par utilisateur)
+9 -3
View File
@@ -772,12 +772,18 @@ export async function registerRoutes(app: Express): Promise<Server> {
const allPostsArrays = await Promise.all(allPostsPromises);
scheduledPosts = allPostsArrays.flat();
} else {
// User voit uniquement les posts des pages qui lui sont attribuées
// User voit tous les posts programmés sur les pages qui lui sont attribuées (peu importe qui les a créés)
const accessiblePages = await storage.getUserAccessiblePages(userId);
const accessiblePageIds = accessiblePages.map(p => p.id);
const userScheduledPosts = await storage.getScheduledPosts(userId, start, end);
scheduledPosts = userScheduledPosts.filter(sp => accessiblePageIds.includes(sp.pageId));
// Récupérer tous les posts programmés de tous les utilisateurs
const allUsers = await storage.getAllUsers();
const allPostsPromises = allUsers.map(u => storage.getScheduledPosts(u.id, start, end));
const allPostsArrays = await Promise.all(allPostsPromises);
const allScheduledPosts = allPostsArrays.flat();
// Filtrer uniquement les posts des pages accessibles
scheduledPosts = allScheduledPosts.filter(sp => accessiblePageIds.includes(sp.pageId));
}
res.json(scheduledPosts);