You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
2.1 KiB
JavaScript

11 years ago
var utils = require('../../public/src/utils'),
user = require('../user'),
groups = require('../groups');
(function(UserAdmin) {
UserAdmin.makeAdmin = function(uid, theirid, socket) {
user.isAdministrator(uid, function(err, isAdmin) {
if (isAdmin) {
groups.getGidFromName('Administrators', function(err, gid) {
groups.join(gid, theirid, function(err) {
if (!err) {
socket.emit('event:alert', {
title: 'User Modified',
message: 'This user is now an administrator!',
type: 'success',
timeout: 2000
});
}
});
});
} else {
socket.emit('event:alert', {
title: 'Warning',
message: 'You need to be an administrator to make someone else an administrator!',
type: 'warning',
timeout: 2000
});
}
});
};
UserAdmin.removeAdmin = function(uid, theirid, socket) {
user.isAdministrator(uid, function(err, isAdmin) {
if (isAdmin) {
groups.getGidFromName('Administrators', function(err, gid) {
groups.leave(gid, theirid, function(err) {
if (!err) {
socket.emit('event:alert', {
title: 'User Modified',
message: 'This user is no longer an administrator!',
type: 'success',
timeout: 2000
});
}
});
});
}
});
};
11 years ago
UserAdmin.banUser = function(uid, theirid, socket, callback) {
user.isAdministrator(uid, function(err, amIAdmin) {
user.isAdministrator(theirid, function(err, areTheyAdmin) {
if (amIAdmin && !areTheyAdmin) {
user.ban(theirid, function(err, result) {
11 years ago
callback(true);
socket.emit('event:alert', {
title: 'User Banned',
message: 'This user is banned!',
type: 'success',
timeout: 2000
});
});
}
});
});
};
UserAdmin.unbanUser = function(uid, theirid, socket) {
user.isAdministrator(uid, function(err, amIAdmin) {
if (amIAdmin) {
user.unban(theirid, function(err, result) {
socket.emit('event:alert', {
title: 'User Unbanned',
message: 'This user is unbanned!',
type: 'success',
timeout: 2000
});
});
}
});
};
}(exports));