mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-14 15:14:56 -04:00
config: Improve error messages
Add labels to most Joi objects Convert all auth variable insert names to upper case to prevent inconsistent naming of the variables Rewrite auth errors to correctly point out the problematic variable Add tests for the config utils functions Signed-off-by: Philip Molares <philip.molares@udo.edu>
This commit is contained in:
parent
4afc75912a
commit
bc525633fc
8 changed files with 372 additions and 168 deletions
|
@ -15,3 +15,77 @@ export const toArrayConfig = (configValue: string, separator = ',') => {
|
|||
|
||||
return configValue.split(separator).map((arrayItem) => arrayItem.trim());
|
||||
};
|
||||
|
||||
export const buildErrorMessage = (errorMessages: string[]): string => {
|
||||
let totalErrorMessage = 'There were some errors with your configuration:';
|
||||
for (const message of errorMessages) {
|
||||
totalErrorMessage += '\n - ';
|
||||
totalErrorMessage += message;
|
||||
}
|
||||
totalErrorMessage +=
|
||||
'\nFor further information, have a look at our configuration docs at https://docs.hedgedoc.org/configuration';
|
||||
return totalErrorMessage;
|
||||
};
|
||||
|
||||
export const replaceAuthErrorsWithEnvironmentVariables = (
|
||||
message: string,
|
||||
name: string,
|
||||
replacement: string,
|
||||
arrayOfNames: string[],
|
||||
): string => {
|
||||
// this builds a regex like /"gitlab\[(\d+)]\./ to extract the position in the arrayOfNames
|
||||
const regex = new RegExp('"' + name + '\\[(\\d+)]\\.', 'g');
|
||||
message = message.replace(
|
||||
regex,
|
||||
(_, index) => `"${replacement}${arrayOfNames[index]}.`,
|
||||
);
|
||||
message = message.replace('.providerName', '_PROVIDER_NAME');
|
||||
message = message.replace('.baseURL', '_BASE_URL');
|
||||
message = message.replace('.clientID', '_CLIENT_ID');
|
||||
message = message.replace('.clientSecret', '_CLIENT_SECRET');
|
||||
message = message.replace('.scope', '_SCOPE');
|
||||
message = message.replace('.version', '_GITLAB_VERSION');
|
||||
message = message.replace('.url', '_URL');
|
||||
message = message.replace('.bindDn', '_BIND_DN');
|
||||
message = message.replace('.bindCredentials', '_BIND_CREDENTIALS');
|
||||
message = message.replace('.searchBase', '_SEARCH_BASE');
|
||||
message = message.replace('.searchFilter', '_SEARCH_FILTER');
|
||||
message = message.replace('.searchAttributes', '_SEARCH_ATTRIBUTES');
|
||||
message = message.replace('.usernameField', '_USERNAME_FIELD');
|
||||
message = message.replace('.useridField', '_USERID_FIELD');
|
||||
message = message.replace('.tlsCa', '_TLS_CA');
|
||||
message = message.replace('.idpSsoUrl', '_IDPSSOURL');
|
||||
message = message.replace('.idpCert', '_IDPCERT');
|
||||
message = message.replace('.clientCert', '_CLIENTCERT');
|
||||
message = message.replace('.issuer', '_ISSUER');
|
||||
message = message.replace('.identifierFormat', '_IDENTIFIERFORMAT');
|
||||
message = message.replace(
|
||||
'.disableRequestedAuthnContext',
|
||||
'_DISABLEREQUESTEDAUTHNCONTEXT',
|
||||
);
|
||||
message = message.replace('.groupAttribute', '_GROUPATTRIBUTE');
|
||||
message = message.replace('.requiredGroups', '_REQUIREDGROUPS');
|
||||
message = message.replace('.externalGroups', '_EXTERNALGROUPS');
|
||||
message = message.replace('.attribute.id', '_ATTRIBUTE_ID');
|
||||
message = message.replace('.attribute.username', '_ATTRIBUTE_USERNAME');
|
||||
message = message.replace('.attribute.email', '_ATTRIBUTE_USERNAME');
|
||||
message = message.replace('.userProfileURL', '_USER_PROFILE_URL');
|
||||
message = message.replace('.userProfileIdAttr', '_USER_PROFILE_ID_ATTR');
|
||||
message = message.replace(
|
||||
'.userProfileUsernameAttr',
|
||||
'_USER_PROFILE_USERNAME_ATTR',
|
||||
);
|
||||
message = message.replace(
|
||||
'.userProfileDisplayNameAttr',
|
||||
'_USER_PROFILE_DISPLAY_NAME_ATTR',
|
||||
);
|
||||
message = message.replace(
|
||||
'.userProfileEmailAttr',
|
||||
'_USER_PROFILE_EMAIL_ATTR',
|
||||
);
|
||||
message = message.replace('.tokenURL', '_TOKEN_URL');
|
||||
message = message.replace('.authorizationURL', '_AUTHORIZATION_URL');
|
||||
message = message.replace('.rolesClaim', '_ROLES_CLAIM');
|
||||
message = message.replace('.accessRole', '_ACCESS_ROLE');
|
||||
return message;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue