mirror of
https://github.com/wassname/talk.git
synced 2026-07-03 02:01:05 +08:00
34 lines
1.1 KiB
JavaScript
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,
|
|
},
|
|
},
|
|
],
|
|
};
|
|
}
|
|
}
|
|
};
|