summaryrefslogtreecommitdiff
path: root/bucky/util/adminz.js
diff options
context:
space:
mode:
Diffstat (limited to 'bucky/util/adminz.js')
-rw-r--r--bucky/util/adminz.js58
1 files changed, 47 insertions, 11 deletions
diff --git a/bucky/util/adminz.js b/bucky/util/adminz.js
index 0092dc2..7224785 100644
--- a/bucky/util/adminz.js
+++ b/bucky/util/adminz.js
@@ -1,4 +1,3 @@
-
var fs = require('fs')
var db = require('../db')
var util = require('./util')
@@ -6,6 +5,8 @@ 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 = {
@@ -13,28 +14,63 @@ var adminz = module.exports = {
},
title: function(){
- return (Math.random() < 0.8 ? [
- fortune('admin-adj'),
- fortune('admin-noun1'),
- ] : [
+ let title = [
+ fortune('admin-name'),
fortune('admin-adj'),
fortune('admin-noun1'),
- "and",
- fortune('admin-noun2'),
- ]).join(" ")
+ ]
+ 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.put("/api/checkin",
- // middleware.ensureAuthenticated,
- // )
+ 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',
+ })
+ }
+ )
},
}