diff --git a/server/routing/admin/api.js b/server/routing/admin/api.js index 09c3b170..ff1638d6 100644 --- a/server/routing/admin/api.js +++ b/server/routing/admin/api.js @@ -8,6 +8,7 @@ var token_db = mongojs("tokens"); var uniqid = require('uniqid'); var crypto = require('crypto'); var ObjectId = mongojs.ObjectId; +var sIO = require(path.join(__dirname, '../../apps/client.js')).socketIO; router.use(function(req, res, next) { next(); // make sure we go to the next routes and don't stop here @@ -61,7 +62,13 @@ router.route('/api/approve_thumbnail').post(function(req, res){ db.collection("frontpage_lists").update({_id: channel}, {$set:{thumbnail: thumbnail}}, {upsert: true}, function(err, docs){ db.collection(channel + "_settings").update({views:{$exists:true}}, {$set:{thumbnail: thumbnail}}, {upsert: true}, function(err, docs){ db.collection("suggested_thumbnails").remove({channel: channel}, function(err, docs){ - res.send(true); + db.collection(channel + "_settings").find(function(err, docs) { + if(docs[0].adminpass !== "") docs[0].adminpass = true; + if(docs[0].hasOwnProperty("userpass") && docs[0].userpass != "") docs[0].userpass = true; + else docs[0].userpass = false; + sIO.to(channel).emit("conf", docs); + res.send(true); + }); }); }); }); @@ -90,7 +97,13 @@ router.route('/api/approve_rules').post(function(req, res){ var rules = docs[0].rules; db.collection(channel + "_settings").update({views:{$exists:true}}, {$set:{rules: rules}}, {upsert: true}, function(err, docs){ db.collection("suggested_rules").remove({channel: channel}, function(err, docs){ - res.send(true); + db.collection(channel + "_settings").find(function(err, docs) { + if(docs[0].adminpass !== "") docs[0].adminpass = true; + if(docs[0].hasOwnProperty("userpass") && docs[0].userpass != "") docs[0].userpass = true; + else docs[0].userpass = false; + sIO.to(channel).emit("conf", docs); + res.send(true); + }); }); }); }); @@ -113,8 +126,14 @@ router.route('/api/deny_rules').post(function(req, res){ router.route('/api/remove_rules').post(function(req, res){ if(req.isAuthenticated()){ var channel = req.body.channel; - db.collection(channel + "_settings").update({views:{$exists:true}}, {$set:{rules: ""}}, function(err, docs){ - res.send(true); + db.collection(channel + "_settings").update({views:{$exists:true}}, {$set:{rules: ""}}, function(err, docs){ + db.collection(channel + "_settings").find(function(err, docs) { + if(docs[0].adminpass !== "") docs[0].adminpass = true; + if(docs[0].hasOwnProperty("userpass") && docs[0].userpass != "") docs[0].userpass = true; + else docs[0].userpass = false; + sIO.to(channel).emit("conf", docs); + res.send(true); + }); }); } else { res.send(false); @@ -129,7 +148,13 @@ router.route('/api/approve_description').post(function(req, res){ db.collection("frontpage_lists").update({_id: channel}, {$set:{description: description}}, {upsert: true}, function(err, docs){ db.collection(channel + "_settings").update({views:{$exists:true}}, {$set:{description: description}}, function(err, docs){ db.collection("suggested_descriptions").remove({channel: channel}, function(err, docs){ - res.send(true); + db.collection(channel + "_settings").find(function(err, docs) { + if(docs[0].adminpass !== "") docs[0].adminpass = true; + if(docs[0].hasOwnProperty("userpass") && docs[0].userpass != "") docs[0].userpass = true; + else docs[0].userpass = false; + sIO.to(channel).emit("conf", docs); + res.send(true); + }); }); }); }); @@ -155,7 +180,13 @@ router.route('/api/remove_thumbnail').post(function(req, res){ var channel = req.body.channel; db.collection("frontpage_lists").update({_id: channel}, {$set:{thumbnail: ""}}, function(err, docs){ db.collection(channel + "_settings").update({views:{$exists:true}}, {$set:{thumbnail: ""}}, function(err, docs){ - res.send(true); + db.collection(channel + "_settings").find(function(err, docs) { + if(docs[0].adminpass !== "") docs[0].adminpass = true; + if(docs[0].hasOwnProperty("userpass") && docs[0].userpass != "") docs[0].userpass = true; + else docs[0].userpass = false; + sIO.to(channel).emit("conf", docs); + res.send(true); + }); }); }); } else { @@ -168,7 +199,13 @@ router.route('/api/remove_description').post(function(req, res){ var channel = req.body.channel; db.collection("frontpage_lists").update({_id: channel}, {$set:{description: ""}}, function(err, docs){ db.collection(channel + "_settings").update({views:{$exists:true}}, {$set:{description: ""}}, function(err, docs){ - res.send(true); + db.collection(channel + "_settings").find(function(err, docs) { + if(docs[0].adminpass !== "") docs[0].adminpass = true; + if(docs[0].hasOwnProperty("userpass") && docs[0].userpass != "") docs[0].userpass = true; + else docs[0].userpass = false; + sIO.to(channel).emit("conf", docs); + res.send(true); + }); }); }); } else { @@ -287,9 +324,11 @@ router.route('/api/delete').post(function(req, res){ if(req.isAuthenticated()){ var list = req.body._id; db.collection(list).drop(function(err, docs){ - db.collection("frontpage_lists").remove({_id: list}, function(err, docs){ - res.send(true); - }) + db.collection(list + "_settings").drop(function(err, docs){ + db.collection("frontpage_lists").remove({_id: list}, function(err, docs){ + res.send(true); + }) + }); }); } else { res.send(false);