Files
talk/services/moderation/phases/karma.js
T
2018-01-22 16:11:13 -07:00

34 lines
1.1 KiB
JavaScript

const get = require('lodash/get');
// This phase checks to see if the user making the comment is allowed to do so
// considering their reliability (Trust) status.
module.exports = ctx => {
const { connectors: { services: { Karma } } } = ctx;
const trust = get(ctx, 'user.metadata.trust', null);
if (trust !== null) {
// If the user is not a reliable commenter (passed the unreliability
// threshold by having too many rejected comments) then we can change the
// status of the comment to `SYSTEM_WITHHELD`, therefore pushing the user's
// comments away from the public eye until a moderator can manage them. This of
// course can only be applied if the comment's current status is `NONE`,
// we don't want to interfere if the comment was rejected.
if (Karma.isReliable('comment', trust) === false) {
// Add the flag related to Trust to the comment.
return {
status: 'SYSTEM_WITHHELD',
actions: [
{
action_type: 'FLAG',
user_id: null,
group_id: 'TRUST',
metadata: {
trust,
},
},
],
};
}
}
};