Allow a displayName to be passed when creating admin user (#13516)
* Allow a displayName to be passed when creating admin user * Set the first and last names * Don't format handlebars files on save * Use familyName and givenName
This commit is contained in:
parent
12edb9c001
commit
6bdc726d55
6 changed files with 22 additions and 1 deletions
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
|
@ -24,5 +24,8 @@
|
||||||
},
|
},
|
||||||
"[svelte]": {
|
"[svelte]": {
|
||||||
"editor.defaultFormatter": "svelte.svelte-vscode"
|
"editor.defaultFormatter": "svelte.svelte-vscode"
|
||||||
|
},
|
||||||
|
"[handlebars]": {
|
||||||
|
"editor.formatOnSave": false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,6 +50,8 @@ type CreateAdminUserOpts = {
|
||||||
hashPassword?: boolean
|
hashPassword?: boolean
|
||||||
requirePassword?: boolean
|
requirePassword?: boolean
|
||||||
skipPasswordValidation?: boolean
|
skipPasswordValidation?: boolean
|
||||||
|
firstName?: string
|
||||||
|
lastName?: string
|
||||||
}
|
}
|
||||||
type FeatureFns = { isSSOEnforced: FeatureFn; isAppBuildersEnabled: FeatureFn }
|
type FeatureFns = { isSSOEnforced: FeatureFn; isAppBuildersEnabled: FeatureFn }
|
||||||
|
|
||||||
|
@ -517,6 +519,8 @@ export class UserDB {
|
||||||
global: true,
|
global: true,
|
||||||
},
|
},
|
||||||
tenantId,
|
tenantId,
|
||||||
|
firstName: opts?.firstName,
|
||||||
|
lastName: opts?.lastName,
|
||||||
}
|
}
|
||||||
if (opts?.ssoId) {
|
if (opts?.ssoId) {
|
||||||
user.ssoId = opts.ssoId
|
user.ssoId = opts.ssoId
|
||||||
|
|
|
@ -66,6 +66,8 @@ export interface CreateAdminUserRequest {
|
||||||
password?: string
|
password?: string
|
||||||
tenantId: string
|
tenantId: string
|
||||||
ssoId?: string
|
ssoId?: string
|
||||||
|
familyName?: string
|
||||||
|
givenName?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface AddSSoUserRequest {
|
export interface AddSSoUserRequest {
|
||||||
|
|
|
@ -22,6 +22,13 @@ export interface UserSSO {
|
||||||
providerType: SSOProviderType
|
providerType: SSOProviderType
|
||||||
oauth2?: OAuth2
|
oauth2?: OAuth2
|
||||||
thirdPartyProfile?: SSOProfileJson
|
thirdPartyProfile?: SSOProfileJson
|
||||||
|
profile?: {
|
||||||
|
displayName?: string
|
||||||
|
name?: {
|
||||||
|
givenName?: string
|
||||||
|
familyName?: string
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export type SSOUser = User & UserSSO
|
export type SSOUser = User & UserSSO
|
||||||
|
|
|
@ -116,7 +116,8 @@ const parseBooleanParam = (param: any) => {
|
||||||
export const adminUser = async (
|
export const adminUser = async (
|
||||||
ctx: Ctx<CreateAdminUserRequest, CreateAdminUserResponse>
|
ctx: Ctx<CreateAdminUserRequest, CreateAdminUserResponse>
|
||||||
) => {
|
) => {
|
||||||
const { email, password, tenantId, ssoId } = ctx.request.body
|
const { email, password, tenantId, ssoId, givenName, familyName } =
|
||||||
|
ctx.request.body
|
||||||
|
|
||||||
if (await platform.tenants.exists(tenantId)) {
|
if (await platform.tenants.exists(tenantId)) {
|
||||||
ctx.throw(403, "Organisation already exists.")
|
ctx.throw(403, "Organisation already exists.")
|
||||||
|
@ -151,6 +152,8 @@ export const adminUser = async (
|
||||||
ssoId,
|
ssoId,
|
||||||
hashPassword,
|
hashPassword,
|
||||||
requirePassword,
|
requirePassword,
|
||||||
|
firstName: givenName,
|
||||||
|
lastName: familyName,
|
||||||
})
|
})
|
||||||
|
|
||||||
// events
|
// events
|
||||||
|
|
|
@ -16,6 +16,8 @@ function buildAdminInitValidation() {
|
||||||
password: OPTIONAL_STRING,
|
password: OPTIONAL_STRING,
|
||||||
tenantId: Joi.string().required(),
|
tenantId: Joi.string().required(),
|
||||||
ssoId: Joi.string(),
|
ssoId: Joi.string(),
|
||||||
|
familyName: OPTIONAL_STRING,
|
||||||
|
givenName: OPTIONAL_STRING,
|
||||||
})
|
})
|
||||||
.required()
|
.required()
|
||||||
.unknown(false)
|
.unknown(false)
|
||||||
|
|
Loading…
Reference in a new issue