diff options
author | Chris Moylan <chris@chrismoylan.com> | 2011-06-23 21:55:22 -0500 |
---|---|---|
committer | Chris Moylan <chris@chrismoylan.com> | 2011-06-23 21:55:22 -0500 |
commit | b6ae3aa61627be10cf6c0c85e8d04a10f994e7b7 (patch) | |
tree | ba3f09bbf0cfd8994d34310da52795c6598b14cb /mediagoblin/gmg_commands/users.py | |
parent | dcebe4b032453b31db93e0796c84de7dc8bdb005 (diff) | |
parent | c397b962de5de83aa1726f563fbb70d6927fc91b (diff) | |
download | mediagoblin-b6ae3aa61627be10cf6c0c85e8d04a10f994e7b7.tar.lz mediagoblin-b6ae3aa61627be10cf6c0c85e8d04a10f994e7b7.tar.xz mediagoblin-b6ae3aa61627be10cf6c0c85e8d04a10f994e7b7.zip |
Merge branch 'master' into test_submission_views_365
Diffstat (limited to 'mediagoblin/gmg_commands/users.py')
-rw-r--r-- | mediagoblin/gmg_commands/users.py | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/mediagoblin/gmg_commands/users.py b/mediagoblin/gmg_commands/users.py new file mode 100644 index 00000000..b4a6bbc1 --- /dev/null +++ b/mediagoblin/gmg_commands/users.py @@ -0,0 +1,94 @@ +from mediagoblin.gmg_commands import util as commands_util +from mediagoblin.auth import lib as auth_lib +from mediagoblin import mg_globals + + +def adduser_parser_setup(subparser): + subparser.add_argument( + 'username', + help="Username used to login") + subparser.add_argument( + 'password', + help="Your supersecret word to login") + subparser.add_argument( + 'email', + help="Email to recieve notifications") + subparser.add_argument( + '-cf', '--conf_file', default='mediagoblin.ini', + help="Config file used to set up environment") + + +def adduser(args): + #TODO: Lets trust admins this do not validate Emails :) + commands_util.setup_app(args) + + db = mg_globals.database + users_with_username = \ + db.User.find({ + 'username': args.username.lower() + }).count() + + if users_with_username: + print u'Sorry, a user with that name already exists.' + + else: + # Create the user + entry = db.User() + entry['username'] = unicode(args.username.lower()) + entry['email'] = unicode(args.email) + entry['pw_hash'] = auth_lib.bcrypt_gen_password_hash(args.password) + entry['status'] = u'active' + entry['email_verified'] = True + entry.save(validate=True) + + print "User created (and email marked as verified)" + + +def makeadmin_parser_setup(subparser): + subparser.add_argument( + 'username', + help="Username to give admin level") + subparser.add_argument( + '-cf', '--conf_file', default='mediagoblin.ini', + help="Config file used to set up environment") + + +def makeadmin(args): + commands_util.setup_app(args) + + db = mg_globals.database + + user = db.User.one({'username':unicode(args.username.lower())}) + if user: + user['is_admin'] = True + user.save() + print 'The user is now Admin' + else: + print 'The user doesn\'t exist' + + +def changepw_parser_setup(subparser): + subparser.add_argument( + 'username', + help="Username used to login") + subparser.add_argument( + 'password', + help="Your NEW supersecret word to login") + subparser.add_argument( + '-cf', '--conf_file', default='mediagoblin.ini', + help="Config file used to set up environment") + + +def changepw(args): + commands_util.setup_app(args) + + db = mg_globals.database + + user = db.User.one({'username':unicode(args.username.lower())}) + if user: + user['pw_hash'] = auth_lib.bcrypt_gen_password_hash(args.password) + user.save() + print 'Password successfully changed' + else: + print 'The user doesn\'t exist' + |