summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHoussam Haidar <houssam@sdelements.com>2015-03-17 01:00:36 -0400
committerHoussam Haidar <houssam@sdelements.com>2015-03-17 01:00:36 -0400
commit6e4ca8b29426ea7c74c3a45abfc114e67ef75242 (patch)
tree5b5f149b2daf990ea1efa95128342a6a1a1674ba
parent5944cf53cb1c181864f5691c4d81cb33d9bafaee (diff)
downloadlets-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
-rwxr-xr-xmanage.js2
-rw-r--r--manager/commands/user.js67
-rw-r--r--manager/index.js10
-rw-r--r--package.json1
4 files changed, 75 insertions, 5 deletions
diff --git a/manage.js b/manage.js
index 83101d6..56f9ad9 100755
--- a/manage.js
+++ b/manage.js
@@ -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"
},