refactor: flag sanity checks, +feat: flag limits
- Added new config flag:limitPerTarget, to disallow flags after an item has already been flagged x times (default 0, or infinite) - New zset flags:byTarget, score is the number of times a flag has been made against that item - "already-flagged" translation key removed, now "post-already-flagged" or "user-already-flagged" -- this fixed bug where flagging a user you've already flagged would tell you you've already flagged this post already. - Refactored Flags.canFlag to throw errors only, instead of returning boolean - Updated ACP form inputs for reputation settings page to be more bootstrappy - +1 upgrade scriptv1.18.x
parent
cd94c24a86
commit
e3e55f25d0
@ -0,0 +1,15 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
const db = require('../../database');
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
name: 'New sorted set for tracking flags by target',
|
||||||
|
timestamp: Date.UTC(2020, 6, 15),
|
||||||
|
method: async () => {
|
||||||
|
const flags = await db.getSortedSetRange('flags:hash', 0, -1);
|
||||||
|
await Promise.all(flags.map(async (flag) => {
|
||||||
|
flag = flag.split(':').slice(0, 2);
|
||||||
|
await db.sortedSetIncrBy('flags:byTarget', 1, flag.join(':'));
|
||||||
|
}));
|
||||||
|
},
|
||||||
|
};
|
Loading…
Reference in New Issue