X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=server%2Fmodels%2FUser.js;h=ebda4c3256d3e5d8b1175945aef0c54b93790600;hb=937c24ab2871b31a7e531226603fc75acab7edb8;hp=37df4e6c75f91beaeca754d17e603dfe116a0c09;hpb=80b38d463c0d5dacac93bc2aeb666bbb19781e1e;p=vchess.git diff --git a/server/models/User.js b/server/models/User.js index 37df4e6c..ebda4c32 100644 --- a/server/models/User.js +++ b/server/models/User.js @@ -5,7 +5,7 @@ const sendEmail = require('../utils/mailer'); /* * Structure: - * _id: integer + * id: integer * name: varchar * email: varchar * loginToken: token on server only @@ -17,6 +17,7 @@ const sendEmail = require('../utils/mailer'); */ const UserModel = { + checkNameEmail: function(o) { return ( (!o.name || !!(o.name.match(/^[\w-]+$/))) && @@ -37,11 +38,11 @@ const UserModel = { }, // Find one user by id, name, email, or token - getOne: function(by, value, cb) { + getOne: function(by, value, fields, cb) { const delimiter = (typeof value === "string" ? "'" : ""); db.serialize(function() { const query = - "SELECT * " + + "SELECT " + fields + " " + "FROM Users " + "WHERE " + by + " = " + delimiter + value + delimiter; db.get(query, cb); @@ -107,7 +108,7 @@ const UserModel = { query = "UPDATE Users " + // Also empty the login token to invalidate future attempts - "SET loginToken = NULL" + + "SET loginToken = NULL, loginTime = NULL " + setSessionToken + " " + "WHERE id = " + id; db.run(query); @@ -139,7 +140,7 @@ const UserModel = { }, tryNotify: function(id, message) { - UserModel.getOne("id", id, (err,user) => { + UserModel.getOne("id", id, "name, email, notify", (err, user) => { if (!err && user.notify) UserModel.notify(user, message); }); }, @@ -177,7 +178,8 @@ const UserModel = { } }); }); - }, -} + } + +}; module.exports = UserModel;