UNPKG

@lucidcms/core

Version:

The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.

1 lines 1.99 kB
{"version":3,"file":"validate-user-tenant-memberships.mjs","names":[],"sources":["../../../../src/services/users/helpers/validate-user-tenant-memberships.ts"],"sourcesContent":["import { copy } from \"../../../libs/i18n/index.js\";\nimport type { Config } from \"../../../types/config.js\";\nimport type { LucidErrorData } from \"../../../types/errors.js\";\nimport {\n\tgetTenantConfig,\n\tmultiTenancyEnabled,\n} from \"../../../utils/helpers/index.js\";\n\n/**\n * Validates that tenant keys exist and standard users are not left tenantless\n * when multi-tenancy is enabled.\n */\nconst validateUserTenantMemberships = (props: {\n\tconfig: Config;\n\ttenantKeys: string[];\n\ttargetSuperAdmin: boolean;\n}): LucidErrorData | undefined => {\n\tconst unknownTenant = props.tenantKeys.find(\n\t\t(key) => getTenantConfig(props.config, key) === undefined,\n\t);\n\tif (unknownTenant !== undefined) {\n\t\treturn {\n\t\t\ttype: \"basic\",\n\t\t\tmessage: copy(\"server:core.tenants.unknown\", {\n\t\t\t\tdata: { key: unknownTenant },\n\t\t\t}),\n\t\t\tstatus: 400,\n\t\t};\n\t}\n\n\tif (\n\t\tmultiTenancyEnabled(props.config) &&\n\t\t!props.targetSuperAdmin &&\n\t\tprops.tenantKeys.length === 0\n\t) {\n\t\treturn {\n\t\t\ttype: \"basic\",\n\t\t\tmessage: copy(\"server:core.errors.validation.message\"),\n\t\t\tstatus: 400,\n\t\t\terrors: {\n\t\t\t\ttenantKeys: {\n\t\t\t\t\tcode: \"invalid\",\n\t\t\t\t\tmessage: copy(\"server:core.users.tenants.required\"),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\treturn undefined;\n};\n\nexport default validateUserTenantMemberships;\n"],"mappings":"iJAYA,MAAM,EAAiC,GAIL,CACjC,IAAM,EAAgB,EAAM,WAAW,KACrC,GAAQ,EAAgB,EAAM,OAAQ,CAAG,IAAM,IAAA,EACjD,EACA,GAAI,IAAkB,IAAA,GACrB,MAAO,CACN,KAAM,QACN,QAAS,EAAK,8BAA+B,CAC5C,KAAM,CAAE,IAAK,CAAc,CAC5B,CAAC,EACD,OAAQ,GACT,EAGD,GACC,EAAoB,EAAM,MAAM,GAChC,CAAC,EAAM,kBACP,EAAM,WAAW,SAAW,EAE5B,MAAO,CACN,KAAM,QACN,QAAS,EAAK,uCAAuC,EACrD,OAAQ,IACR,OAAQ,CACP,WAAY,CACX,KAAM,UACN,QAAS,EAAK,oCAAoC,CACnD,CACD,CACD,CAIF"}