journey/server/config/membership.js

109 lines
2.6 KiB
JavaScript

'use strict'
const _ = require('lodash')
const config = {
site: require('./site'),
}
module.exports = {
invite: {
from: `${config.site.title} Robot <${config.site.emails.robot}>`,
subject: `You have been invited to ${config.site.title}`,
},
changePassword: {
from: `${config.site.title} Robot <${config.site.emails.robot}>`,
subject: `Password Reset Request for ${config.site.title}`,
},
timeouts: {
// 1 day
changePassword: 24 * 60 * 60 * 1000,
// verify email
verifyEmail: 7 * 24 * 60 * 60 * 1000,
},
paths: {
register: '/register',
login: '/login',
forgotPassword: '/forgot',
resetPassword: '/reset',
verifyEmail: '/verify',
},
redirects: {
login: '/',
logout: '/login',
register: '/login',
},
remember: {
// if expires is defined, it will be used. otherwise maxage
expires: new Date('2038-01-19T03:14:07.000Z'),
// expires: Date.now() - 1,
maxAge: 30 * 24 * 60 * 60 * 1000,
},
messages: {
login: {
notLocal: 'Account requires external login.',
wrongPassword: 'Wrong password.',
noUserFound: 'No user registered with that email.',
noExternalUser: 'The account is not connected to this website.',
externalLoginFailed: 'External login failed.',
emailNotVerified: "This account's email has not been verified.",
banned: 'User is banned.',
blocked: 'User is blocked due to too many login attempts.',
},
register: {
missingProperties: 'Oh no missing stuff',
notAuthorized: 'The email is not authorized to create an account.',
duplicateEmail: 'The email has already been registered.',
},
},
passport: {
local: {
usernameField: 'email',
},
scope: ['email'],
// providers: {
// facebook: {
// clientID: 'change-this-fool',
// clientSecret: 'change-this-fool',
// callbackURL: p.join(config.site.domain, '/auth/facebook/callback'),
// passReqToCallback: true
// },
},
userColumns: [
'givenName',
'familyName',
'dateBanned',
'dateBlocked',
'dateMuted',
'dateVerified',
// ['array(SELECT name FROM user_roles LEFT OUTER JOIN roles ON user_roles.role_id = roles.id WHERE user_roles.user_id = users.id)', 'roles'],
[
`(SELECT array_to_json(array_agg(row_to_json(d)))
FROM (
SELECT id, name
FROM user_roles
LEFT OUTER JOIN roles ON user_roles.role_id = roles.id WHERE user_roles.user_id = users.id
ORDER BY roles.id DESC
) d
)`,
'roles',
],
],
// needs to be even
tokenLength: 64,
// needs to be even
saltLength: 16,
}