@budibase/backend-core 2.33.3 → 2.33.4

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.
package/dist/index.js CHANGED
@@ -67267,32 +67267,13 @@ __export(tenancy_exports, {
67267
67267
  addTenantToUrl: () => addTenantToUrl,
67268
67268
  getTenantDB: () => getTenantDB,
67269
67269
  getTenantIDFromCtx: () => getTenantIDFromCtx,
67270
- getTenantInfo: () => getTenantInfo,
67271
- isUserInAppTenant: () => isUserInAppTenant,
67272
- saveTenantInfo: () => saveTenantInfo
67270
+ isUserInAppTenant: () => isUserInAppTenant
67273
67271
  });
67274
67272
 
67275
67273
  // src/tenancy/db.ts
67276
67274
  function getTenantDB(tenantId) {
67277
67275
  return getDB(getGlobalDBName(tenantId));
67278
67276
  }
67279
- async function saveTenantInfo(tenantInfo) {
67280
- const db = getTenantDB(tenantInfo.tenantId);
67281
- return db.put({
67282
- _id: "tenant_info",
67283
- ...tenantInfo
67284
- });
67285
- }
67286
- async function getTenantInfo(tenantId) {
67287
- try {
67288
- const db = getTenantDB(tenantId);
67289
- const tenantInfo = await db.get("tenant_info");
67290
- delete tenantInfo.owner.password;
67291
- return tenantInfo;
67292
- } catch {
67293
- return void 0;
67294
- }
67295
- }
67296
67277
 
67297
67278
  // src/tenancy/tenancy.ts
