ketr.photos/util/resend.js
James Ketrenos 814bac8b78 Applied DRY to authentication mail.
Added user.restriction to indicate if an account username/password is correct, but the account is under restriction for various reasons.

Signed-off-by: James Ketrenos <james_git@ketrenos.com>
2018-10-17 22:53:39 -07:00

67 lines
1.6 KiB
JavaScript

"use strict";
const config = require("config"),
{ sendVerifyMail } = require("../server/lib/mail");
const basePath = "/" + config.get("basePath").replace(/^\/+/, "").replace(/\/+$/, "") + "/";
const req = {
hostname: "ketrenos.com",
protocol: "https",
data: {
basePath: (basePath == "//") ? "/" : basePath
}
};
const app = req.app = {
get: function(key) {
return req.data[key];
},
set: function(key, value) {
req.data[key] = value;
return value;
}
};
if (config.has("admin.mail") &&
config.has("smtp.host") &&
config.has("smtp.sender")) {
app.set("transporter", require("nodemailer").createTransport({
host: config.get("smtp.host"),
pool: true,
port: config.has("smtp.port") ? config.get("smtp.port") : 25
}));
} else {
console.log("SMTP disabled. To enable SMTP, configure admin.mail, smtp.host, and smtp.sender");
}
if (process.argv.length != 3) {
console.log("usage: node resend UID");
process.exit(-1);
}
require("../server/db/users").then(function(db) {
let id = parseInt(process.argv[2]);
return db.sequelize.query("SELECT * FROM users WHERE id=:id", {
replacements: {
id: id
},
type: db.Sequelize.QueryTypes.SELECT,
raw: true
}).then(function(users) {
if (users.length != 1) {
console.log("User not found: " + id);
process.exit(-1);
}
return users[0];
}).then(function(user) {
return sendVerifyMail(db, req, user);
}).then(function() {
process.exit(0);
}).catch(function(error) {
console.log("Error sending verification mail: ", error);
});
});