diff --git a/app/utils/StateFunctions.js b/app/utils/StateFunctions.js index e938f140a60957ef7c640ff88e73d55d41e59a28..901dd23a49e5473266f5e95d808657139d626591 100644 --- a/app/utils/StateFunctions.js +++ b/app/utils/StateFunctions.js @@ -52,6 +52,12 @@ export function contentStats(content) { let hasFlag = false content.get('active_votes').forEach(v => { const rshares = String(v.get('rshares')) + const voterRepLog10 = repLog10(v.get('reputation')) + if(voterRepLog10) { + // Don't allow low rep users to gray out everyone's posts. + if(voterRepLog10 < 25) + return + } const neg = rshares.substring(0, 1) === '-' if(neg) hasFlag = true // Prevent tiny downvotes (less than 9 digits) from hiding content diff --git a/scripts/send_waiting_list_invites.js b/scripts/send_waiting_list_invites.js new file mode 100644 index 0000000000000000000000000000000000000000..b68edc936964255b6349f8a1acba98f7fa15cf8e --- /dev/null +++ b/scripts/send_waiting_list_invites.js @@ -0,0 +1,26 @@ +import models from '../db/models'; +import sendEmail from '../server/sendEmail'; + +models.User.findAll({ + attributes: ['id', 'email'], + where: {waiting_list: true, email: {$ne: null}}, + order: 'id DESC', + limit: 2 +}).then(users => { + for(let u of users) { + const email = u.email.toLowerCase(); + const m = email.match(/\.(\w+)$/); + if (!m || m[1] === 'ru') continue; + const confirmation_code = Math.random().toString(36).slice(2); + const i_attrs = { + provider: 'email', + user_id: u.id, + email, + verified: false, + confirmation_code + }; + models.Identity.create(i_attrs).then(() => { + sendEmail('waiting_list_invite', email, {confirmation_code}); + }); + } +}); diff --git a/server/server_pages/enter_confirm_email.jsx b/server/server_pages/enter_confirm_email.jsx index f04b1800be580b2870c0910fa3fa4810d86e2745..75c4ac5ce1dbd0b7b4e47ed0fe56348f22c86090 100644 --- a/server/server_pages/enter_confirm_email.jsx +++ b/server/server_pages/enter_confirm_email.jsx @@ -54,7 +54,7 @@ function *confirmEmailHandler() { } if (!eid.verified) { yield eid.update({verified: true}); - yield models.User.update({email: eid.email}, {where: {id: eid.user_id}}); + yield models.User.update({email: eid.email, waiting_list: false}, {where: {id: eid.user_id}}); } this.redirect('/create_account'); }