v1.18.x
Barış Soner Uşaklı 6 years ago
commit a0f57c642c

@ -185,5 +185,8 @@
"cannot-block-self": "You cannot block yourself!",
"cannot-block-privileged": "You cannot block administrators or global moderators",
"cannot-block-guest": "Guest are not able to block other users",
"already-blocked": "This user is already blocked",
"already-unblocked": "This user is already unblocked",
"no-connection": "There seems to be a problem with your internet connection"
}

@ -18,16 +18,16 @@
"mongo.resident-memory": "Mémoire résidente",
"mongo.virtual-memory": "Mémoire virtuelle",
"mongo.mapped-memory": "Configuration de mémoire",
"mongo.bytes-in": "Bytes In",
"mongo.bytes-out": "Bytes Out",
"mongo.num-requests": "Number of Requests",
"mongo.bytes-in": "Octets entrés",
"mongo.bytes-out": "Octets sortants",
"mongo.num-requests": "Nombre de requêtes",
"mongo.raw-info": "Informations brutes MongoDB",
"redis": "Redis",
"redis.version": "Version de Redis",
"redis.keys": "Keys",
"redis.expires": "Expires",
"redis.avg-ttl": "Average TTL",
"redis.keys": "Clés",
"redis.expires": "Expire",
"redis.avg-ttl": "TTL moyen",
"redis.connected-clients": "Clients connectés",
"redis.connected-slaves": "Esclaves connectés",
"redis.blocked-clients": "Clients bloqués",
@ -36,10 +36,10 @@
"redis.total-connections-recieved": "Connexions totales reçues",
"redis.total-commands-processed": "Commandes totales exécutées",
"redis.iops": "Opérations instantanées par seconde",
"redis.iinput": "Instantaneous Input Per Second",
"redis.ioutput": "Instantaneous Output Per Second",
"redis.total-input": "Total Input",
"redis.total-output": "Total Ouput",
"redis.iinput": "Entrée instantanée par seconde",
"redis.ioutput": "Sortie instantanée par seconde",
"redis.total-input": "Total des entrées",
"redis.total-output": "Total des sorties",
"redis.keyspace-hits": "Keyspace Hits",
"redis.keyspace-misses": "Keyspace Misses",

@ -1,6 +1,6 @@
{
"test-email.subject": "Test Email",
"password-reset-requested": "Password Reset Requested!",
"test-email.subject": "Email Test",
"password-reset-requested": "Demande de réinitialisation de mot de passe!",
"welcome-to": "Bienvenue sur %1",
"invite": "Invitation de %1",
"greeting_no_name": "Bonjour",

@ -8,7 +8,7 @@
"outgoing_link_message": "Vous quittez %1",
"continue_to": "Continuer vers %1",
"return_to": "Revenir à %1",
"new_notification": "You have a new notification",
"new_notification": "Vous avez une nouvelle notification",
"you_have_unread_notifications": "Vous avez des notifications non-lues",
"all": "Tout",
"topics": "Sujets",

@ -1,6 +1,6 @@
{
"test-email.subject": "Test Email",
"password-reset-requested": "Password Reset Requested!",
"test-email.subject": "Пробна е-пошта",
"password-reset-requested": "Захтевано је поништавање лозинке!",
"welcome-to": "Добродошли на %1",
"invite": "Позивница од %1",
"greeting_no_name": "Здраво",

@ -8,7 +8,7 @@
"outgoing_link_message": "Сада напуштате %1",
"continue_to": "Продужи на %1",
"return_to": "Врати се на %1",
"new_notification": "You have a new notification",
"new_notification": "Имате ново обавештење",
"you_have_unread_notifications": "Имате непрочитана обавештења.",
"all": "Све",
"topics": "Теме",

@ -220,10 +220,6 @@ module.exports = function (SocketUser) {
},
function (results, next) {
isBlocked = results.is;
if (!results.can && !isBlocked) {
return next(new Error('[[error:cannot-block-privileged]]'));
}
user.blocks[isBlocked ? 'remove' : 'add'](data.blockeeUid, data.blockerUid, next);
},
], function (err) {

@ -23,7 +23,15 @@ module.exports = function (User) {
};
User.blocks.can = function (callerUid, blockerUid, blockeeUid, callback) {
// Guests can't block
if (blockerUid === 0 || blockeeUid === 0) {
return setImmediate(callback, new Error('[[error:cannot-block-guest]]'));
} else if (blockerUid === blockeeUid) {
return setImmediate(callback, new Error('[[error:cannot-block-self]]'));
}
// Administrators and global moderators cannot be blocked
// Only admins/mods can block users as another user
async.waterfall([
function (next) {
async.parallel({
@ -37,12 +45,13 @@ module.exports = function (User) {
},
function (results, next) {
if (results.isBlockeeAdminOrMod) {
return callback(null, false);
return callback(new Error('[[error:cannot-block-privileged]]'));
}
if (parseInt(callerUid, 10) !== parseInt(blockerUid, 10) && !results.isCallerAdminOrMod) {
return callback(null, false);
return callback(new Error());
}
next(null, true);
next();
},
], callback);
};
@ -94,12 +103,14 @@ module.exports = function (User) {
};
User.blocks.applyChecks = function (block, targetUid, uid, callback) {
if (parseInt(targetUid, 10) === parseInt(uid, 10)) {
return setImmediate(callback, new Error('[[error:cannot-block-self]]'));
}
User.blocks.can(uid, uid, targetUid, function (err) {
if (err) {
return callback(err);
}
User.blocks.is(targetUid, uid, function (err, is) {
callback(err || (is === block ? new Error('[[error:already-' + (block ? 'blocked' : 'unblocked') + ']]') : null));
User.blocks.is(targetUid, uid, function (err, is) {
callback(err || (is === block ? new Error('[[error:already-' + (block ? 'blocked' : 'unblocked') + ']]') : null));
});
});
};

Loading…
Cancel
Save