fixes for perr app builder and refactoring based on comments
This commit is contained in:
parent
24abd91600
commit
6d3a7727eb
|
@ -150,13 +150,10 @@
|
|||
}
|
||||
|
||||
const sortInviteRoles = (a, b) => {
|
||||
const aEmpty =
|
||||
!a.info?.appBuilders?.length && Object.keys(a.info.apps).length === 0
|
||||
const bEmpty =
|
||||
!b.info?.appBuilders?.length && Object.keys(b.info.apps).length === 0
|
||||
const aAppsEmpty = !a.info?.apps?.length && !a.info?.builder?.apps?.length
|
||||
const bAppsEmpty = !b.info?.apps?.length && !b.info?.builder?.apps?.length
|
||||
|
||||
if (aEmpty && !bEmpty) return 1
|
||||
if (!aEmpty && bEmpty) return -1
|
||||
return aAppsEmpty && !bAppsEmpty ? 1 : !aAppsEmpty && bAppsEmpty ? -1 : 0
|
||||
}
|
||||
|
||||
const sortRoles = (a, b) => {
|
||||
|
@ -366,14 +363,14 @@
|
|||
const payload = [
|
||||
{
|
||||
email: newUserEmail,
|
||||
builder: creationRoleType === Constants.BudibaseRoles.Admin,
|
||||
admin: creationRoleType === Constants.BudibaseRoles.Admin,
|
||||
builder: { global: creationRoleType === Constants.BudibaseRoles.Admin },
|
||||
admin: { global: creationRoleType === Constants.BudibaseRoles.Admin },
|
||||
},
|
||||
]
|
||||
|
||||
if (creationRoleType !== Constants.BudibaseRoles.Admin) {
|
||||
if (creationAccessType === Constants.Roles.CREATOR) {
|
||||
payload[0].appBuilders = [prodAppId]
|
||||
payload[0].builder.apps = [prodAppId]
|
||||
} else {
|
||||
payload[0].apps = {
|
||||
[prodAppId]: creationAccessType,
|
||||
|
@ -441,10 +438,11 @@
|
|||
}
|
||||
|
||||
if (role === Constants.Roles.CREATOR) {
|
||||
updateBody.appBuilders = [...(updateBody.appBuilders ?? []), prodAppId]
|
||||
updateBody.builder = updateBody.builder || {}
|
||||
updateBody.builder.apps = [...(updateBody.builder.apps ?? []), prodAppId]
|
||||
delete updateBody?.apps?.[prodAppId]
|
||||
} else if (role !== Constants.Roles.CREATOR && invite?.appBuilders) {
|
||||
invite.appBuilders = []
|
||||
} else if (role !== Constants.Roles.CREATOR && invite?.builder?.apps) {
|
||||
invite.builder.apps = []
|
||||
}
|
||||
await users.updateInvite(updateBody)
|
||||
await filterInvites(query)
|
||||
|
@ -502,7 +500,7 @@
|
|||
return Constants.Roles.ADMIN
|
||||
}
|
||||
|
||||
if (invite.info?.appBuilders?.includes(prodAppId)) {
|
||||
if (invite.info?.builder?.apps?.includes(prodAppId)) {
|
||||
return Constants.Roles.CREATOR
|
||||
}
|
||||
|
||||
|
@ -546,7 +544,9 @@
|
|||
<Heading size="S">{invitingFlow ? "Invite new user" : "Users"}</Heading>
|
||||
</div>
|
||||
<div class="header">
|
||||
<Button on:click={openInviteFlow} size="S" cta>Invite user</Button>
|
||||
{#if !invitingFlow}
|
||||
<Button on:click={openInviteFlow} size="S" cta>Invite user</Button>
|
||||
{/if}
|
||||
<Icon
|
||||
color="var(--spectrum-global-color-gray-600)"
|
||||
name="RailRightClose"
|
||||
|
|
|
@ -144,8 +144,8 @@ export const buildUserEndpoints = API => ({
|
|||
body: {
|
||||
email,
|
||||
userInfo: {
|
||||
admin: admin ? { global: true } : undefined,
|
||||
builder: builder ? { global: true } : undefined,
|
||||
admin: admin?.global ? { global: true } : undefined,
|
||||
builder: builder?.global ? { global: true } : undefined,
|
||||
apps: apps ? apps : undefined,
|
||||
},
|
||||
},
|
||||
|
@ -153,20 +153,16 @@ export const buildUserEndpoints = API => ({
|
|||
},
|
||||
|
||||
onboardUsers: async payload => {
|
||||
console.log(payload)
|
||||
return await API.post({
|
||||
url: "/api/global/users/onboard",
|
||||
body: payload.map(invite => {
|
||||
const { email, admin, builder, apps, appBuilders } = invite
|
||||
console.log(admin)
|
||||
console.log(builder)
|
||||
const { email, admin, builder, apps } = invite
|
||||
return {
|
||||
email,
|
||||
userInfo: {
|
||||
admin: admin ? { global: true } : undefined,
|
||||
builder: builder ? { global: true } : undefined,
|
||||
admin,
|
||||
builder,
|
||||
apps: apps ? apps : undefined,
|
||||
appBuilders,
|
||||
},
|
||||
}
|
||||
}),
|
||||
|
@ -179,12 +175,11 @@ export const buildUserEndpoints = API => ({
|
|||
* @param invite the invite code sent in the email
|
||||
*/
|
||||
updateUserInvite: async invite => {
|
||||
console.log(invite)
|
||||
await API.post({
|
||||
url: `/api/global/users/invite/update/${invite.code}`,
|
||||
body: {
|
||||
apps: invite.apps,
|
||||
appBuilders: invite.appBuilders,
|
||||
builder: invite.builder,
|
||||
},
|
||||
})
|
||||
},
|
||||
|
|
|
@ -266,19 +266,14 @@ export const onboardUsers = async (ctx: Ctx<InviteUsersRequest>) => {
|
|||
|
||||
// Temp password to be passed to the user.
|
||||
createdPasswords[invite.email] = password
|
||||
let builder: { global: boolean; apps?: string[] } = {
|
||||
global: invite.userInfo.builder || false,
|
||||
}
|
||||
if (invite.userInfo.appBuilders) {
|
||||
builder.apps = invite.userInfo.appBuilders
|
||||
}
|
||||
|
||||
return {
|
||||
email: invite.email,
|
||||
password,
|
||||
forceResetPassword: true,
|
||||
roles: invite.userInfo.apps,
|
||||
admin: { global: invite.userInfo.admin || false },
|
||||
builder,
|
||||
admin: invite.userInfo.admin,
|
||||
builder: invite.userInfo.builder,
|
||||
tenantId: tenancy.getTenantId(),
|
||||
}
|
||||
})
|
||||
|
@ -373,13 +368,10 @@ export const updateInvite = async (ctx: any) => {
|
|||
...invite,
|
||||
}
|
||||
|
||||
if (!updateBody?.appBuilders || !updateBody.appBuilders?.length) {
|
||||
updated.info.appBuilders = []
|
||||
} else {
|
||||
updated.info.appBuilders = [
|
||||
...(invite.info.appBuilders ?? []),
|
||||
...updateBody.appBuilders,
|
||||
]
|
||||
if (!updateBody?.builder?.apps && updated.info?.builder?.apps) {
|
||||
updated.info.builder.apps = []
|
||||
} else if (updateBody?.builder) {
|
||||
updated.info.builder = updateBody.builder
|
||||
}
|
||||
|
||||
if (!updateBody?.apps || !Object.keys(updateBody?.apps).length) {
|
||||
|
@ -411,18 +403,18 @@ export const inviteAccept = async (
|
|||
lastName,
|
||||
password,
|
||||
email,
|
||||
admin: { global: info.admin || false },
|
||||
admin: { global: info.admin.global || false },
|
||||
roles: info.apps,
|
||||
tenantId: info.tenantId,
|
||||
}
|
||||
let builder: { global: boolean; apps?: string[] } = {
|
||||
global: info.builder || false,
|
||||
global: info.builder.global || false,
|
||||
}
|
||||
|
||||
if (info.appBuilders) {
|
||||
builder.apps = info.appBuilders
|
||||
if (info.builder.apps) {
|
||||
builder.apps = info.builder.apps
|
||||
request.builder = builder
|
||||
delete info.appBuilders
|
||||
delete info.builder.apps
|
||||
}
|
||||
delete info.apps
|
||||
request = {
|
||||
|
|
Loading…
Reference in New Issue