From df83c6bb931016f187a67825b774fa7b2d7d5d86 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Tue, 21 Nov 2017 15:29:47 -0800 Subject: [PATCH] fixed create_admin script --- app/models/user.server.model.js | 2 +- config/env/all.js | 7 +++-- scripts/create_admin.js | 50 ++++++++++++++++++++------------- 3 files changed, 35 insertions(+), 24 deletions(-) diff --git a/app/models/user.server.model.js b/app/models/user.server.model.js index fd80602d..ab0a7cc6 100755 --- a/app/models/user.server.model.js +++ b/app/models/user.server.model.js @@ -108,7 +108,7 @@ UserSchema.virtual('password').get(function () { /** * Create instance method for hashing a password */ -UserSchema.methods.hashPassword = function(password) { +UserSchema.statics.hashPassword = UserSchema.methods.hashPassword = function(password) { var encoding = 'base64'; var iterations = 10000; var keylen = 128; diff --git a/config/env/all.js b/config/env/all.js index 583f366f..eba2c9f0 100755 --- a/config/env/all.js +++ b/config/env/all.js @@ -16,10 +16,11 @@ module.exports = { }, - admin:{ + admin: { email: process.env.ADMIN_EMAIL || 'admin@admin.com', - username: process.env.ADMIN_USERNAME || 'root', - password: process.env.ADMIN_PASSWORD || 'root', + username: process.env.ADMIN_USERNAME || 'admin', + password: process.env.ADMIN_PASSWORD || 'admin', + roles: ['user', 'admin'] }, redisUrl: process.env.REDIS_URL || 'redis://127.0.0.1:6379', diff --git a/scripts/create_admin.js b/scripts/create_admin.js index 6d5ee5c6..ea3b1469 100644 --- a/scripts/create_admin.js +++ b/scripts/create_admin.js @@ -3,36 +3,46 @@ var config = require('../config/config'), chalk = require('chalk'); exports.run = function(app, db, cb) { + console.log(chalk.green('Creating the Admin Account')); var User = mongoose.model('User'); - var email = 'admin@admin.com' || config.admin.email; + var username = config.admin.username; + + console.log('username: ' + config.admin.username); + console.log('password: ' + config.admin.password); - var newUser = new User({ + var newUserObj = { firstName: 'Admin', lastName: 'Account', - email: email, - username: 'root' || config.admin.username, - password: 'root' || config.admin.password, - provider: 'local', - roles: ['admin', 'user'] - }); + email: config.admin.email, + username: username, + roles: config.admin.roles + }; - User.findOne({email: email}, function (err, user) { + var options = { + upsert: true, + new: true, + setDefaultsOnInsert: true + } + + User.findOneAndUpdate({username: username}, newUserObj, options, function (err, currUser1) { if (err) { - cb(err); + return cb(err); } - if(!user){ - newUser.save(function (userErr) { - if (userErr) { - return cb(userErr); - } - console.log(chalk.green('Successfully created Admin Account')); - - cb(); - }); + if(!currUser1){ + return cb(new Error('Couldn\'t create admin account')) } else { - cb('User already exists!'); + + currUser1.password = config.admin.password; + currUser1.save(function(err, currUser2){ + if (err) { + return cb(err); + } + + console.log(chalk.green('Successfully created/updated Admin Account')); + return cb(); + }); } }); }