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 0000000..ab6de21 Binary files /dev/null and b/attached_assets/{37021202-B977-4AB2-B64A-01825750527C}_1760436857740.png differ 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;