interim commit for moderator support

v1.18.x
Julian Lam 12 years ago
parent 2e184c6211
commit bdeb7b13f1

@ -50,6 +50,16 @@
<!-- END active_users -->
</div>
</div>
<div class="sidebar-block img-polaroid {moderator_block_class}">
<div class="block-header">
Moderators
</div>
<div class="block-content">
<!-- BEGIN moderators -->
<a href="/users/{moderators.username}"><img style="width: 48px; height: 48px; /*temporary*/" src="/graph/users/{moderators.username}/picture" class="img-polaroid" /></a>
<!-- END moderators -->
</div>
</div>
</div>
</div>

@ -38,6 +38,20 @@ var RDB = require('./redis.js'),
});
}
Categories.getModerators = function(cid, callback) {
RDB.smembers('cid:' + cid + ':moderators', function(err, mods) {
user.getMultipleUserFields(mods, ['username'], function(details) {
var moderators = [];
for(u in details) {
if (details.hasOwnProperty(u)) {
moderators.push({ username: details[u].username });
}
}
callback(moderators);
});
});
}
Categories.get_category = function(cids, callback) {
var name = [],
description = [],

@ -3,7 +3,8 @@ var RDB = require('./redis.js'),
marked = require('marked'),
user = require('./user.js'),
topics = require('./topics.js'),
config = require('../config.js');
config = require('../config.js'),
async = require('async');
marked.setOptions({
breaks: true

@ -30,7 +30,7 @@ var fs = require('fs');
Templates.init = function() {
loadTemplates([
'header', 'footer', 'register', 'home', 'topic', 'account', 'friends',
'login', 'reset', 'reset_code', 'logout',
'login', 'reset', 'reset_code',
'403',
'admin/header', 'admin/footer', 'admin/index',
'emails/header', 'emails/footer',

@ -81,10 +81,11 @@ var RDB = require('./redis.js'),
recent_author = replies[11];
var usernames,
has_read;
has_read,
moderators;
function generate_topic() {
if (!usernames || !has_read) return;
if (!usernames || !has_read || !moderators) return;
for (var i=0, ii=title.length; i<ii; i++) {
@ -125,7 +126,8 @@ var RDB = require('./redis.js'),
'show_topic_button' : category_id ? 'show' : 'hidden',
'category_id': category_id || 0,
'topics': topics,
'active_users': active_users
'active_users': active_users,
'moderators': moderators
});
}
@ -138,6 +140,11 @@ var RDB = require('./redis.js'),
has_read = hasRead;
generate_topic();
});
categories.getModerators(category_id, function(mods) {
moderators = mods;
generate_topic();
})
}
else {
callback({
@ -147,9 +154,6 @@ var RDB = require('./redis.js'),
'topics': []
});
}
});
});
}

@ -505,6 +505,12 @@ var config = require('../config.js'),
});
}
User.isModerator = function(uid, cid, callback) {
RDB.sismember(uid, 'cid:' + cid + ':moderators', function(err, exists) {
callback(exists);
});
}
User.reset = {
validate: function(socket, code, callback) {
if (typeof callback !== 'function') callback = undefined;

@ -207,8 +207,8 @@ var express = require('express'),
app.get('/api/:method/:id*', api_method);
app.get('/test', function(req, res) {
posts.getRawContent(11, function(post) {
res.send(JSON.stringify(post));
categories.getModerators(2, function(mods) {
res.send(JSON.stringify(mods));
});
});

Loading…
Cancel
Save