diff --git a/public/css/style.less b/public/css/style.less index 751e1dfe38..3e220381c9 100644 --- a/public/css/style.less +++ b/public/css/style.less @@ -324,11 +324,15 @@ footer.footer { } .users-box{ - display:inline-block; - margin-right:20px; + display: inline-block; + margin-right: 20px; margin-top: 20px; - text-align:center; - vertical-align:top; + text-align: center; + vertical-align: top; + max-width: 103px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; } a:hover { diff --git a/public/src/app.js b/public/src/app.js index d032a303b4..973038de98 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -23,6 +23,7 @@ var socket, }); socket.on('event:alert', function(data) { + console.log('ALERT'); app.alert(data); }); diff --git a/public/templates/admin/users.tpl b/public/templates/admin/users.tpl index 40875f307e..56bc1f8e2a 100644 --- a/public/templates/admin/users.tpl +++ b/public/templates/admin/users.tpl @@ -90,27 +90,9 @@ var removeBtn = parent.find('.remove-admin-btn'); var uid = parent.attr('data-uid'); - var userData = { - uid:uid, - _csrf:$('#csrf_token').val() - }; - - $.post('/admin/makeadmin', - userData, - function(data) { - app.alert({ - 'alert_id': 'user_made_admin', - type: 'success', - title: 'User Modified', - message: 'This user is an administrator now!', - timeout: 2000 - }); - - makeBtn.hide(); - removeBtn.show(); - } - ); - + socket.emit('api:admin.user.makeAdmin', uid); + makeBtn.hide(); + removeBtn.show(); return false; }); @@ -121,28 +103,9 @@ var makeBtn = parent.find('.make-admin-btn'); var uid = parent.attr('data-uid'); - var userData = { - uid:uid, - _csrf:$('#csrf_token').val() - }; - - $.post('/admin/removeadmin', - userData, - function(data) { - app.alert({ - 'alert_id': 'user_removed_admin', - type: 'success', - title: 'User Modified', - message: 'This user is no longer an administrator!', - timeout: 2000 - }); - - makeBtn.show(); - removeBtn.hide(); - } - ); - - + socket.emit('api:admin.user.removeAdmin', uid); + makeBtn.show(); + removeBtn.hide(); return false; }); diff --git a/src/admin/user.js b/src/admin/user.js new file mode 100644 index 0000000000..473fb0634c --- /dev/null +++ b/src/admin/user.js @@ -0,0 +1,39 @@ +var RDB = require('./../redis.js'), + utils = require('./../../public/src/utils.js'), + user = require('./../user.js'); + +(function(UserAdmin) { + + UserAdmin.makeAdmin = function(uid, theirid, socket) { + user.isAdministrator(uid, function(isAdmin) { + if(isAdmin) { + user.makeAdministrator(theirid, function(data) { + socket.emit('event:alert', { + title: 'User Modified', + message: 'This user is now an administrator!', + type: 'success', + timeout: 2000 + }); + }); + } + }); + }; + + UserAdmin.removeAdmin = function(uid, theirid, socket) { + user.isAdministrator(uid, function(isAdmin) { + if(isAdmin) { + user.removeAdministrator(theirid, function(data) { + + socket.emit('event:alert', { + title: 'User Modified', + message: 'This user is no longer an administrator!', + type: 'success', + timeout: 2000 + }); + }); + } + }); + }; + +}(exports)); + diff --git a/src/routes/admin.js b/src/routes/admin.js index 615a412cfb..b40ec0b9d9 100644 --- a/src/routes/admin.js +++ b/src/routes/admin.js @@ -96,39 +96,7 @@ var user = require('./../user.js'), app.get('/api/admin/:method*', api_method); - app.post('/admin/makeadmin', function(req, res){ - - if(!req.user) - return res.redirect('/403'); - - user.isAdministrator(req.user.uid, function(isAdmin) { - if(isAdmin) { - user.makeAdministrator(req.body.uid, function(data) { - res.send(data); - }); - } - else - res.redirect('/403'); - }); - }); - - app.post('/admin/removeadmin', function(req, res){ - - if(!req.user) - return res.redirect('/403'); - - user.isAdministrator(req.user.uid, function(isAdmin) { - if(isAdmin) { - user.removeAdministrator(req.body.uid, function(data) { - res.send(data); - }); - } - else - res.redirect('/403'); - }); - - - }); + }; diff --git a/src/websockets.js b/src/websockets.js index 867dd7ffff..c7577c820a 100644 --- a/src/websockets.js +++ b/src/websockets.js @@ -14,7 +14,8 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }), meta = require('./meta.js'), async = require('async'), admin = { - 'categories': require('./admin/categories.js') + 'categories': require('./admin/categories.js'), + 'user': require('./admin/user.js') }; (function(io) { @@ -411,7 +412,19 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }), socket.on('api:admin.categories.update', function(data) { admin.categories.update(data, socket); - }) + }); + + socket.on('api:admin.user.makeAdmin', function(theirid) { + if(uid && uid > 0) { + admin.user.makeAdmin(uid, theirid, socket); + } + }); + + socket.on('api:admin.user.removeAdmin', function(theirid) { + if(uid && uid > 0) { + admin.user.removeAdmin(uid, theirid, socket); + } + }); }); }(SocketIO));