fix auth config validation for saving deactivation (#9361)

This commit is contained in:
Andrew Thompson 2023-01-19 13:06:38 +00:00 committed by GitHub
parent 81eea012ac
commit 0f5d0a0992
2 changed files with 25 additions and 27 deletions

View File

@ -172,6 +172,8 @@
delete element.createdAt
delete element.updatedAt
const { activated } = element.config
if (element.type === ConfigTypes.OIDC) {
// Add a UUID here so each config is distinguishable when it arrives at the login page
for (let config of element.config.configs) {
@ -181,30 +183,26 @@
// Callback urls shouldn't be included
delete config.callbackURL
}
if (partialOidc) {
if (!oidcComplete) {
notifications.error(
`Please fill in all required ${ConfigTypes.OIDC} fields`
)
} else {
calls.push(API.saveConfig(element))
// Turn the save button grey when clicked
oidcSaveButtonDisabled = true
originalOidcDoc = cloneDeep(providers.oidc)
}
if ((partialOidc || activated) && !oidcComplete) {
notifications.error(
`Please fill in all required ${ConfigTypes.OIDC} fields`
)
} else if (oidcComplete || !activated) {
calls.push(API.saveConfig(element))
// Turn the save button grey when clicked
oidcSaveButtonDisabled = true
originalOidcDoc = cloneDeep(providers.oidc)
}
}
if (element.type === ConfigTypes.Google) {
if (partialGoogle) {
if (!googleComplete) {
notifications.error(
`Please fill in all required ${ConfigTypes.Google} fields`
)
} else {
calls.push(API.saveConfig(element))
googleSaveButtonDisabled = true
originalGoogleDoc = cloneDeep(providers.google)
}
if ((partialGoogle || activated) && !googleComplete) {
notifications.error(
`Please fill in all required ${ConfigTypes.Google} fields`
)
} else if (googleComplete || !activated) {
calls.push(API.saveConfig(element))
googleSaveButtonDisabled = true
originalGoogleDoc = cloneDeep(providers.google)
}
}
})

View File

@ -34,8 +34,8 @@ function settingValidation() {
function googleValidation() {
// prettier-ignore
return Joi.object({
clientID: Joi.string().required(),
clientSecret: Joi.string().required(),
clientID: Joi.when('activated', { is: true, then: Joi.string().required() }),
clientSecret: Joi.when('activated', { is: true, then: Joi.string().required() }),
activated: Joi.boolean().required(),
}).unknown(true)
}
@ -45,12 +45,12 @@ function oidcValidation() {
return Joi.object({
configs: Joi.array().items(
Joi.object({
clientID: Joi.string().required(),
clientSecret: Joi.string().required(),
configUrl: Joi.string().required(),
clientID: Joi.when('activated', { is: true, then: Joi.string().required() }),
clientSecret: Joi.when('activated', { is: true, then: Joi.string().required() }),
configUrl: Joi.when('activated', { is: true, then: Joi.string().required() }),
logo: Joi.string().allow("", null),
name: Joi.string().allow("", null),
uuid: Joi.string().required(),
uuid: Joi.when('activated', { is: true, then: Joi.string().required() }),
activated: Joi.boolean().required(),
scopes: Joi.array().optional()
})