Merge pull request #10633 from Budibase/fix/live-app-user-updates
Production app user updates
This commit is contained in:
commit
62e9777407
|
@ -86,6 +86,7 @@ const getCurrentIdentity = async (): Promise<Identity> => {
|
|||
installationId,
|
||||
tenantId,
|
||||
environment,
|
||||
realTenantId: context.getTenantId(),
|
||||
hostInfo: userContext.hostInfo,
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -7,7 +7,7 @@ import {
|
|||
InternalTables,
|
||||
} from "../../db/utils"
|
||||
import { isEqual } from "lodash"
|
||||
import { ContextUser, UserMetadata, User } from "@budibase/types"
|
||||
import { ContextUser, UserMetadata, User, Database } from "@budibase/types"
|
||||
|
||||
export function combineMetadataAndUser(
|
||||
user: ContextUser,
|
||||
|
@ -51,8 +51,10 @@ export function combineMetadataAndUser(
|
|||
return null
|
||||
}
|
||||
|
||||
export async function rawUserMetadata() {
|
||||
const db = context.getAppDB()
|
||||
export async function rawUserMetadata(db?: Database) {
|
||||
if (!db) {
|
||||
db = context.getAppDB()
|
||||
}
|
||||
return (
|
||||
await db.allDocs(
|
||||
getUserMetadataParams(null, {
|
||||
|
@ -64,8 +66,12 @@ export async function rawUserMetadata() {
|
|||
|
||||
export async function syncGlobalUsers() {
|
||||
// sync user metadata
|
||||
const db = context.getAppDB()
|
||||
const resp = await Promise.all([getGlobalUsers(), rawUserMetadata()])
|
||||
const dbs = [context.getDevAppDB(), context.getProdAppDB()]
|
||||
for (let db of dbs) {
|
||||
if (!(await db.exists())) {
|
||||
continue
|
||||
}
|
||||
const resp = await Promise.all([getGlobalUsers(), rawUserMetadata(db)])
|
||||
const users = resp[0] as User[]
|
||||
const metadata = resp[1] as UserMetadata[]
|
||||
const toWrite = []
|
||||
|
@ -80,7 +86,8 @@ export async function syncGlobalUsers() {
|
|||
if (!data._id) {
|
||||
continue
|
||||
}
|
||||
const alreadyExisting = data.email && foundEmails.indexOf(data.email) !== -1
|
||||
const alreadyExisting =
|
||||
data.email && foundEmails.indexOf(data.email) !== -1
|
||||
const globalId = getGlobalIDFromUserMetadataID(data._id)
|
||||
if (!users.find(user => user._id === globalId) || alreadyExisting) {
|
||||
toWrite.push({ ...data, _deleted: true })
|
||||
|
@ -90,4 +97,5 @@ export async function syncGlobalUsers() {
|
|||
}
|
||||
}
|
||||
await db.bulkDocs(toWrite)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -122,11 +122,8 @@ export async function getGlobalUsers(
|
|||
delete user.forceResetPassword
|
||||
return user
|
||||
})
|
||||
if (!appId) {
|
||||
return globalUsers
|
||||
}
|
||||
|
||||
if (opts?.noProcessing) {
|
||||
if (opts?.noProcessing || !appId) {
|
||||
return globalUsers
|
||||
} else {
|
||||
// pass in the groups, meaning we don't actually need to retrieve them for
|
||||
|
|
Loading…
Reference in New Issue