mirror of
				https://github.com/HabitRPG/habitica.git
				synced 2025-10-31 05:05:07 +01:00 
			
		
		
		
	* common: import lodash modules separately * remove test/content from .eslintignore, fix with eslint --fix content/index * lint test/content * lint content/index except for lodash methods * upgrade server/models * upgrade server/middlewares and server/libs * port server/controllers/top-level * port server/controllers/api-v3 * port views and tests * client old port lodash and _(, missing _. * upgrade client-old * port common/script (root level files only) * port common/script/fns * port common/libs * port common/script/ops * port common/script/content and common/script/libs/shops.js * misc fixes * misc fixes * misc fixes * more tests fixes * fix payments test stubbing, down to 2 failing tests * remove more instances of lodash wrapping * fix bug where toObject does not clone object * fix tests * upgrade migration or add lodash 4 note * update shrinkwrap * fix linting * upgrade eslint-config-habitrpg * update shrinkwrap * recompile shrinkwrap
		
			
				
	
	
		
			38 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // EMAIL="x@y.com" node ./migrations/manual_password_reset.js
 | |
| // Be sure to have PRODUCTION_DB in your config.json
 | |
| 
 | |
| // IMPORTANT: this script isn't updated to use the new password encryption that uses bcrypt
 | |
| // using it will break accounts and should not be used until upgraded
 | |
| 
 | |
| var nconf = require('nconf'),
 | |
|   path = require('path');
 | |
| nconf.argv().env().file('user', path.join(path.resolve(__dirname, '../config.json')));
 | |
| 
 | |
| var Users = require('mongoskin').db(nconf.get("PRODUCTION_DB:URL"), nconf.get("PRODUCTION_DB").CREDS).collection('users'),
 | |
|   async = require('async'),
 | |
|   utils = require('../website/server/utils'),
 | |
|   salt = utils.makeSalt(),
 | |
|   newPassword =  utils.makeSalt(), // use a salt as the new password too (they'll change it later)
 | |
|   hashed_password = utils.encryptPassword(newPassword, salt);
 | |
| 
 | |
| async.waterfall([
 | |
|   function(cb){
 | |
|     Users.findItems({'auth.local.email':nconf.get("EMAIL")}, {auth:1}, cb);
 | |
|   },
 | |
|   function(users, cb){
 | |
|     if (users.length<1) return cb("User not found for that email");
 | |
|     if (users.length>1) return cb("Multiple users for that email");
 | |
|     var user = users[0];
 | |
|     console.dir({username:user.auth.local.username, password: newPassword});
 | |
|     Users.update({_id:user._id}, {
 | |
|       $set:{
 | |
|         'auth.local.salt': salt,
 | |
|         'auth.local.hashed_password': hashed_password,
 | |
|         'preferences.sleep': true
 | |
|       }
 | |
|     }, cb)
 | |
|   }
 | |
| ], function(err){
 | |
|   if (err) console.log(err);
 | |
|   process.exit()
 | |
| }); |