umpack-express
Version:
user management pack for express framework app
94 lines (73 loc) • 2.63 kB
JavaScript
var passwordResetDataDefaults = {
resetKeyExpiresIn: '2h',
passwordMessageFunction: function(key) {
return 'key: ' + key;
},
passwordWrongEmailInstruction: function(clientIp) {
return 'You or someone with ip: ' +
clientIp + ' requested password reset. your account with this email is not registered on our site.';
},
passwordResetEnabled: false
};
var nullFunction = function () {};
var defaultLogger = {
warn: console.warn.bind(console),
error: console.error.bind(console),
info: nullFunction,
log: nullFunction,
debug: nullFunction,
trace: nullFunction
};
var config = {
accessTokenExpiresIn: '1h',
cookieAccessTokenName: 'accessToken',
passwordResetData: passwordResetDataDefaults,
deviceControl: false,
userNameCaseSensitive: false,
logger: defaultLogger,
activateOnSignup: false,
userDefaultRole: 'user'
};
config.handleOptions = function(options) {
if (!options) return;
if (options.accessTokenSecret)
this.accessTokenSecret = options.accessTokenSecret;
if (options.passwordHashSecret)
this.passwordHashSecret = options.passwordHashSecret;
if (options.accessTokenExpiresIn)
this.accessTokenExpiresIn = options.accessTokenExpiresIn;
if (options.cookieAccessTokenName)
this.cookieAccessTokenName = options.cookieAccessTokenName;
if (options.passwordResetData) {
this.passwordResetData = {};
Object.keys(passwordResetDataDefaults).forEach(function (key) {
this.passwordResetData[key] = passwordResetDataDefaults[key];
}.bind(this));
Object.keys(options.passwordResetData).forEach(function (key) {
this.passwordResetData[key] = options.passwordResetData[key];
}.bind(this));
this.passwordResetData.passwordResetEnabled = true;
} else {
this.passwordResetData = passwordResetDataDefaults;
this.passwordResetData.passwordResetEnabled = false;
}
if (options.passwordResetPhoneData) {
this.passwordResetPhoneData = options.passwordResetPhoneData;
}
if (options.deviceControl != null || options.deviceControl != undefined) {
this.deviceControl = options.deviceControl;
}
if (options.caseSensitive != null || options.caseSensitive != undefined) {
this.caseSensitive = options.caseSensitive;
}
if (options.logger) {
this.logger = options.logger;
}
if (options.activateOnSignup != null) {
this.activateOnSignup = options.activateOnSignup;
}
if (options.userDefaultRole) {
this.userDefaultRole = options.userDefaultRole;
}
};
module.exports = config;