From 9639402c3971f87d5682bc9ed9ac19502234a248 Mon Sep 17 00:00:00 2001 From: Saurav Jain Date: Wed, 16 Jul 2025 13:22:10 +0530 Subject: [PATCH] fix: allow read and write API key permissions for /v1/management/me (#6178) Co-authored-by: pandeymangg --- apps/web/app/api/v1/management/me/route.ts | 4 +++- apps/web/locales/de-DE.json | 7 ------- apps/web/locales/en-US.json | 7 ------- apps/web/locales/fr-FR.json | 7 ------- apps/web/locales/pt-BR.json | 7 ------- apps/web/locales/pt-PT.json | 7 ------- apps/web/locales/zh-Hant-TW.json | 7 ------- 7 files changed, 3 insertions(+), 43 deletions(-) diff --git a/apps/web/app/api/v1/management/me/route.ts b/apps/web/app/api/v1/management/me/route.ts index d4dd33017e..e9089743a1 100644 --- a/apps/web/app/api/v1/management/me/route.ts +++ b/apps/web/app/api/v1/management/me/route.ts @@ -3,6 +3,8 @@ import { hashApiKey } from "@/modules/api/v2/management/lib/utils"; import { headers } from "next/headers"; import { prisma } from "@formbricks/database"; +const ALLOWED_PERMISSIONS = ["manage", "read", "write"] as const; + export const GET = async () => { const headersList = await headers(); const apiKey = headersList.get("x-api-key"); @@ -44,7 +46,7 @@ export const GET = async () => { if ( apiKeyData.apiKeyEnvironments.length === 1 && - apiKeyData.apiKeyEnvironments[0].permission === "manage" + ALLOWED_PERMISSIONS.includes(apiKeyData.apiKeyEnvironments[0].permission) ) { return Response.json({ id: apiKeyData.apiKeyEnvironments[0].environment.id, diff --git a/apps/web/locales/de-DE.json b/apps/web/locales/de-DE.json index 235acebce0..b3d34199e7 100644 --- a/apps/web/locales/de-DE.json +++ b/apps/web/locales/de-DE.json @@ -1733,7 +1733,6 @@ "embed_on_website": { "description": "Formbricks-Umfragen können als statisches Element eingebettet werden.", "embed_code_copied_to_clipboard": "Einbettungscode in die Zwischenablage kopiert!", - "embed_in_app": "In App einbetten", "embed_mode": "Einbettungsmodus", "embed_mode_description": "Bette deine Umfrage mit einem minimalistischen Design ein, ohne Karten und Hintergrund.", "nav_title": "Auf Website einbetten" @@ -1844,7 +1843,6 @@ "last_quarter": "Letztes Quartal", "last_year": "Letztes Jahr", "link_to_public_results_copied": "Link zu öffentlichen Ergebnissen kopiert", - "mobile_app": "Mobile App", "no_responses_found": "Keine Antworten gefunden", "only_completed": "Nur vollständige Antworten", "other_values_found": "Andere Werte gefunden", @@ -1857,10 +1855,6 @@ "qr_code_download_failed": "QR-Code-Download fehlgeschlagen", "qr_code_download_with_start_soon": "QR Code-Download startet bald", "qr_code_generation_failed": "Es gab ein Problem beim Laden des QR-Codes für die Umfrage. Bitte versuchen Sie es erneut.", - "quickstart_mobile_apps": "Schnellstart: Mobile-Apps", - "quickstart_mobile_apps_description": "Um mit Umfragen in mobilen Apps zu beginnen, folge bitte der Schnellstartanleitung:", - "quickstart_web_apps": "Schnellstart: Web-Apps", - "quickstart_web_apps_description": "Bitte folge der Schnellstartanleitung, um loszulegen:", "results_are_public": "Ergebnisse sind öffentlich", "selected_responses_csv": "Ausgewählte Antworten (CSV)", "selected_responses_excel": "Ausgewählte Antworten (Excel)", @@ -1883,7 +1877,6 @@ "use_personal_links": "Nutze persönliche Links", "view_site": "Seite ansehen", "waiting_for_response": "Warte auf eine Antwort \uD83E\uDDD8‍♂️", - "web_app": "Web-App", "whats_next": "Was kommt als Nächstes?", "your_survey_is_public": "Deine Umfrage ist öffentlich", "youre_not_plugged_in_yet": "Du bist noch nicht verbunden!" diff --git a/apps/web/locales/en-US.json b/apps/web/locales/en-US.json index 15dc9351e8..a363a30ba0 100644 --- a/apps/web/locales/en-US.json +++ b/apps/web/locales/en-US.json @@ -1733,7 +1733,6 @@ "embed_on_website": { "description": "Formbricks surveys can be embedded as a static element.", "embed_code_copied_to_clipboard": "Embed code copied to clipboard!", - "embed_in_app": "Embed in app", "embed_mode": "Embed Mode", "embed_mode_description": "Embed your survey with a minimalist design, discarding padding and background.", "nav_title": "Website embed" @@ -1844,7 +1843,6 @@ "last_quarter": "Last quarter", "last_year": "Last year", "link_to_public_results_copied": "Link to public results copied", - "mobile_app": "Mobile app", "no_responses_found": "No responses found", "only_completed": "Only completed", "other_values_found": "Other values found", @@ -1857,10 +1855,6 @@ "qr_code_download_failed": "QR code download failed", "qr_code_download_with_start_soon": "QR code download will start soon", "qr_code_generation_failed": "There was a problem, loading the survey QR Code. Please try again.", - "quickstart_mobile_apps": "Quickstart: Mobile apps", - "quickstart_mobile_apps_description": "To get started with surveys in mobile apps, please follow the Quickstart guide:", - "quickstart_web_apps": "Quickstart: Web apps", - "quickstart_web_apps_description": "Please follow the Quickstart guide to get started:", "results_are_public": "Results are public", "selected_responses_csv": "Selected responses (CSV)", "selected_responses_excel": "Selected responses (Excel)", @@ -1883,7 +1877,6 @@ "use_personal_links": "Use personal links", "view_site": "View site", "waiting_for_response": "Waiting for a response \uD83E\uDDD8‍♂️", - "web_app": "Web app", "whats_next": "What's next?", "your_survey_is_public": "Your survey is public", "youre_not_plugged_in_yet": "You're not plugged in yet!" diff --git a/apps/web/locales/fr-FR.json b/apps/web/locales/fr-FR.json index 4db6313cb3..7901a62a5b 100644 --- a/apps/web/locales/fr-FR.json +++ b/apps/web/locales/fr-FR.json @@ -1733,7 +1733,6 @@ "embed_on_website": { "description": "Les enquêtes Formbricks peuvent être intégrées comme élément statique.", "embed_code_copied_to_clipboard": "Code d'intégration copié dans le presse-papiers !", - "embed_in_app": "Intégrer dans l'application", "embed_mode": "Mode d'intégration", "embed_mode_description": "Intégrez votre enquête avec un design minimaliste, en supprimant les marges et l'arrière-plan.", "nav_title": "Incorporer sur le site web" @@ -1844,7 +1843,6 @@ "last_quarter": "dernier trimestre", "last_year": "l'année dernière", "link_to_public_results_copied": "Lien vers les résultats publics copié", - "mobile_app": "Application mobile", "no_responses_found": "Aucune réponse trouvée", "only_completed": "Uniquement terminé", "other_values_found": "D'autres valeurs trouvées", @@ -1857,10 +1855,6 @@ "qr_code_download_failed": "Échec du téléchargement du code QR", "qr_code_download_with_start_soon": "Le téléchargement du code QR débutera bientôt", "qr_code_generation_failed": "\"Un problème est survenu lors du chargement du code QR du sondage. Veuillez réessayer.\"", - "quickstart_mobile_apps": "Démarrage rapide : Applications mobiles", - "quickstart_mobile_apps_description": "Pour commencer avec les enquêtes dans les applications mobiles, veuillez suivre le guide de démarrage rapide :", - "quickstart_web_apps": "Démarrage rapide : Applications web", - "quickstart_web_apps_description": "Veuillez suivre le guide de démarrage rapide pour commencer :", "results_are_public": "Les résultats sont publics.", "selected_responses_csv": "Réponses sélectionnées (CSV)", "selected_responses_excel": "Réponses sélectionnées (Excel)", @@ -1883,7 +1877,6 @@ "use_personal_links": "Utilisez des liens personnels", "view_site": "Voir le site", "waiting_for_response": "En attente d'une réponse \uD83E\uDDD8‍♂️", - "web_app": "application web", "whats_next": "Qu'est-ce qui vient ensuite ?", "your_survey_is_public": "Votre enquête est publique.", "youre_not_plugged_in_yet": "Vous n'êtes pas encore branché !" diff --git a/apps/web/locales/pt-BR.json b/apps/web/locales/pt-BR.json index 8e4cadd315..c025c1e998 100644 --- a/apps/web/locales/pt-BR.json +++ b/apps/web/locales/pt-BR.json @@ -1733,7 +1733,6 @@ "embed_on_website": { "description": "Os formulários Formbricks podem ser incorporados como um elemento estático.", "embed_code_copied_to_clipboard": "Código incorporado copiado para a área de transferência!", - "embed_in_app": "Integrar no app", "embed_mode": "Modo Embutido", "embed_mode_description": "Incorpore sua pesquisa com um design minimalista, sem preenchimento e fundo.", "nav_title": "Incorporar no site" @@ -1844,7 +1843,6 @@ "last_quarter": "Último trimestre", "last_year": "Último ano", "link_to_public_results_copied": "Link pros resultados públicos copiado", - "mobile_app": "app de celular", "no_responses_found": "Nenhuma resposta encontrada", "only_completed": "Somente concluído", "other_values_found": "Outros valores encontrados", @@ -1857,10 +1855,6 @@ "qr_code_download_failed": "falha no download do código QR", "qr_code_download_with_start_soon": "O download do código QR começará em breve", "qr_code_generation_failed": "Houve um problema ao carregar o Código QR do questionário. Por favor, tente novamente.", - "quickstart_mobile_apps": "Início rápido: Aplicativos móveis", - "quickstart_mobile_apps_description": "Para começar com pesquisas em aplicativos móveis, por favor, siga o guia de início rápido:", - "quickstart_web_apps": "Início rápido: Aplicativos web", - "quickstart_web_apps_description": "Por favor, siga o guia de início rápido para começar:", "results_are_public": "Os resultados são públicos", "selected_responses_csv": "Respostas selecionadas (CSV)", "selected_responses_excel": "Respostas selecionadas (Excel)", @@ -1883,7 +1877,6 @@ "use_personal_links": "Use links pessoais", "view_site": "Ver site", "waiting_for_response": "Aguardando uma resposta \uD83E\uDDD8‍♂️", - "web_app": "aplicativo web", "whats_next": "E agora?", "your_survey_is_public": "Sua pesquisa é pública", "youre_not_plugged_in_yet": "Você ainda não tá conectado!" diff --git a/apps/web/locales/pt-PT.json b/apps/web/locales/pt-PT.json index 9b3a342da9..6f18a33a8d 100644 --- a/apps/web/locales/pt-PT.json +++ b/apps/web/locales/pt-PT.json @@ -1733,7 +1733,6 @@ "embed_on_website": { "description": "Os inquéritos Formbricks podem ser incorporados como um elemento estático.", "embed_code_copied_to_clipboard": "Código incorporado copiado para a área de transferência!", - "embed_in_app": "Incorporar na aplicação", "embed_mode": "Modo de Incorporação", "embed_mode_description": "Incorpore o seu inquérito com um design minimalista, descartando o preenchimento e o fundo.", "nav_title": "Incorporar no site" @@ -1844,7 +1843,6 @@ "last_quarter": "Último trimestre", "last_year": "Ano passado", "link_to_public_results_copied": "Link para resultados públicos copiado", - "mobile_app": "Aplicação móvel", "no_responses_found": "Nenhuma resposta encontrada", "only_completed": "Apenas concluído", "other_values_found": "Outros valores encontrados", @@ -1857,10 +1855,6 @@ "qr_code_download_failed": "Falha ao transferir o código QR", "qr_code_download_with_start_soon": "O download do código QR começará em breve", "qr_code_generation_failed": "Ocorreu um problema ao carregar o Código QR do questionário. Por favor, tente novamente.", - "quickstart_mobile_apps": "Início rápido: Aplicações móveis", - "quickstart_mobile_apps_description": "Para começar com inquéritos em aplicações móveis, por favor, siga o guia de início rápido:", - "quickstart_web_apps": "Início rápido: Aplicações web", - "quickstart_web_apps_description": "Por favor, siga o guia de início rápido para começar:", "results_are_public": "Os resultados são públicos", "selected_responses_csv": "Respostas selecionadas (CSV)", "selected_responses_excel": "Respostas selecionadas (Excel)", @@ -1883,7 +1877,6 @@ "use_personal_links": "Utilize links pessoais", "view_site": "Ver site", "waiting_for_response": "A aguardar uma resposta \uD83E\uDDD8‍♂️", - "web_app": "Aplicação web", "whats_next": "O que se segue?", "your_survey_is_public": "O seu inquérito é público", "youre_not_plugged_in_yet": "Ainda não está ligado!" diff --git a/apps/web/locales/zh-Hant-TW.json b/apps/web/locales/zh-Hant-TW.json index 94fbe82757..a3aef0adcf 100644 --- a/apps/web/locales/zh-Hant-TW.json +++ b/apps/web/locales/zh-Hant-TW.json @@ -1733,7 +1733,6 @@ "embed_on_website": { "description": "Formbricks 調查可以 作為 靜態 元素 嵌入。", "embed_code_copied_to_clipboard": "嵌入程式碼已複製到剪貼簿!", - "embed_in_app": "嵌入應用程式", "embed_mode": "嵌入模式", "embed_mode_description": "以簡約設計嵌入您的問卷,捨棄邊距和背景。", "nav_title": "嵌入網站" @@ -1844,7 +1843,6 @@ "last_quarter": "上一季", "last_year": "去年", "link_to_public_results_copied": "已複製公開結果的連結", - "mobile_app": "行動應用程式", "no_responses_found": "找不到回應", "only_completed": "僅已完成", "other_values_found": "找到其他值", @@ -1857,10 +1855,6 @@ "qr_code_download_failed": "QR code 下載失敗", "qr_code_download_with_start_soon": "QR code 下載即將開始", "qr_code_generation_failed": "載入調查 QR Code 時發生問題。請再試一次。", - "quickstart_mobile_apps": "快速入門:Mobile apps", - "quickstart_mobile_apps_description": "要開始使用行動應用程式中的調查,請按照 Quickstart 指南:", - "quickstart_web_apps": "快速入門:Web apps", - "quickstart_web_apps_description": "請按照 Quickstart 指南開始:", "results_are_public": "結果是公開的", "selected_responses_csv": "選擇的回應 (CSV)", "selected_responses_excel": "選擇的回應 (Excel)", @@ -1883,7 +1877,6 @@ "use_personal_links": "使用 個人 連結", "view_site": "檢視網站", "waiting_for_response": "正在等待回應 \uD83E\uDDD8‍♂️", - "web_app": "Web 應用程式", "whats_next": "下一步是什麼?", "your_survey_is_public": "您的問卷是公開的", "youre_not_plugged_in_yet": "您尚未插入任何內容!"