diff options
author | Houssam Haidar <houssam@sdelements.com> | 2015-03-17 01:00:36 -0400 |
---|---|---|
committer | Houssam Haidar <houssam@sdelements.com> | 2015-03-17 01:00:36 -0400 |
commit | 6e4ca8b29426ea7c74c3a45abfc114e67ef75242 (patch) | |
tree | 5b5f149b2daf990ea1efa95128342a6a1a1674ba | |
parent | 5944cf53cb1c181864f5691c4d81cb33d9bafaee (diff) | |
download | lets-chat-origin/feature/cmd_line_manage_users.zip lets-chat-origin/feature/cmd_line_manage_users.tar.gz lets-chat-origin/feature/cmd_line_manage_users.tar.bz2 |
Create user via promptorigin/feature/cmd_line_manage_users
-rwxr-xr-x | manage.js | 2 | ||||
-rw-r--r-- | manager/commands/user.js | 67 | ||||
-rw-r--r-- | manager/index.js | 10 | ||||
-rw-r--r-- | package.json | 1 |
4 files changed, 75 insertions, 5 deletions
@@ -2,4 +2,4 @@ var Manager = require('./manager'); -new Manager(); +new Manager();
\ No newline at end of file diff --git a/manager/commands/user.js b/manager/commands/user.js index 2ad1085..e280be9 100644 --- a/manager/commands/user.js +++ b/manager/commands/user.js @@ -10,6 +10,8 @@ function User(options) { this.core = options.core; + this.prompt = options.prompt; + this.program .command('user [action] [uid]') .description('Do something with a user') @@ -28,6 +30,9 @@ function User(options) { case 'deactivate': that.deactivate(id); break; + case 'create': + that.create(); + break; default: throw new Error('Unknown command'); } @@ -37,7 +42,7 @@ function User(options) { User.prototype.deactivate = function(id, cb) { - this.core.account.activate(id, function(err, user) { + this.core.account.deactivate(id, function(err, user) { if (err) { throw new Error(err); return; @@ -80,7 +85,6 @@ User.prototype.lookup = function(id) { } if (!user) { console.log('no user found'); - return; } if (user) { console.log(user.toJSON()); @@ -90,4 +94,63 @@ User.prototype.lookup = function(id) { } +User.prototype.create = function() { + + var that = this; + + var schema = { + properties: { + email: { + description: 'Email', + required: true + }, + username: { + description: 'Username', + required: true + }, + firstName: { + description: 'First Name', + required: true + }, + lastName: { + description: 'Last Name', + required: true + }, + displayName: { + description: 'Display Name', + required: true + }, + password: { + description: 'Password', + hidden: true, + required: true + } + } + }; + + this.prompt.get(schema, function (err, result) { + + that.core.account.create('local', result, function(err, user) { + + if (err) { + throw new Error(err); + return; + } + + if (!user) { + console.log('no user found'); + } + + if (user) { + console.log('Created user %s, with email %s', user._id, user.email); + } + + process.exit(0); + + }); + + }); + +} + module.exports = User;
\ No newline at end of file diff --git a/manager/index.js b/manager/index.js index a5b5c74..cedec24 100644 --- a/manager/index.js +++ b/manager/index.js @@ -3,7 +3,8 @@ var _ = require('lodash'), program = require('commander'), all = require('require-tree'), - mongoose = require('mongoose'); + mongoose = require('mongoose'), + prompt = require('prompt'); var settings = require('../app/config'), models = all('../app/models'), @@ -18,6 +19,10 @@ function Manager() { this.program .version('0.0.1'); + this.prompt = prompt; + + this.prompt.start(); + this.commands = {}; mongoose.connection.on('error', function (err) { @@ -44,7 +49,8 @@ function Manager() { that.commands[id] = new Command({ program: program, models: models, - core: core + core: core, + prompt: prompt }); }); diff --git a/package.json b/package.json index fa48b0a..7655719 100644 --- a/package.json +++ b/package.json @@ -88,6 +88,7 @@ "passport-http-bearer": "^1.0.1", "passport-local": "^1.0.0", "passport.socketio": "^3.4.1", + "prompt": "^0.2.14", "require-directory": "~2.0.0", "require-tree": "~0.3.3" }, |