mirror of
https://github.com/KevinMidboe/zoff.git
synced 2025-10-29 18:00:23 +00:00
Sending mail when description or thumbnail is requested
This commit is contained in:
39
server/handlers/notifications.js
Normal file
39
server/handlers/notifications.js
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
var path = require('path');
|
||||||
|
|
||||||
|
function requested_change(type, string, channel) {
|
||||||
|
try {
|
||||||
|
var nodemailer = require('nodemailer');
|
||||||
|
var mailconfig = require(path.join(__dirname, '../config/mailconfig.js'));
|
||||||
|
|
||||||
|
let transporter = nodemailer.createTransport(mailconfig);
|
||||||
|
|
||||||
|
transporter.verify(function(error, success) {
|
||||||
|
if (error) {
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
var message = "A " + type + " change was requested on <b>" + channel + "</b><br><br>New supposed value is: <br><br><b>" + string + "</b><br><br><br> \
|
||||||
|
Go to <a href='https://admin.zoff.me/'>https://admin.zoff.me/</a> to accept or decline the request.";
|
||||||
|
var msg = {
|
||||||
|
from: 'no-reply@zoff.no',
|
||||||
|
to: 'kasper@zoff.no',
|
||||||
|
subject: 'ZOFF: Requested new ' + type,
|
||||||
|
text: message,
|
||||||
|
html: message,
|
||||||
|
}
|
||||||
|
transporter.sendMail(msg, (error, info) => {
|
||||||
|
if (error) {
|
||||||
|
transporter.close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
transporter.close();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch(e) {
|
||||||
|
console.log(e);
|
||||||
|
console.log("Mail is not configured and wont work");
|
||||||
|
console.log("Seems you forgot to create a mailconfig.js in /server/config/. Have a look at the mailconfig.example.js.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports.requested_change = requested_change;
|
||||||
@@ -8,6 +8,7 @@ function thumbnail(msg, coll, guid, offline, socket) {
|
|||||||
if(docs.length > 0 && (docs[0].userpass == undefined || docs[0].userpass == "" || (msg.hasOwnProperty('pass') && docs[0].userpass == Functions.decrypt_string(socketid, msg.pass)))) {
|
if(docs.length > 0 && (docs[0].userpass == undefined || docs[0].userpass == "" || (msg.hasOwnProperty('pass') && docs[0].userpass == Functions.decrypt_string(socketid, msg.pass)))) {
|
||||||
if(docs !== null && docs.length !== 0 && docs[0].adminpass !== "" && docs[0].adminpass == hash){
|
if(docs !== null && docs.length !== 0 && docs[0].adminpass !== "" && docs[0].adminpass == hash){
|
||||||
db.collection("suggested_thumbnails").update({channel: channel}, {$set:{thumbnail: msg.thumbnail}}, {upsert:true}, function(err, docs){
|
db.collection("suggested_thumbnails").update({channel: channel}, {$set:{thumbnail: msg.thumbnail}}, {upsert:true}, function(err, docs){
|
||||||
|
Notifications.requested_change("thumbnail", msg.thumbnail, channel);
|
||||||
socket.emit("toast", "suggested_thumbnail");
|
socket.emit("toast", "suggested_thumbnail");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -28,6 +29,7 @@ function description(msg, coll, guid, offline, socket) {
|
|||||||
if(docs.length > 0 && (docs[0].userpass == undefined || docs[0].userpass == "" || (msg.hasOwnProperty('pass') && docs[0].userpass == Functions.decrypt_string(socketid, msg.pass)))) {
|
if(docs.length > 0 && (docs[0].userpass == undefined || docs[0].userpass == "" || (msg.hasOwnProperty('pass') && docs[0].userpass == Functions.decrypt_string(socketid, msg.pass)))) {
|
||||||
if(docs !== null && docs.length !== 0 && docs[0].adminpass !== "" && docs[0].adminpass == hash){
|
if(docs !== null && docs.length !== 0 && docs[0].adminpass !== "" && docs[0].adminpass == hash){
|
||||||
db.collection("suggested_descriptions").update({channel: channel}, {$set:{description: msg.description}}, {upsert:true}, function(err, docs){
|
db.collection("suggested_descriptions").update({channel: channel}, {$set:{description: msg.description}}, {upsert:true}, function(err, docs){
|
||||||
|
Notifications.requested_change("description", msg.description, channel);
|
||||||
socket.emit("toast", "suggested_description");
|
socket.emit("toast", "suggested_description");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,6 +87,7 @@ List = require('./handlers/list.js');
|
|||||||
Suggestions = require('./handlers/suggestions.js');
|
Suggestions = require('./handlers/suggestions.js');
|
||||||
ListSettings = require('./handlers/list_settings.js');
|
ListSettings = require('./handlers/list_settings.js');
|
||||||
Frontpage = require('./handlers/frontpage.js');
|
Frontpage = require('./handlers/frontpage.js');
|
||||||
|
Notifications = require('./handlers/notifications.js');
|
||||||
Search = require('./handlers/search.js');
|
Search = require('./handlers/search.js');
|
||||||
crypto = require('crypto');
|
crypto = require('crypto');
|
||||||
node_cryptojs = require('node-cryptojs-aes');
|
node_cryptojs = require('node-cryptojs-aes');
|
||||||
|
|||||||
@@ -65,7 +65,6 @@ function root(req, res, next) {
|
|||||||
javascript_file: "main.min.js",
|
javascript_file: "main.min.js",
|
||||||
captcha: res.recaptcha
|
captcha: res.recaptcha
|
||||||
}
|
}
|
||||||
console.log(data.recaptcha);
|
|
||||||
res.render('layouts/frontpage', data);
|
res.render('layouts/frontpage', data);
|
||||||
}
|
}
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user