'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, }