From 510e3777ff4bb3734008ba6a8be1d0f3ff0e5bb3 Mon Sep 17 00:00:00 2001 From: Philipinho <16838612+Philipinho@users.noreply.github.com> Date: Mon, 29 Jun 2026 12:21:08 +0100 Subject: [PATCH] fix: templates creation UI gating --- apps/client/public/locales/en-US/translation.json | 2 ++ apps/client/src/ee/template/pages/template-list.tsx | 8 +++++++- apps/client/src/ee/template/queries/template-query.ts | 4 ++-- apps/server/src/ee | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/apps/client/public/locales/en-US/translation.json b/apps/client/public/locales/en-US/translation.json index 392fae178..c23b4e2d3 100644 --- a/apps/client/public/locales/en-US/translation.json +++ b/apps/client/public/locales/en-US/translation.json @@ -990,6 +990,8 @@ "Are you sure you want to delete this template?": "Are you sure you want to delete this template?", "Template scope updated": "Template scope updated", "Choose which space this template belongs to": "Choose which space this template belongs to", + "Only workspace admins can create global templates.": "Only workspace admins can create global templates.", + "You need edit access to this space to create templates.": "You need edit access to this space to create templates.", "Scope": "Scope", "Select scope": "Select scope", "Title": "Title", diff --git a/apps/client/src/ee/template/pages/template-list.tsx b/apps/client/src/ee/template/pages/template-list.tsx index df68d86cd..fafd4c117 100644 --- a/apps/client/src/ee/template/pages/template-list.tsx +++ b/apps/client/src/ee/template/pages/template-list.tsx @@ -29,11 +29,17 @@ import UseTemplateModal from "@/ee/template/components/use-template-modal"; import TemplatePreviewModal from "@/ee/template/components/template-preview-modal"; import useUserRole from "@/hooks/use-user-role"; import CreateTemplateModal from "@/ee/template/components/create-template-modal"; +import { useAtomValue } from "jotai"; +import { workspaceAtom } from "@/features/user/atoms/current-user-atom"; export default function TemplateList() { const { t } = useTranslation(); const navigate = useNavigate(); const { isAdmin: isWorkspaceAdmin } = useUserRole(); + const workspace = useAtomValue(workspaceAtom); + const canCreateTemplate = + isWorkspaceAdmin || + workspace?.settings?.templates?.allowMemberTemplates === true; const [spaceFilter, setSpaceFilter] = useState(null); const [selectedTemplate, setSelectedTemplate] = useState( null, @@ -105,7 +111,7 @@ export default function TemplateList() { {t("Templates")} - {isWorkspaceAdmin && ( + {canCreateTemplate && (