From f98da134914a0562abe88d073547b1934a61242c Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Tue, 14 Oct 2025 10:18:31 +0000 Subject: [PATCH 1/3] Allow users to upload photos using an admin's Cloudinary configuration Update Cloudinary configuration retrieval to use an admin's settings for all users and modify media upload to utilize the admin's user ID. 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/vZocxw2 --- ...-4AB2-B64A-01825750527C}_1760436857740.png | Bin 0 -> 119813 bytes server/routes.ts | 20 +++++++++--------- server/storage.ts | 6 ++++++ 3 files changed, 16 insertions(+), 10 deletions(-) create mode 100644 attached_assets/{37021202-B977-4AB2-B64A-01825750527C}_1760436857740.png diff --git a/attached_assets/{37021202-B977-4AB2-B64A-01825750527C}_1760436857740.png b/attached_assets/{37021202-B977-4AB2-B64A-01825750527C}_1760436857740.png new file mode 100644 index 0000000000000000000000000000000000000000..ab6de21556b3c65aefd4dc11eb679cf051b653cd GIT binary patch literal 119813 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 IvM=BL54c2h)c^nh literal 0 HcmV?d00001 diff --git a/server/routes.ts b/server/routes.ts index ec4fd1d..f299c1b 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -467,20 +467,20 @@ export async function registerRoutes(app: Express): Promise { const user = req.user as User; const userId = user.id; - // Check if Cloudinary is configured - const cloudinaryConfig = await storage.getCloudinaryConfig(userId); + // Check if Cloudinary is configured (use any admin config for all users) + const cloudinaryConfig = await storage.getAnyCloudinaryConfig(); if (!cloudinaryConfig) { return res.status(400).json({ - error: "Cloudinary not configured. Please configure Cloudinary in Settings first." + error: "Cloudinary not configured. Please ask an administrator to configure Cloudinary in Settings first." }); } - // Upload to Cloudinary + // Upload to Cloudinary using admin config const uploadResult = await cloudinaryService.uploadMedia( req.file.buffer, req.file.originalname, - userId, + cloudinaryConfig.userId, req.file.mimetype ); @@ -667,19 +667,19 @@ export async function registerRoutes(app: Express): Promise { console.log("✅ Overlays applied, uploading to Cloudinary..."); - // Check if Cloudinary is configured - const cloudinaryConfig = await storage.getCloudinaryConfig(userId); + // Check if Cloudinary is configured (use any admin config for all users) + const cloudinaryConfig = await storage.getAnyCloudinaryConfig(); if (!cloudinaryConfig) { return res.status(400).json({ - error: "Cloudinary not configured. Please configure Cloudinary in Settings first." + error: "Cloudinary not configured. Please ask an administrator to configure Cloudinary in Settings first." }); } - // Upload to Cloudinary + // Upload to Cloudinary using admin config const uploadResult = await cloudinaryService.uploadMedia( outputBuffer, `edited_${Date.now()}.jpg`, - userId, + cloudinaryConfig.userId, 'image/jpeg' ); diff --git a/server/storage.ts b/server/storage.ts index cb8e701..4141e1e 100644 --- a/server/storage.ts +++ b/server/storage.ts @@ -79,6 +79,7 @@ export interface IStorage { // Cloudinary Config getCloudinaryConfig(userId: string): Promise; + getAnyCloudinaryConfig(): Promise; createCloudinaryConfig(config: InsertCloudinaryConfig): Promise; updateCloudinaryConfig(userId: string, config: Partial): Promise; @@ -311,6 +312,11 @@ export class DatabaseStorage implements IStorage { return config || undefined; } + async getAnyCloudinaryConfig(): Promise { + const [config] = await db.select().from(cloudinaryConfig).limit(1); + return config || undefined; + } + async createCloudinaryConfig(config: InsertCloudinaryConfig): Promise { const [newConfig] = await db.insert(cloudinaryConfig).values(config).returning(); return newConfig; From 3175ffee312696ae78544fc596433409deba3447 Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Tue, 14 Oct 2025 10:26:14 +0000 Subject: [PATCH 2/3] Allow users to upload photos using shared Cloudinary configuration Update routes to use a shared Cloudinary configuration for media uploads and adjust CloudinaryService to fetch any available config instead of user-specific config. 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/vZocxw2 --- server/routes.ts | 12 ++++++------ server/services/cloudinary.ts | 11 ++++++----- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/server/routes.ts b/server/routes.ts index f299c1b..a625994 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -467,7 +467,7 @@ export async function registerRoutes(app: Express): Promise { const user = req.user as User; const userId = user.id; - // Check if Cloudinary is configured (use any admin config for all users) + // Check if Cloudinary is configured (shared config used for all users) const cloudinaryConfig = await storage.getAnyCloudinaryConfig(); if (!cloudinaryConfig) { @@ -476,11 +476,11 @@ export async function registerRoutes(app: Express): Promise { }); } - // Upload to Cloudinary using admin config + // Upload to Cloudinary (service will use shared config internally) const uploadResult = await cloudinaryService.uploadMedia( req.file.buffer, req.file.originalname, - cloudinaryConfig.userId, + userId, req.file.mimetype ); @@ -667,7 +667,7 @@ export async function registerRoutes(app: Express): Promise { console.log("✅ Overlays applied, uploading to Cloudinary..."); - // Check if Cloudinary is configured (use any admin config for all users) + // Check if Cloudinary is configured (shared config used for all users) const cloudinaryConfig = await storage.getAnyCloudinaryConfig(); if (!cloudinaryConfig) { return res.status(400).json({ @@ -675,11 +675,11 @@ export async function registerRoutes(app: Express): Promise { }); } - // Upload to Cloudinary using admin config + // Upload to Cloudinary (service will use shared config internally) const uploadResult = await cloudinaryService.uploadMedia( outputBuffer, `edited_${Date.now()}.jpg`, - cloudinaryConfig.userId, + userId, 'image/jpeg' ); diff --git a/server/services/cloudinary.ts b/server/services/cloudinary.ts index 964b6f7..4561317 100644 --- a/server/services/cloudinary.ts +++ b/server/services/cloudinary.ts @@ -14,11 +14,11 @@ class CloudinaryService { instagramFeedUrl: string | null; instagramStoryUrl: string | null; }> { - // Get user's Cloudinary config - const config = await storage.getCloudinaryConfig(userId); + // Get any available Cloudinary config (shared across all users) + const config = await storage.getAnyCloudinaryConfig(); if (!config) { - throw new Error('Cloudinary configuration not found. Please configure Cloudinary in Settings.'); + throw new Error('Cloudinary configuration not found. Please ask an administrator to configure Cloudinary in Settings first.'); } // Configure Cloudinary with user's credentials @@ -81,10 +81,11 @@ class CloudinaryService { } async deleteMedia(publicId: string, userId: string, mediaType: 'image' | 'video'): Promise { - const config = await storage.getCloudinaryConfig(userId); + // Get any available Cloudinary config (shared across all users) + const config = await storage.getAnyCloudinaryConfig(); if (!config) { - throw new Error('Cloudinary configuration not found'); + throw new Error('Cloudinary configuration not found. Please ask an administrator to configure Cloudinary in Settings first.'); } cloudinary.config({ From f2bef8fcd36ba6c8176b70c35c6a9ff2bef947c2 Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Tue, 14 Oct 2025 10:32:52 +0000 Subject: [PATCH 3/3] Fix media upload for non-admin users and improve mobile experience Fix Cloudinary upload permissions for non-admin users by using a shared configuration and optimize mobile media loading and display. Replit-Commit-Author: Agent Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/vZocxw2 --- replit.md | 1 + 1 file changed, 1 insertion(+) diff --git a/replit.md b/replit.md index 24f59b3..b60fbc0 100644 --- a/replit.md +++ b/replit.md @@ -11,6 +11,7 @@ Preferred communication style: Simple, everyday language. ## Recent Changes ### October 14, 2025 +- **Cloudinary Upload Permissions Fix**: Fixed critical bug preventing non-admin users from uploading media. Problem: System searched for user-specific Cloudinary config (only admins can configure). Solution: Added `getAnyCloudinaryConfig()` method in storage layer to retrieve first available config, enabling shared Cloudinary credentials across all users. Updated `cloudinaryService.uploadMedia()` and `deleteMedia()` to use shared config internally while maintaining userId for media ownership. Upload and image editor endpoints now verify shared config exists before processing. Standard users can now upload media successfully using admin's Cloudinary configuration. - **Android Camera Upload Fix**: Fixed critical Android camera capture bug where uploads failed with 400 error. Android devices send captured files with invalid names (empty, 'blob', etc.) that Multer rejects. Solution: `handleCameraCapture` now detects invalid filenames and creates new File object with generated name `camera-${timestamp}.${extension}` while preserving MIME type. Applied to both new-post and media-upload components. iPhone functionality unaffected. - **Mobile Performance Optimizations**: Implemented comprehensive mobile speed optimizations for "Nouvelle publication" and "Médiathèque" pages. Changes include: (1) Adaptive initial loading - 6 media items on mobile (<768px), 12 on desktop; (2) Optimized thumbnail URLs - replaced `originalUrl` with `facebookFeedUrl` (1080x1080 Cloudinary transformed images) for 70-90% reduction in data transfer while keeping `originalUrl` for zoom/preview quality; (3) Native lazy loading - added `loading="lazy"` attribute to all `` tags for deferred off-screen image loading; (4) Responsive grid layout - 2 columns on mobile, 3 on desktop (sm:grid-cols-3) for better touch targets. Expected impact: Initial load time reduced from 3-5s to <1s on mobile devices. - **Camera Capture in Media Library**: Added camera button 📷 to MediaUpload component, mirroring functionality from new-post page. Mobile users (lg:hidden) can now capture photos/videos directly from device camera and auto-upload to media library. Implementation includes hidden file input with `capture="environment"`, `handleCameraCapture` handler with input value reset (`e.target.value = ''`) to enable repeated captures, and integration with existing `uploadMutation` for seamless cloud storage.