diff --git a/package.json b/package.json
index bf9fb0049e..3978707596 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "nodebb",
"license": "GPL-3.0",
"description": "NodeBB Forum",
- "version": "1.3.0",
+ "version": "1.4.0",
"homepage": "http://www.nodebb.org",
"repository": {
"type": "git",
diff --git a/public/less/admin/manage/categories.less b/public/less/admin/manage/categories.less
index 76e68f340a..0f13af4deb 100644
--- a/public/less/admin/manage/categories.less
+++ b/public/less/admin/manage/categories.less
@@ -88,3 +88,30 @@ div.categories {
}
}
+
+.category {
+ .privilege-table {
+ tr > th:first-child {
+ min-width: 150px;
+ }
+
+ .privilege-table-header {
+ background: white;
+
+ th {
+ text-align: center;
+ border-top: 0;
+ text-transform: uppercase;
+ font-size: 9px;
+ }
+
+ .arrowed:after {
+ border-bottom: 1px dashed #ccc;
+ content: "";
+ width: 100%;
+ display: block;
+ padding-top: 5px;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/groups/search.js b/src/groups/search.js
index 4826579f6c..3b6bfab9cd 100644
--- a/src/groups/search.js
+++ b/src/groups/search.js
@@ -1,10 +1,10 @@
'use strict';
-var async = require('async'),
+var async = require('async');
+
+var user = require('../user');
+var db = require('./../database');
- user = require('../user'),
- db = require('./../database'),
- groups = module.parent.exports;
module.exports = function (Groups) {
@@ -17,7 +17,7 @@ module.exports = function (Groups) {
async.apply(db.getObjectValues, 'groupslug:groupname'),
function (groupNames, next) {
// Ephemeral groups and the registered-users groups are searchable
- groupNames = groups.getEphemeralGroups().concat(groupNames).concat('registered-users');
+ groupNames = Groups.getEphemeralGroups().concat(groupNames).concat('registered-users');
groupNames = groupNames.filter(function (name) {
return name.toLowerCase().indexOf(query) !== -1 && name !== 'administrators' && !Groups.isPrivilegeGroup(name);
});
diff --git a/src/socket.io/user.js b/src/socket.io/user.js
index 41c2e9c2c5..69b229b4b1 100644
--- a/src/socket.io/user.js
+++ b/src/socket.io/user.js
@@ -46,7 +46,7 @@ SocketUser.deleteAccount = function (socket, data, callback) {
user.deleteAccount(socket.uid, next);
},
function (next) {
- socket.broadcast.emit('event:user_status_change', {uid: socket.uid, status: 'offline'});
+ require('./index').server.sockets.emit('event:user_status_change', {uid: socket.uid, status: 'offline'});
events.log({
type: 'user-delete',
diff --git a/src/user/follow.js b/src/user/follow.js
index 0812c1004d..e6c9624018 100644
--- a/src/user/follow.js
+++ b/src/user/follow.js
@@ -1,9 +1,9 @@
'use strict';
-var async = require('async'),
- plugins = require('../plugins'),
- db = require('../database');
+var async = require('async');
+var plugins = require('../plugins');
+var db = require('../database');
module.exports = function (User) {
@@ -73,25 +73,22 @@ module.exports = function (User) {
if (!parseInt(uid, 10)) {
return callback(null, []);
}
-
- db.getSortedSetRevRange(type + ':' + uid, start, stop, function (err, uids) {
- if (err) {
- return callback(err);
+ async.waterfall([
+ function (next) {
+ db.getSortedSetRevRange(type + ':' + uid, start, stop, next);
+ },
+ function (uids, next) {
+ plugins.fireHook('filter:user.' + type, {
+ uids: uids,
+ uid: uid,
+ start: start,
+ stop: stop
+ }, next);
+ },
+ function (data, next) {
+ User.getUsers(data.uids, uid, next);
}
-
- plugins.fireHook('filter:user.' + type, {
- uids: uids,
- uid: uid,
- start: start,
- stop: stop
- }, function (err, data) {
- if (err) {
- return callback(err);
- }
-
- User.getUsers(data.uids, uid, callback);
- });
- });
+ ], callback);
}
User.isFollowing = function (uid, theirid, callback) {
diff --git a/src/views/admin/partials/categories/privileges.tpl b/src/views/admin/partials/categories/privileges.tpl
index 497fa71ac0..28b5f0849f 100644
--- a/src/views/admin/partials/categories/privileges.tpl
+++ b/src/views/admin/partials/categories/privileges.tpl
@@ -1,4 +1,10 @@
-
+
+
| User |
@@ -34,7 +40,13 @@
-
+
+
| Group |
diff --git a/src/views/admin/settings/post.tpl b/src/views/admin/settings/post.tpl
index 95f39c829a..0a58e3a3cf 100644
--- a/src/views/admin/settings/post.tpl
+++ b/src/views/admin/settings/post.tpl
@@ -90,7 +90,7 @@