diff --git a/lerna.json b/lerna.json index 1c116117f0..c1993aa774 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.1.11", + "version": "2.1.13", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 941b4f3154..29eaa2aeaf 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/backend-core", - "version": "2.1.11", + "version": "2.1.13", "description": "Budibase backend core libraries used in server and worker", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", @@ -20,7 +20,7 @@ "test:watch": "jest --watchAll" }, "dependencies": { - "@budibase/types": "^2.1.11", + "@budibase/types": "^2.1.13", "@shopify/jest-koa-mocks": "5.0.1", "@techpass/passport-openidconnect": "0.3.2", "aws-sdk": "2.1030.0", diff --git a/packages/bbui/package.json b/packages/bbui/package.json index ab0e065c64..025f71911d 100644 --- a/packages/bbui/package.json +++ b/packages/bbui/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/bbui", "description": "A UI solution used in the different Budibase projects.", - "version": "2.1.11", + "version": "2.1.13", "license": "MPL-2.0", "svelte": "src/index.js", "module": "dist/bbui.es.js", @@ -38,7 +38,7 @@ ], "dependencies": { "@adobe/spectrum-css-workflow-icons": "^1.2.1", - "@budibase/string-templates": "^2.1.11", + "@budibase/string-templates": "^2.1.13", "@spectrum-css/actionbutton": "^1.0.1", "@spectrum-css/actiongroup": "^1.0.1", "@spectrum-css/avatar": "^3.0.2", 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/builder/package.json b/packages/builder/package.json index 4c777ebde8..267a130f08 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/builder", - "version": "2.1.11", + "version": "2.1.13", "license": "GPL-3.0", "private": true, "scripts": { @@ -71,10 +71,10 @@ } }, "dependencies": { - "@budibase/bbui": "^2.1.11", - "@budibase/client": "^2.1.11", - "@budibase/frontend-core": "^2.1.11", - "@budibase/string-templates": "^2.1.11", + "@budibase/bbui": "^2.1.13", + "@budibase/client": "^2.1.13", + "@budibase/frontend-core": "^2.1.13", + "@budibase/string-templates": "^2.1.13", "@sentry/browser": "5.19.1", "@spectrum-css/page": "^3.0.1", "@spectrum-css/vars": "^3.0.1", diff --git a/packages/builder/src/builderStore/store/frontend.js b/packages/builder/src/builderStore/store/frontend.js index fc8b1b8427..1291f81294 100644 --- a/packages/builder/src/builderStore/store/frontend.js +++ b/packages/builder/src/builderStore/store/frontend.js @@ -245,7 +245,10 @@ export const getFrontendStore = () => { } }, save: async screen => { - store.actions.screens.validate(screen) + /* + Temporarily disabled to accomodate migration issues. + store.actions.screens.validate(screen) + */ const state = get(store) const creatingNewScreen = screen._id === undefined const savedScreen = await API.saveScreen(screen) diff --git a/packages/cli/package.json b/packages/cli/package.json index ba1d937be5..cd932beb05 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/cli", - "version": "2.1.11", + "version": "2.1.13", "description": "Budibase CLI, for developers, self hosting and migrations.", "main": "src/index.js", "bin": { @@ -26,9 +26,9 @@ "outputPath": "build" }, "dependencies": { - "@budibase/backend-core": "^2.1.11", - "@budibase/string-templates": "^2.1.11", - "@budibase/types": "^2.1.11", + "@budibase/backend-core": "^2.1.13", + "@budibase/string-templates": "^2.1.13", + "@budibase/types": "^2.1.13", "axios": "0.21.2", "chalk": "4.1.0", "cli-progress": "3.11.2", diff --git a/packages/client/package.json b/packages/client/package.json index 73513b45c8..aad893a625 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/client", - "version": "2.1.11", + "version": "2.1.13", "license": "MPL-2.0", "module": "dist/budibase-client.js", "main": "dist/budibase-client.js", @@ -19,9 +19,9 @@ "dev:builder": "rollup -cw" }, "dependencies": { - "@budibase/bbui": "^2.1.11", - "@budibase/frontend-core": "^2.1.11", - "@budibase/string-templates": "^2.1.11", + "@budibase/bbui": "^2.1.13", + "@budibase/frontend-core": "^2.1.13", + "@budibase/string-templates": "^2.1.13", "@spectrum-css/button": "^3.0.3", "@spectrum-css/card": "^3.0.3", "@spectrum-css/divider": "^1.0.3", diff --git a/packages/client/src/utils/buttonActions.js b/packages/client/src/utils/buttonActions.js index e44ed2451c..6fcef37182 100644 --- a/packages/client/src/utils/buttonActions.js +++ b/packages/client/src/utils/buttonActions.js @@ -225,7 +225,10 @@ const changeFormStepHandler = async (action, context) => { } const closeScreenModalHandler = action => { - let { url } = action.parameters + let url + if (action?.parameters) { + url = action.parameters.url + } // Emit this as a window event, so parent screens which are iframing us in // can close the modal window.parent.postMessage({ type: "close-screen-modal", url }) diff --git a/packages/frontend-core/package.json b/packages/frontend-core/package.json index f7c02b45db..913da674bd 100644 --- a/packages/frontend-core/package.json +++ b/packages/frontend-core/package.json @@ -1,12 +1,12 @@ { "name": "@budibase/frontend-core", - "version": "2.1.11", + "version": "2.1.13", "description": "Budibase frontend core libraries used in builder and client", "author": "Budibase", "license": "MPL-2.0", "svelte": "src/index.js", "dependencies": { - "@budibase/bbui": "^2.1.11", + "@budibase/bbui": "^2.1.13", "lodash": "^4.17.21", "svelte": "^3.46.2" } 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/sdk/package.json b/packages/sdk/package.json index 441cadb353..afee578675 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/sdk", - "version": "2.1.11", + "version": "2.1.13", "description": "Budibase Public API SDK", "author": "Budibase", "license": "MPL-2.0", diff --git a/packages/server/package.json b/packages/server/package.json index 9414da1a9e..3b403afd62 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/server", "email": "hi@budibase.com", - "version": "2.1.11", + "version": "2.1.13", "description": "Budibase Web Server", "main": "src/index.ts", "repository": { @@ -77,11 +77,11 @@ "license": "GPL-3.0", "dependencies": { "@apidevtools/swagger-parser": "10.0.3", - "@budibase/backend-core": "^2.1.11", - "@budibase/client": "^2.1.11", - "@budibase/pro": "2.1.11", - "@budibase/string-templates": "^2.1.11", - "@budibase/types": "^2.1.11", + "@budibase/backend-core": "^2.1.13", + "@budibase/client": "^2.1.13", + "@budibase/pro": "2.1.13", + "@budibase/string-templates": "^2.1.13", + "@budibase/types": "^2.1.13", "@bull-board/api": "3.7.0", "@bull-board/koa": "3.9.4", "@elastic/elasticsearch": "7.10.0", diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock index d9ebc676d0..ea3db6c79c 100644 --- a/packages/server/yarn.lock +++ b/packages/server/yarn.lock @@ -1094,12 +1094,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@2.0.40-alpha.4": - version "2.0.40-alpha.4" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.0.40-alpha.4.tgz#732264961ae4a19949bd318150a0afcd068d37bc" - integrity sha512-3XtI8kl7laMHjmW6M9kIj+Eb8fa1gwG3pn0wyojydmUDZOGnnirPT2nvsr4m2icD7KYKhjmiwTI+101Z8QvRfw== +"@budibase/backend-core@2.1.13": + version "2.1.13" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.1.13.tgz#d0c4b126c87aa7e48864821bd40ba6523cfcca1f" + integrity sha512-6dxl1tdndO+Zj3uacTY33cXbfve90q5AvOjyZihkkh4e/MEZwLU81BD8Be7rAwaPM94hHu7VvHYkGqs9QnGG9Q== dependencies: - "@budibase/types" "2.0.40-alpha.4" + "@budibase/types" "^2.1.13" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -1181,13 +1181,13 @@ svelte-flatpickr "^3.2.3" svelte-portal "^1.0.0" -"@budibase/pro@2.0.40-alpha.4": - version "2.0.40-alpha.4" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.0.40-alpha.4.tgz#3edef22748da6ae9086c9d55b864979657f58afc" - integrity sha512-AaruTMmUBuqi3q5wRxL4Yr9SCqENsuoFxJBLfqXIl9DB0LuowfRklf5yehjGjxxHwZpqkIuMgJf/+jYbAvL44g== +"@budibase/pro@2.1.13": + version "2.1.13" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.1.13.tgz#c1f6264493652fa7372a97d0c034104ccec25f23" + integrity sha512-/1Niv6ywTG3W6zC6cWFqvb5Mup8UR7YKqVCMVzFaQwV2eR+QBSlsTZKHneFpJuFFA/tlQsOpnVYKvpVZCYbViA== dependencies: - "@budibase/backend-core" "2.0.40-alpha.4" - "@budibase/types" "2.0.40-alpha.4" + "@budibase/backend-core" "2.1.13" + "@budibase/types" "2.1.13" "@koa/router" "8.0.8" bull "4.10.1" joi "17.6.0" @@ -1211,10 +1211,10 @@ svelte-apexcharts "^1.0.2" svelte-flatpickr "^3.1.0" -"@budibase/types@2.0.40-alpha.4": - version "2.0.40-alpha.4" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.0.40-alpha.4.tgz#25268ef370e680a1401ca04d5fa6a96cd3a03d9e" - integrity sha512-E/4WJpEyP4djElEzwHwehawGXwgcFPWGoeeU/FwgyqiIhJF07tKABjo56MC2aqiYDegYknZtx3OU73pFo/Z4LA== +"@budibase/types@2.1.13", "@budibase/types@^2.1.13": + version "2.1.13" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.1.13.tgz#d65adfe0e9fb645701be63bc9b728d5e2b7bb726" + integrity sha512-kBUoUxPaVh7YW+0OS5pJ56Rar35n6uct1sEsA14uXErOQ33VssHJjIiYZL1DnlE+4PT5xpmW8fAUQiTz4PYBnw== "@bull-board/api@3.7.0": version "3.7.0" diff --git a/packages/string-templates/package.json b/packages/string-templates/package.json index 9b3144c5b9..db0930541a 100644 --- a/packages/string-templates/package.json +++ b/packages/string-templates/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/string-templates", - "version": "2.1.11", + "version": "2.1.13", "description": "Handlebars wrapper for Budibase templating.", "main": "src/index.cjs", "module": "dist/bundle.mjs", diff --git a/packages/types/package.json b/packages/types/package.json index 31c2799b64..0015a9fb3d 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@budibase/types", - "version": "2.1.11", + "version": "2.1.13", "description": "Budibase types", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/worker/package.json b/packages/worker/package.json index d91df714e1..03dfdfb233 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -1,7 +1,7 @@ { "name": "@budibase/worker", "email": "hi@budibase.com", - "version": "2.1.11", + "version": "2.1.13", "description": "Budibase background service", "main": "src/index.ts", "repository": { @@ -36,10 +36,10 @@ "author": "Budibase", "license": "GPL-3.0", "dependencies": { - "@budibase/backend-core": "^2.1.11", - "@budibase/pro": "2.1.11", - "@budibase/string-templates": "^2.1.11", - "@budibase/types": "^2.1.11", + "@budibase/backend-core": "^2.1.13", + "@budibase/pro": "2.1.13", + "@budibase/string-templates": "^2.1.13", + "@budibase/types": "^2.1.13", "@koa/router": "8.0.8", "@sentry/node": "6.17.7", "@techpass/passport-openidconnect": "0.3.2", 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, diff --git a/packages/worker/yarn.lock b/packages/worker/yarn.lock index 1a4b55ad72..221eb9050a 100644 --- a/packages/worker/yarn.lock +++ b/packages/worker/yarn.lock @@ -291,12 +291,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@budibase/backend-core@2.0.40-alpha.4": - version "2.0.40-alpha.4" - resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.0.40-alpha.4.tgz#732264961ae4a19949bd318150a0afcd068d37bc" - integrity sha512-3XtI8kl7laMHjmW6M9kIj+Eb8fa1gwG3pn0wyojydmUDZOGnnirPT2nvsr4m2icD7KYKhjmiwTI+101Z8QvRfw== +"@budibase/backend-core@2.1.13": + version "2.1.13" + resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.1.13.tgz#d0c4b126c87aa7e48864821bd40ba6523cfcca1f" + integrity sha512-6dxl1tdndO+Zj3uacTY33cXbfve90q5AvOjyZihkkh4e/MEZwLU81BD8Be7rAwaPM94hHu7VvHYkGqs9QnGG9Q== dependencies: - "@budibase/types" "2.0.40-alpha.4" + "@budibase/types" "^2.1.13" "@shopify/jest-koa-mocks" "5.0.1" "@techpass/passport-openidconnect" "0.3.2" aws-sdk "2.1030.0" @@ -328,22 +328,22 @@ uuid "8.3.2" zlib "1.0.5" -"@budibase/pro@2.0.40-alpha.4": - version "2.0.40-alpha.4" - resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.0.40-alpha.4.tgz#3edef22748da6ae9086c9d55b864979657f58afc" - integrity sha512-AaruTMmUBuqi3q5wRxL4Yr9SCqENsuoFxJBLfqXIl9DB0LuowfRklf5yehjGjxxHwZpqkIuMgJf/+jYbAvL44g== +"@budibase/pro@2.1.13": + version "2.1.13" + resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.1.13.tgz#c1f6264493652fa7372a97d0c034104ccec25f23" + integrity sha512-/1Niv6ywTG3W6zC6cWFqvb5Mup8UR7YKqVCMVzFaQwV2eR+QBSlsTZKHneFpJuFFA/tlQsOpnVYKvpVZCYbViA== dependencies: - "@budibase/backend-core" "2.0.40-alpha.4" - "@budibase/types" "2.0.40-alpha.4" + "@budibase/backend-core" "2.1.13" + "@budibase/types" "2.1.13" "@koa/router" "8.0.8" bull "4.10.1" joi "17.6.0" node-fetch "^2.6.1" -"@budibase/types@2.0.40-alpha.4": - version "2.0.40-alpha.4" - resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.0.40-alpha.4.tgz#25268ef370e680a1401ca04d5fa6a96cd3a03d9e" - integrity sha512-E/4WJpEyP4djElEzwHwehawGXwgcFPWGoeeU/FwgyqiIhJF07tKABjo56MC2aqiYDegYknZtx3OU73pFo/Z4LA== +"@budibase/types@2.1.13", "@budibase/types@^2.1.13": + version "2.1.13" + resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.1.13.tgz#d65adfe0e9fb645701be63bc9b728d5e2b7bb726" + integrity sha512-kBUoUxPaVh7YW+0OS5pJ56Rar35n6uct1sEsA14uXErOQ33VssHJjIiYZL1DnlE+4PT5xpmW8fAUQiTz4PYBnw== "@cspotcode/source-map-consumer@0.8.0": version "0.8.0"