var fs = require('fs') var db = require('../db') var util = require('./util') var upload = require('./upload') var fortune = require('../db/fortune') var middleware = require('./middleware') var privacy = require('../app/privacy') var bucky = require('../app/bucky') var auth = require('./auth') var adminz = module.exports = { init: function(){ }, title: function(){ let title = [ fortune('admin-name'), fortune('admin-adj'), fortune('admin-noun1'), ] if (Math.random() < 0.2) { title = title.concat([ "and", fortune('admin-noun2') ]) } return title.join(" ") }, ensureUsernames: function (req, res, next){ db.getUsernames().then(function(usernames){ res.usernames = usernames next() }) }, route: function(app){ app.get("/adminz", middleware.ensureAuthenticated, privacy.checkIsAdmin, function(req, res){ res.render("pages/adminz", { title: adminz.title() }) }) app.get("/api/admin", middleware.ensureAuthenticated, privacy.checkIsAdmin, adminz.ensureUsernames, bucky.ensureLastlog, bucky.bumpLastSeen, bucky.checkMail, function(req, res){ res.json({ status: 'ok', lastlog: res.lastlog, usernames: res.usernames, mail: res.mail, }) } ) app.put("/api/admin/password/", middleware.ensureAuthenticated, privacy.checkIsAdmin, bucky.ensureUserFromBody, auth.changePasswordDangerously, function(req, res){ res.json({ status: 'ok', }) } ) }, }