67298
67279
  function addTenantToUrl(url) {
@@ -69124,8 +69105,9 @@ __export(users_exports3, {
69124
69105
  bulkUpdateGlobalUsers: () => bulkUpdateGlobalUsers,
69125
69106
  cleanseUserObject: () => cleanseUserObject,
69126
69107
  doesUserExist: () => doesUserExist,
69127
- getAccountHolderFromUserIds: () => getAccountHolderFromUserIds,
69108
+ getAccountHolderFromUsers: () => getAccountHolderFromUsers,
69128
69109
  getAllUserIds: () => getAllUserIds,
69110
+ getAllUsers: () => getAllUsers,
69129
69111
  getById: () => getById,
69130
69112
  getCreatorCount: () => getCreatorCount,
69131
69113
  getExistingAccounts: () => getExistingAccounts,
@@ -69157,7 +69139,7 @@ __export(users_exports3, {
69157
69139
  // src/users/utils.ts
69158
69140
  var utils_exports6 = {};
69159
69141
  __export(utils_exports6, {
69160
- getAccountHolderFromUserIds: () => getAccountHolderFromUserIds,
69142
+ getAccountHolderFromUsers: () => getAccountHolderFromUsers,
69161
69143
  hasAdminPermissions: () => hasAdminPermissions2,
69162
69144
  hasAppBuilderPermissions: () => hasAppBuilderPermissions2,
69163
69145
  hasBuilderPermissions: () => hasBuilderPermissions2,
@@ -70042,17 +70024,14 @@ async function validateUniqueUser(email, tenantId) {
70042
70024
  }
70043
70025
  }
70044
70026
  }
70045
- async function getAccountHolderFromUserIds(userIds) {
70027
+ async function getAccountHolderFromUsers(users) {
70046
70028
  if (!environment_default.SELF_HOSTED && !environment_default.DISABLE_ACCOUNT_PORTAL) {
70047
- const tenantId = getTenantId();
70048
- const account = await getAccountByTenantId(tenantId);
70049
- if (!account) {
70050
- throw new Error(`Account not found for tenantId=${tenantId}`);
70051
- }
70052
- const budibaseUserId = account.budibaseUserId;
70053
- if (userIds.includes(budibaseUserId)) {
70054
- return account;
70055
- }
70029
+ const accountMetadata = await getExistingAccounts(
70030
+ users.map((user) => user.email)
70031
+ );
70032
+ return users.find(
70033
+ (user) => accountMetadata.map((metadata) => metadata.email).includes(user.email)
70034
+ );
70056
70035
  }
70057
70036
  }
70058
70037
 
@@ -70999,8 +70978,9 @@ var identifyUser = async (user, account, timestamp) => {
70999
70978
  if (isSSOUser(user)) {
71000
70979
  providerType = user.providerType;
71001
70980
  }
71002
- const accountHolder = account?.budibaseUserId === user._id || false;
71003
- const verified2 = account && account?.budibaseUserId === user._id ? account.verified : false;
70981
+ const accountHolder = await getExistingAccounts([user.email]);
70982
+ const isAccountHolder = accountHolder.length > 0;
70983
+ const verified2 = !!account && isAccountHolder && account.verified;
71004
70984
  const installationId = await getInstallationId();
71005
70985
  const hosting = account ? account.hosting : getHostingFromEnv();
71006
70986
  const environment2 = getDeploymentEnvironment();
@@ -71011,7 +70991,7 @@ var identifyUser = async (user, account, timestamp) => {
71011
70991
  installationId,
71012
70992
  tenantId,
71013
70993
  verified: verified2,
71014
- accountHolder,
70994
+ accountHolder: isAccountHolder,
71015
70995
  providerType,
71016
70996
  builder,
71017
70997
  admin,
@@ -71030,8 +71010,9 @@ var identifyAccount = async (account) => {
71030
71010
  const installationId = await getInstallationId();
71031
71011
  const environment2 = getDeploymentEnvironment();
71032
71012
  if (isCloudAccount(account)) {
71033
- if (account.budibaseUserId) {
71034
- id = account.budibaseUserId;
71013
+ const user = await getGlobalUserByEmail(account.email);
71014
+ if (user?._id) {
71015
+ id = user._id;
71035
71016
  }
71036
71017
  }
71037
71018
  const identity = {
@@ -73016,24 +72997,24 @@ var UserDB = class _UserDB {
73016
72997
  }
73017
72998
  );
73018
72999
  }
73019
- static async bulkDelete(userIds) {
73000
+ static async bulkDelete(users) {
73020
73001
  const db = getGlobalDB();
73021
73002
  const response = {
73022
73003
  successful: [],
73023
73004
  unsuccessful: []
73024
73005
  };
73025
- const account = await getAccountHolderFromUserIds(userIds);
73026
- if (account) {
73027
- userIds = userIds.filter((u) => u !== account.budibaseUserId);
73006
+ const accountHolder = await getAccountHolderFromUsers(users);
73007
+ if (accountHolder) {
73008
+ users = users.filter((u) => u.userId !== accountHolder.userId);
73028
73009
  response.unsuccessful.push({
73029
- _id: account.budibaseUserId,
73030
- email: account.email,
73010
+ _id: accountHolder.userId,
73011
+ email: accountHolder.email,
73031
73012
  reason: "Account holder cannot be deleted"
73032
73013
  });
73033
73014
  }
73034
73015
  const allDocsResponse = await db.allDocs({
73035
73016
  include_docs: true,
73036
- keys: userIds
73017
+ keys: users.map((u) => u.userId)
73037
73018
  });
73038
73019
  const usersToDelete = allDocsResponse.rows.map((user) => {
73039
73020
  return user.doc;
@@ -73180,6 +73161,16 @@ async function getAllUserIds() {
73180
73161
  });
73181
73162
  return response.rows.map((row) => row.id);
73182
73163
  }
73164
+ async function getAllUsers() {
73165
+ const db = getGlobalDB();
73166
+ const startKey = `${"us" /* USER */}${SEPARATOR}`;
73167
+ const response = await db.allDocs({
73168
+ startkey: startKey,
73169
+ endkey: `${startKey}${UNICODE_MAX}`,
73170
+ include_docs: true
73171
+ });
73172
+ return response.rows.map((row) => row.doc);
73173
+ }
73183
73174
  async function bulkUpdateGlobalUsers(users) {
73184
73175
  const db = getGlobalDB();
73185
73176
  return await db.bulkDocs(users);