diff --git a/packages/bbui/src/Form/Core/DatePicker.svelte b/packages/bbui/src/Form/Core/DatePicker.svelte index 9e7d44dbc3..379f41b284 100644 --- a/packages/bbui/src/Form/Core/DatePicker.svelte +++ b/packages/bbui/src/Form/Core/DatePicker.svelte @@ -41,7 +41,7 @@ time_24hr: time24hr || false, altFormat: timeOnly ? "H:i" : enableTime ? "F j Y, H:i" : "F j, Y", wrap: true, - mode: range ? "range" : null, + mode: range ? "range" : "single", appendTo, disableMobile: "true", onReady: () => { diff --git a/packages/frontend-core/src/api/user.js b/packages/frontend-core/src/api/user.js index 39d9359e91..5c4f070802 100644 --- a/packages/frontend-core/src/api/user.js +++ b/packages/frontend-core/src/api/user.js @@ -158,7 +158,7 @@ export const buildUserEndpoints = API => ({ userInfo: { admin: user.admin ? { global: true } : undefined, builder: user.admin || user.builder ? { global: true } : undefined, - groups: user.groups, + userGroups: user.groups, }, })), }) diff --git a/packages/worker/src/sdk/users/users.ts b/packages/worker/src/sdk/users/users.ts index b0290507fc..539ac21300 100644 --- a/packages/worker/src/sdk/users/users.ts +++ b/packages/worker/src/sdk/users/users.ts @@ -177,7 +177,9 @@ export const save = async ( ): Promise => { const tenantId = tenancy.getTenantId() const db = tenancy.getGlobalDB() - let { email, _id } = user + + let { email, _id, userGroups = [] } = user + if (!email && !_id) { throw new Error("_id or email is required") } @@ -213,8 +215,16 @@ export const save = async ( let builtUser = await buildUser(user, opts, tenantId, dbUser) // make sure we set the _id field for a new user + // Also if this is a new user, associate groups with them + let groupPromises = [] if (!_id) { _id = builtUser._id! + + if (userGroups.length > 0) { + for (let groupId of userGroups) { + groupPromises.push(groupsSdk.addUsers(groupId, [_id])) + } + } } try { @@ -228,6 +238,8 @@ export const save = async ( // let server know to sync user await apps.syncUserInApps(_id) + await Promise.all(groupPromises) + return { _id: response.id, _rev: response.rev,