UNPKG

smol

Version:

Very smol website builder

48 lines (41 loc) 1.16 kB
const vault = require('./vault.js'); var records = vault.init(); exports.findById = (id, cb) => { process.nextTick(() => { var idx = id - 1; if (records[idx]) { cb(null, records[idx]); } else { cb(new Error('User ' + id + ' does not exist')); } }); } exports.findByUsername = (username, cb) => { process.nextTick(() => { for (var i = 0, len = records.length; i < len; i++) { var record = records[i]; if (record.username === username) { return cb(null, record); } } return cb(null, null); }); } exports.empty = () => { return (records.length == 0); } exports.create = (username, password) => { var maxid = 0; for (var i = 0; i < records.length; i++) { if (records[i].id && records[i].id > maxid) maxid = records[i]; } maxid++; var {salt, hash} = vault.hashPassword(password); var user = {username: username, salt: salt, password: hash, id: maxid}; records.push(user); vault.update(records); } exports.validate = (user, password) => { return vault.validPassword(user.password, user.salt, password); }