28 lines
1.5 KiB
JavaScript
28 lines
1.5 KiB
JavaScript
const { renderView } = require('../../view');
|
|
|
|
module.exports = function renderAcceptInvitePage(message, token, email, name, passwordRequirements, isValidInvitation) {
|
|
const requirements = passwordRequirements || { minimumLength: 10, minimumCategories: 3, requireLowercase: false, requireUppercase: false, requireNumber: false, requireSymbol: false };
|
|
const requiredCategories = [];
|
|
if (requirements.requireLowercase) requiredCategories.push('lowercase');
|
|
if (requirements.requireUppercase) requiredCategories.push('uppercase');
|
|
if (requirements.requireNumber) requiredCategories.push('number');
|
|
if (requirements.requireSymbol) requiredCategories.push('symbol');
|
|
const passwordRequirementsText = requiredCategories.length
|
|
? 'Use at least ' + requirements.minimumLength + ' characters and include ' + requiredCategories.join(', ') + '.'
|
|
: requirements.minimumCategories === 4
|
|
? 'Use at least ' + requirements.minimumLength + ' characters and include uppercase, lowercase, number, and symbol.'
|
|
: 'Use at least ' + requirements.minimumLength + ' characters and include ' + requirements.minimumCategories + ' of: uppercase, lowercase, number, and symbol.';
|
|
return renderView('auth/accept-invite', {
|
|
title: 'Accept invitation',
|
|
authShell: true,
|
|
bodyClass: 'login-page-body',
|
|
message: message || '',
|
|
isValidInvitation: Boolean(isValidInvitation),
|
|
token: token || '',
|
|
email: email || '',
|
|
name: name || '',
|
|
passwordMinimumLength: requirements.minimumLength,
|
|
passwordRequirementsText: passwordRequirementsText
|
|
});
|
|
};
|