Michael Drury
5 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with
20 additions and
16 deletions
-
packages/builder/src/components/backend/DataTable/modals/CreateEditUser.svelte
-
packages/builder/src/pages/builder/portal/manage/users/[userId].svelte
-
packages/server/src/api/controllers/user.js
-
packages/server/src/utilities/global.js
-
packages/worker/src/api/routes/tests/realEmail.spec.js
|
|
|
@ -104,6 +104,7 @@ |
|
|
|
options={$roles} |
|
|
|
getOptionLabel={role => role.name} |
|
|
|
getOptionValue={role => role._id} |
|
|
|
disabled={!creating} |
|
|
|
/> |
|
|
|
{#each customSchemaKeys as [key, meta]} |
|
|
|
{#if !meta.autocolumn} |
|
|
|
|
|
|
|
@ -33,12 +33,16 @@ |
|
|
|
role: {}, |
|
|
|
} |
|
|
|
|
|
|
|
$: defaultRoleId = $userFetch?.data?.builder?.global ? "ADMIN" : "" |
|
|
|
// Merge the Apps list and the roles response to get something that makes sense for the table |
|
|
|
$: appList = Object.keys($apps?.data).map(id => ({ |
|
|
|
...$apps?.data?.[id], |
|
|
|
_id: id, |
|
|
|
role: [$userFetch?.data?.roles?.[id]], |
|
|
|
})) |
|
|
|
$: appList = Object.keys($apps?.data).map(id => { |
|
|
|
const role = $userFetch?.data?.roles?.[id] || defaultRoleId |
|
|
|
return { |
|
|
|
...$apps?.data?.[id], |
|
|
|
_id: id, |
|
|
|
role: [role], |
|
|
|
} |
|
|
|
}) |
|
|
|
let selectedApp |
|
|
|
|
|
|
|
const userFetch = fetchData(`/api/admin/users/${userId}`) |
|
|
|
|
|
|
|
@ -4,7 +4,6 @@ const { |
|
|
|
getUserMetadataParams, |
|
|
|
} = require("../../db/utils") |
|
|
|
const { InternalTables } = require("../../db/utils") |
|
|
|
const { addAppRoleToUser } = require("../../utilities/workerRequests") |
|
|
|
const { getGlobalUsers } = require("../../utilities/global") |
|
|
|
const { getFullUser } = require("../../utilities/users") |
|
|
|
|
|
|
|
@ -53,9 +52,6 @@ exports.updateMetadata = async function (ctx) { |
|
|
|
const appId = ctx.appId |
|
|
|
const db = new CouchDB(appId) |
|
|
|
const user = removeGlobalProps(ctx.request.body) |
|
|
|
if (user.roleId) { |
|
|
|
await addAppRoleToUser(ctx, appId, user.roleId, user._id) |
|
|
|
} |
|
|
|
const metadata = { |
|
|
|
tableId: InternalTables.USER_METADATA, |
|
|
|
...user, |
|
|
|
|
|
|
|
@ -12,14 +12,14 @@ exports.updateAppRole = (appId, user) => { |
|
|
|
if (!user.roles) { |
|
|
|
return user |
|
|
|
} |
|
|
|
if (user.builder && user.builder.global) { |
|
|
|
|
|
|
|
// always use the deployed app
|
|
|
|
user.roleId = user.roles[getDeployedAppID(appId)] |
|
|
|
// if a role wasn't found then either set as admin (builder) or public (everyone else)
|
|
|
|
if (!user.roleId && user.builder && user.builder.global) { |
|
|
|
user.roleId = BUILTIN_ROLE_IDS.ADMIN |
|
|
|
} else { |
|
|
|
// always use the deployed app
|
|
|
|
user.roleId = user.roles[getDeployedAppID(appId)] |
|
|
|
if (!user.roleId) { |
|
|
|
user.roleId = BUILTIN_ROLE_IDS.PUBLIC |
|
|
|
} |
|
|
|
} else if (!user.roleId) { |
|
|
|
user.roleId = BUILTIN_ROLE_IDS.PUBLIC |
|
|
|
} |
|
|
|
delete user.roles |
|
|
|
return user |
|
|
|
|
|
|
|
@ -3,6 +3,9 @@ const { EmailTemplatePurpose } = require("../../../constants") |
|
|
|
const nodemailer = require("nodemailer") |
|
|
|
const fetch = require("node-fetch") |
|
|
|
|
|
|
|
// need a longer timeout for getting these
|
|
|
|
jest.setTimeout(30000) |
|
|
|
|
|
|
|
describe("/api/admin/email", () => { |
|
|
|
let request = setup.getRequest() |
|
|
|
let config = setup.getConfig() |
|
|
|
|