2023-02-21 21:23:53 +13:00
|
|
|
import {
|
|
|
|
AdminUser,
|
2023-07-19 05:10:15 +12:00
|
|
|
AdminOnlyUser,
|
2023-02-21 21:23:53 +13:00
|
|
|
BuilderUser,
|
|
|
|
SSOAuthDetails,
|
|
|
|
SSOUser,
|
|
|
|
} from "@budibase/types"
|
2023-02-25 06:31:58 +13:00
|
|
|
import { user } from "./shared"
|
|
|
|
import { authDetails } from "./sso"
|
2023-02-21 21:23:53 +13:00
|
|
|
|
2023-02-25 06:31:58 +13:00
|
|
|
export { user, newEmail } from "./shared"
|
2023-02-21 21:23:53 +13:00
|
|
|
|
|
|
|
export const adminUser = (userProps?: any): AdminUser => {
|
|
|
|
return {
|
|
|
|
...user(userProps),
|
|
|
|
admin: {
|
|
|
|
global: true,
|
|
|
|
},
|
|
|
|
builder: {
|
|
|
|
global: true,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-07-19 05:10:15 +12:00
|
|
|
export const adminOnlyUser = (userProps?: any): AdminOnlyUser => {
|
|
|
|
return {
|
|
|
|
...user(userProps),
|
|
|
|
admin: {
|
|
|
|
global: true,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-02-21 21:23:53 +13:00
|
|
|
export const builderUser = (userProps?: any): BuilderUser => {
|
|
|
|
return {
|
|
|
|
...user(userProps),
|
|
|
|
builder: {
|
|
|
|
global: true,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-07-19 05:10:15 +12:00
|
|
|
export const appBuilderUser = (appId: string, userProps?: any): BuilderUser => {
|
|
|
|
return {
|
|
|
|
...user(userProps),
|
|
|
|
builder: {
|
|
|
|
apps: [appId],
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-02-21 21:23:53 +13:00
|
|
|
export function ssoUser(
|
|
|
|
opts: { user?: any; details?: SSOAuthDetails } = {}
|
|
|
|
): SSOUser {
|
|
|
|
const base = user(opts.user)
|
|
|
|
delete base.password
|
|
|
|
|
|
|
|
if (!opts.details) {
|
2023-02-25 06:31:58 +13:00
|
|
|
opts.details = authDetails(base)
|
2023-02-21 21:23:53 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
return {
|
|
|
|
...base,
|
|
|
|
forceResetPassword: false,
|
|
|
|
oauth2: opts.details?.oauth2,
|
|
|
|
provider: opts.details?.provider!,
|
|
|
|
providerType: opts.details?.providerType!,
|
|
|
|
thirdPartyProfile: {
|
|
|
|
email: base.email,
|
|
|
|
picture: base.pictureUrl,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|