Merge remote-tracking branch 'remotes/manolinux/645_gmg_adduser_prompt'

This commit is contained in:
Christopher Allan Webber 2011-12-03 21:43:15 -06:00
commit cfd20ed6a1
2 changed files with 22 additions and 6 deletions

View File

@ -18,23 +18,26 @@ from mediagoblin.gmg_commands import util as commands_util
from mediagoblin.auth import lib as auth_lib from mediagoblin.auth import lib as auth_lib
from mediagoblin import mg_globals from mediagoblin import mg_globals
def adduser_parser_setup(subparser): def adduser_parser_setup(subparser):
subparser.add_argument( subparser.add_argument(
'username', '--username','-u',
help="Username used to login") help="Username used to login")
subparser.add_argument( subparser.add_argument(
'password', '--password','-p',
help="Your supersecret word to login") help="Your supersecret word to login, beware of storing it in bash history")
subparser.add_argument( subparser.add_argument(
'email', '--email','-e',
help="Email to recieve notifications") help="Email to receive notifications")
def adduser(args): def adduser(args):
#TODO: Lets trust admins this do not validate Emails :) #TODO: Lets trust admins this do not validate Emails :)
commands_util.setup_app(args) commands_util.setup_app(args)
args.username = commands_util.prompt_if_not_set(args.username, "Username:")
args.password = commands_util.prompt_if_not_set(args.password, "Password:",True)
args.email = commands_util.prompt_if_not_set(args.email, "Email:")
db = mg_globals.database db = mg_globals.database
users_with_username = \ users_with_username = \
db.User.find({ db.User.find({

View File

@ -16,6 +16,7 @@
from mediagoblin import app from mediagoblin import app
import getpass
def setup_app(args): def setup_app(args):
@ -25,3 +26,15 @@ def setup_app(args):
mgoblin_app = app.MediaGoblinApp(args.conf_file) mgoblin_app = app.MediaGoblinApp(args.conf_file)
return mgoblin_app return mgoblin_app
def prompt_if_not_set(variable,text,password=False):
"""
Checks if the variable is None and prompt for a value if it is
"""
if (variable==None):
if not password:
variable=raw_input(text+' ')
else:
variable=getpass.getpass(text)
return variable