@payloadcms/plugin-multi-tenant 3.68.0-internal.e81dde6 → 3.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"getTenantOptions.d.ts","sourceRoot":"","sources":["../../src/utilities/getTenantOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAE/D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAE1D,eAAO,MAAM,gBAAgB,yIAQ1B;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,2BAA2B,EAAE,MAAM,CAAA;IACnC,qBAAqB,EAAE,MAAM,CAAA;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,SAAS,CAAA;IACf,yBAAyB,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAA;CAC/F,KAAG,OAAO,CAAC,YAAY,EAAE,CAiEzB,CAAA"}
1
+ {"version":3,"file":"getTenantOptions.d.ts","sourceRoot":"","sources":["../../src/utilities/getTenantOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAE/D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAE1D,eAAO,MAAM,gBAAgB,yIAQ1B;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,2BAA2B,EAAE,MAAM,CAAA;IACnC,qBAAqB,EAAE,MAAM,CAAA;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,SAAS,CAAA;IACf,yBAAyB,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAA;CAC/F,KAAG,OAAO,CAAC,YAAY,EAAE,CA+CzB,CAAA"}
@@ -3,60 +3,41 @@ export const getTenantOptions = async ({ payload, tenantsArrayFieldName, tenants
3
3
  if (!user) {
4
4
  return tenantOptions;
5
5
  }
6
- if (userHasAccessToAllTenants(user)) {
7
- // If the user has access to all tenants get them from the DB
8
- const isOrderable = payload.collections[tenantsCollectionSlug]?.config?.orderable || false;
9
- const tenants = await payload.find({
10
- collection: tenantsCollectionSlug,
11
- depth: 0,
12
- limit: 0,
13
- overrideAccess: false,
14
- select: {
15
- [useAsTitle]: true,
16
- ...isOrderable && {
17
- _order: true
18
- }
19
- },
20
- sort: isOrderable ? '_order' : useAsTitle,
21
- user
22
- });
23
- tenantOptions = tenants.docs.map((doc)=>({
24
- label: String(doc[useAsTitle]),
25
- value: doc.id
26
- }));
27
- } else {
28
- const tenantsToPopulate = [];
29
- (user[tenantsArrayFieldName] || []).map((tenantRow)=>{
30
- const tenantField = tenantRow[tenantsArrayTenantFieldName] // tenants.tenant
31
- ;
32
- if (typeof tenantField === 'string' || typeof tenantField === 'number') {
33
- tenantsToPopulate.push(tenantField);
34
- } else if (tenantField && typeof tenantField === 'object') {
35
- tenantOptions.push({
36
- label: String(tenantField[useAsTitle]),
37
- value: tenantField.id
38
- });
6
+ const isOrderable = payload.collections[tenantsCollectionSlug]?.config?.orderable || false;
7
+ const userTenantIds = !userHasAccessToAllTenants(user) ? (user[tenantsArrayFieldName] || []).map((tenantRow)=>{
8
+ const tenantField = tenantRow[tenantsArrayTenantFieldName];
9
+ if (typeof tenantField === 'string' || typeof tenantField === 'number') {
10
+ return tenantField;
11
+ }
12
+ if (tenantField && typeof tenantField === 'object' && 'id' in tenantField) {
13
+ return tenantField.id;
14
+ }
15
+ }) : undefined;
16
+ const tenants = await payload.find({
17
+ collection: tenantsCollectionSlug,
18
+ depth: 0,
19
+ limit: 0,
20
+ overrideAccess: false,
21
+ select: {
22
+ [useAsTitle]: true,
23
+ ...isOrderable && {
24
+ _order: true
39
25
  }
40
- });
41
- if (tenantsToPopulate.length > 0) {
42
- const populatedTenants = await payload.find({
43
- collection: tenantsCollectionSlug,
44
- depth: 0,
45
- limit: 0,
46
- overrideAccess: false,
47
- user,
48
- where: {
49
- id: {
50
- in: tenantsToPopulate
51
- }
26
+ },
27
+ sort: isOrderable ? '_order' : useAsTitle,
28
+ user,
29
+ ...userTenantIds && {
30
+ where: {
31
+ id: {
32
+ in: userTenantIds
52
33
  }
53
- });
54
- tenantOptions = populatedTenants.docs.map((doc)=>({
55
- label: String(doc[useAsTitle]),
56
- value: doc.id
57
- }));
34
+ }
58
35
  }
59
- }
36
+ });
37
+ tenantOptions = tenants.docs.map((doc)=>({
38
+ label: String(doc[useAsTitle]),
39
+ value: doc.id
40
+ }));
60
41
  return tenantOptions;
61
42
  };
62
43
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/getTenantOptions.ts"],"sourcesContent":["import type { OptionObject, Payload, TypedUser } from 'payload'\n\nimport type { MultiTenantPluginConfig } from '../types.js'\n\nexport const getTenantOptions = async ({\n payload,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n useAsTitle,\n user,\n userHasAccessToAllTenants,\n}: {\n payload: Payload\n tenantsArrayFieldName: string\n tenantsArrayTenantFieldName: string\n tenantsCollectionSlug: string\n useAsTitle: string\n user: TypedUser\n userHasAccessToAllTenants: Required<MultiTenantPluginConfig<any>>['userHasAccessToAllTenants']\n}): Promise<OptionObject[]> => {\n let tenantOptions: OptionObject[] = []\n\n if (!user) {\n return tenantOptions\n }\n\n if (userHasAccessToAllTenants(user)) {\n // If the user has access to all tenants get them from the DB\n const isOrderable = payload.collections[tenantsCollectionSlug]?.config?.orderable || false\n const tenants = await payload.find({\n collection: tenantsCollectionSlug,\n depth: 0,\n limit: 0,\n overrideAccess: false,\n select: {\n [useAsTitle]: true,\n ...(isOrderable && { _order: true }),\n },\n sort: isOrderable ? '_order' : useAsTitle,\n user,\n })\n\n tenantOptions = tenants.docs.map((doc) => ({\n label: String(doc[useAsTitle as 'id']), // useAsTitle is dynamic but the type thinks we are only selecting `id` | `_order`\n value: doc.id as string,\n }))\n } else {\n const tenantsToPopulate: (number | string)[] = []\n\n // i.e. users.tenants\n ;((user[tenantsArrayFieldName] as { [key: string]: any }[]) || []).map((tenantRow) => {\n const tenantField = tenantRow[tenantsArrayTenantFieldName] // tenants.tenant\n if (typeof tenantField === 'string' || typeof tenantField === 'number') {\n tenantsToPopulate.push(tenantField)\n } else if (tenantField && typeof tenantField === 'object') {\n tenantOptions.push({\n label: String(tenantField[useAsTitle]),\n value: tenantField.id,\n })\n }\n })\n\n if (tenantsToPopulate.length > 0) {\n const populatedTenants = await payload.find({\n collection: tenantsCollectionSlug,\n depth: 0,\n limit: 0,\n overrideAccess: false,\n user,\n where: {\n id: {\n in: tenantsToPopulate,\n },\n },\n })\n\n tenantOptions = populatedTenants.docs.map((doc) => ({\n label: String(doc[useAsTitle]),\n value: doc.id as string,\n }))\n }\n }\n\n return tenantOptions\n}\n"],"names":["getTenantOptions","payload","tenantsArrayFieldName","tenantsArrayTenantFieldName","tenantsCollectionSlug","useAsTitle","user","userHasAccessToAllTenants","tenantOptions","isOrderable","collections","config","orderable","tenants","find","collection","depth","limit","overrideAccess","select","_order","sort","docs","map","doc","label","String","value","id","tenantsToPopulate","tenantRow","tenantField","push","length","populatedTenants","where","in"],"mappings":"AAIA,OAAO,MAAMA,mBAAmB,OAAO,EACrCC,OAAO,EACPC,qBAAqB,EACrBC,2BAA2B,EAC3BC,qBAAqB,EACrBC,UAAU,EACVC,IAAI,EACJC,yBAAyB,EAS1B;IACC,IAAIC,gBAAgC,EAAE;IAEtC,IAAI,CAACF,MAAM;QACT,OAAOE;IACT;IAEA,IAAID,0BAA0BD,OAAO;QACnC,6DAA6D;QAC7D,MAAMG,cAAcR,QAAQS,WAAW,CAACN,sBAAsB,EAAEO,QAAQC,aAAa;QACrF,MAAMC,UAAU,MAAMZ,QAAQa,IAAI,CAAC;YACjCC,YAAYX;YACZY,OAAO;YACPC,OAAO;YACPC,gBAAgB;YAChBC,QAAQ;gBACN,CAACd,WAAW,EAAE;gBACd,GAAII,eAAe;oBAAEW,QAAQ;gBAAK,CAAC;YACrC;YACAC,MAAMZ,cAAc,WAAWJ;YAC/BC;QACF;QAEAE,gBAAgBK,QAAQS,IAAI,CAACC,GAAG,CAAC,CAACC,MAAS,CAAA;gBACzCC,OAAOC,OAAOF,GAAG,CAACnB,WAAmB;gBACrCsB,OAAOH,IAAII,EAAE;YACf,CAAA;IACF,OAAO;QACL,MAAMC,oBAAyC,EAAE;QAG/C,CAAA,AAACvB,IAAI,CAACJ,sBAAsB,IAAiC,EAAE,AAAD,EAAGqB,GAAG,CAAC,CAACO;YACtE,MAAMC,cAAcD,SAAS,CAAC3B,4BAA4B,CAAC,iBAAiB;;YAC5E,IAAI,OAAO4B,gBAAgB,YAAY,OAAOA,gBAAgB,UAAU;gBACtEF,kBAAkBG,IAAI,CAACD;YACzB,OAAO,IAAIA,eAAe,OAAOA,gBAAgB,UAAU;gBACzDvB,cAAcwB,IAAI,CAAC;oBACjBP,OAAOC,OAAOK,WAAW,CAAC1B,WAAW;oBACrCsB,OAAOI,YAAYH,EAAE;gBACvB;YACF;QACF;QAEA,IAAIC,kBAAkBI,MAAM,GAAG,GAAG;YAChC,MAAMC,mBAAmB,MAAMjC,QAAQa,IAAI,CAAC;gBAC1CC,YAAYX;gBACZY,OAAO;gBACPC,OAAO;gBACPC,gBAAgB;gBAChBZ;gBACA6B,OAAO;oBACLP,IAAI;wBACFQ,IAAIP;oBACN;gBACF;YACF;YAEArB,gBAAgB0B,iBAAiBZ,IAAI,CAACC,GAAG,CAAC,CAACC,MAAS,CAAA;oBAClDC,OAAOC,OAAOF,GAAG,CAACnB,WAAW;oBAC7BsB,OAAOH,IAAII,EAAE;gBACf,CAAA;QACF;IACF;IAEA,OAAOpB;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/utilities/getTenantOptions.ts"],"sourcesContent":["import type { OptionObject, Payload, TypedUser } from 'payload'\n\nimport type { MultiTenantPluginConfig } from '../types.js'\n\nexport const getTenantOptions = async ({\n payload,\n tenantsArrayFieldName,\n tenantsArrayTenantFieldName,\n tenantsCollectionSlug,\n useAsTitle,\n user,\n userHasAccessToAllTenants,\n}: {\n payload: Payload\n tenantsArrayFieldName: string\n tenantsArrayTenantFieldName: string\n tenantsCollectionSlug: string\n useAsTitle: string\n user: TypedUser\n userHasAccessToAllTenants: Required<MultiTenantPluginConfig<any>>['userHasAccessToAllTenants']\n}): Promise<OptionObject[]> => {\n let tenantOptions: OptionObject[] = []\n\n if (!user) {\n return tenantOptions\n }\n\n const isOrderable = payload.collections[tenantsCollectionSlug]?.config?.orderable || false\n\n const userTenantIds = !userHasAccessToAllTenants(user)\n ? ((user[tenantsArrayFieldName] as { [key: string]: unknown }[]) || []).map((tenantRow) => {\n const tenantField = tenantRow[tenantsArrayTenantFieldName]\n if (typeof tenantField === 'string' || typeof tenantField === 'number') {\n return tenantField\n }\n if (tenantField && typeof tenantField === 'object' && 'id' in tenantField) {\n return tenantField.id as number | string\n }\n })\n : undefined\n\n const tenants = await payload.find({\n collection: tenantsCollectionSlug,\n depth: 0,\n limit: 0,\n overrideAccess: false,\n select: {\n [useAsTitle]: true,\n ...(isOrderable && { _order: true }),\n },\n sort: isOrderable ? '_order' : useAsTitle,\n user,\n ...(userTenantIds && {\n where: {\n id: {\n in: userTenantIds,\n },\n },\n }),\n })\n\n tenantOptions = tenants.docs.map((doc) => ({\n label: String(doc[useAsTitle as 'id']),\n value: doc.id as string,\n }))\n\n return tenantOptions\n}\n"],"names":["getTenantOptions","payload","tenantsArrayFieldName","tenantsArrayTenantFieldName","tenantsCollectionSlug","useAsTitle","user","userHasAccessToAllTenants","tenantOptions","isOrderable","collections","config","orderable","userTenantIds","map","tenantRow","tenantField","id","undefined","tenants","find","collection","depth","limit","overrideAccess","select","_order","sort","where","in","docs","doc","label","String","value"],"mappings":"AAIA,OAAO,MAAMA,mBAAmB,OAAO,EACrCC,OAAO,EACPC,qBAAqB,EACrBC,2BAA2B,EAC3BC,qBAAqB,EACrBC,UAAU,EACVC,IAAI,EACJC,yBAAyB,EAS1B;IACC,IAAIC,gBAAgC,EAAE;IAEtC,IAAI,CAACF,MAAM;QACT,OAAOE;IACT;IAEA,MAAMC,cAAcR,QAAQS,WAAW,CAACN,sBAAsB,EAAEO,QAAQC,aAAa;IAErF,MAAMC,gBAAgB,CAACN,0BAA0BD,QAC7C,AAAC,CAAA,AAACA,IAAI,CAACJ,sBAAsB,IAAqC,EAAE,AAAD,EAAGY,GAAG,CAAC,CAACC;QACzE,MAAMC,cAAcD,SAAS,CAACZ,4BAA4B;QAC1D,IAAI,OAAOa,gBAAgB,YAAY,OAAOA,gBAAgB,UAAU;YACtE,OAAOA;QACT;QACA,IAAIA,eAAe,OAAOA,gBAAgB,YAAY,QAAQA,aAAa;YACzE,OAAOA,YAAYC,EAAE;QACvB;IACF,KACAC;IAEJ,MAAMC,UAAU,MAAMlB,QAAQmB,IAAI,CAAC;QACjCC,YAAYjB;QACZkB,OAAO;QACPC,OAAO;QACPC,gBAAgB;QAChBC,QAAQ;YACN,CAACpB,WAAW,EAAE;YACd,GAAII,eAAe;gBAAEiB,QAAQ;YAAK,CAAC;QACrC;QACAC,MAAMlB,cAAc,WAAWJ;QAC/BC;QACA,GAAIO,iBAAiB;YACnBe,OAAO;gBACLX,IAAI;oBACFY,IAAIhB;gBACN;YACF;QACF,CAAC;IACH;IAEAL,gBAAgBW,QAAQW,IAAI,CAAChB,GAAG,CAAC,CAACiB,MAAS,CAAA;YACzCC,OAAOC,OAAOF,GAAG,CAAC1B,WAAmB;YACrC6B,OAAOH,IAAId,EAAE;QACf,CAAA;IAEA,OAAOT;AACT,EAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/plugin-multi-tenant",
3
- "version": "3.68.0-internal.e81dde6",
3
+ "version": "3.68.0",
4
4
  "description": "Multi Tenant plugin for Payload",
5
5
  "keywords": [
6
6
  "payload",
@@ -80,14 +80,14 @@
80
80
  "types.d.ts"
81
81
  ],
82
82
  "devDependencies": {
83
- "@payloadcms/translations": "3.68.0-internal.e81dde6",
84
- "payload": "3.68.0-internal.e81dde6",
85
83
  "@payloadcms/eslint-config": "3.28.0",
86
- "@payloadcms/ui": "3.68.0-internal.e81dde6"
84
+ "@payloadcms/ui": "3.68.0",
85
+ "@payloadcms/translations": "3.68.0",
86
+ "payload": "3.68.0"
87
87
  },
88
88
  "peerDependencies": {
89
- "@payloadcms/ui": "3.68.0-internal.e81dde6",
90
- "payload": "3.68.0-internal.e81dde6"
89
+ "@payloadcms/ui": "3.68.0",
90
+ "payload": "3.68.0"
91
91
  },
92
92
  "homepage:": "https://payloadcms.com",
93
93
  "scripts": {
@@ -99,6 +99,6 @@
99
99
  "copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
100
100
  "lint": "eslint .",
101
101
  "lint:fix": "eslint . --fix",
102
- "pack:plugin": "pnpm prepublishOnly && pnpm copyfiles && pnpm pack"
102
+ "pack:plugin": "pnpm build && pnpm pack"
103
103
  }
104
104
  }