mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-07-13 15:38:59 +00:00
make code better
This commit is contained in:
parent
9cd323294a
commit
6e678abf22
1 changed files with 74 additions and 28 deletions
|
|
@ -1,30 +1,76 @@
|
||||||
// https://github.com/HabitRPG/habitrpg/issues/3801
|
var migrationName = '20140810_upgrade_admin_contrib_tiers';
|
||||||
// Convert contributors of Tier 7 with admin flag to Tier 8 (moderators).
|
var authorName = 'Alys'; // in case script author needs to know when their ...
|
||||||
// Convert contributors of Tier 8 to Tier 9 (staff) (all Tier 8s are admins).
|
var authorUuid = 'd904bd62-da08-416b-a816-ba797c9ee265'; //... own data is done
|
||||||
|
|
||||||
db.users.update(
|
/**
|
||||||
{
|
* https://github.com/HabitRPG/habitrpg/issues/3801
|
||||||
'contributor.admin':true,
|
* Convert Tier 8 contributors to Tier 9 (staff) (all current Tier 8s are admins).
|
||||||
'contributor.level':{$gte:7}
|
* Convert Tier 7 contributors with admin flag to Tier 8 (moderators).
|
||||||
},
|
*/
|
||||||
{
|
|
||||||
$inc: { 'contributor.level': 1 }
|
var mongo = require('mongoskin');
|
||||||
},
|
var _ = require('lodash');
|
||||||
{ multi: true }
|
|
||||||
);
|
var dbUsers = mongo.db('localhost:27017/habitrpg?auto_reconnect').collection('users');
|
||||||
|
|
||||||
|
var query = { $and: [
|
||||||
|
{ 'migration': {$ne: migrationName} },
|
||||||
|
{ 'contributor.admin':true },
|
||||||
|
{ 'contributor.level':{$gte:7} }
|
||||||
|
]};
|
||||||
|
|
||||||
|
var fields = {'migration':1,
|
||||||
|
'contributor.admin':1,
|
||||||
|
'contributor.level':1,
|
||||||
|
'auth.local.username':1,
|
||||||
|
'profile.name':1,
|
||||||
|
};
|
||||||
|
|
||||||
|
var userResults = {}; // each key is a UUID, each value is a username;
|
||||||
|
// contains only the users changed
|
||||||
|
|
||||||
|
console.warn('Updating users...');
|
||||||
|
var progressCount = 1000;
|
||||||
|
var count = 0;
|
||||||
|
dbUsers.findEach(query, fields, {batchSize:250}, function(err, user) {
|
||||||
|
if (err) { return exiting(1, 'ERROR! ' + err); }
|
||||||
|
if (!user) {
|
||||||
|
console.warn('All appropriate users found and modified.');
|
||||||
|
return displayData();
|
||||||
|
}
|
||||||
|
count++;
|
||||||
|
|
||||||
|
var set = {'migration': migrationName};
|
||||||
|
var inc = {'contributor.level':1, _v:1};
|
||||||
|
|
||||||
|
userResults[user._id] = user.profile.name;
|
||||||
|
|
||||||
|
dbUsers.update({_id:user._id}, {$set:set, $inc:inc});
|
||||||
|
|
||||||
|
if (count%progressCount == 0) console.warn(count + ' ' + user._id);
|
||||||
|
if (user._id == authorUuid) console.warn(authorName + ' processed');
|
||||||
|
if (user._id == '9' ) console.warn('lefnire' + ' processed');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
function displayData() {
|
||||||
|
console.log('users modified:');
|
||||||
|
_.each(userResults, function(name, uuid) {
|
||||||
|
console.log(name);
|
||||||
|
});
|
||||||
|
console.warn('\n' + count +
|
||||||
|
' users processed (should be 12 -- 11 listed in the Hall plus Its Bailey)\n');
|
||||||
|
return exiting(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function exiting(code, msg) {
|
||||||
|
code = code || 0; // 0 = success
|
||||||
|
if (code && !msg) { msg = 'ERROR!'; }
|
||||||
|
if (msg) {
|
||||||
|
if (code) { console.error(msg); }
|
||||||
|
else { console.log( msg); }
|
||||||
|
}
|
||||||
|
process.exit(code);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
db.users.find({_id : ObjectId("6")})
|
|
||||||
db.users.find(
|
|
||||||
{
|
|
||||||
'contributor.admin':true,
|
|
||||||
'contributor.level':{$gte:7}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'username':1,
|
|
||||||
'profile.name':1,
|
|
||||||
'contributor.level':1,
|
|
||||||
'contributor.admin':1
|
|
||||||
}
|
|
||||||
);
|
|
||||||
*/
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue