Merge remote branch 'remotes/jwandborg/feature_400-resize_images_to_fit_page'
[mediagoblin.git] / mediagoblin / gmg_commands / users.py
CommitLineData
96108ea2 1from mediagoblin.gmg_commands import util as commands_util
96108ea2
AV
2from mediagoblin.auth import lib as auth_lib
3from mediagoblin import mg_globals
4
96108ea2
AV
5
6def adduser_parser_setup(subparser):
7 subparser.add_argument(
8781ddb5 8 'username',
96108ea2
AV
9 help="Username used to login")
10 subparser.add_argument(
8781ddb5 11 'password',
96108ea2
AV
12 help="Your supersecret word to login")
13 subparser.add_argument(
8781ddb5 14 'email',
96108ea2
AV
15 help="Email to recieve notifications")
16 subparser.add_argument(
17 '-cf', '--conf_file', default='mediagoblin.ini',
18 help="Config file used to set up environment")
19
20
21def adduser(args):
22 #TODO: Lets trust admins this do not validate Emails :)
8781ddb5 23 commands_util.setup_app(args)
96108ea2 24
8781ddb5
CAW
25 db = mg_globals.database
26 users_with_username = \
27 db.User.find({
28 'username': args.username.lower()
29 }).count()
96108ea2 30
8781ddb5
CAW
31 if users_with_username:
32 print u'Sorry, a user with that name already exists.'
96108ea2 33
8781ddb5
CAW
34 else:
35 # Create the user
36 entry = db.User()
37 entry['username'] = unicode(args.username.lower())
38 entry['email'] = unicode(args.email)
39 entry['pw_hash'] = auth_lib.bcrypt_gen_password_hash(args.password)
a3fae1bd 40 entry['status'] = u'active'
8781ddb5
CAW
41 entry['email_verified'] = True
42 entry.save(validate=True)
96108ea2 43
64201d12 44 print "User created (and email marked as verified)"
96108ea2
AV
45
46
47def makeadmin_parser_setup(subparser):
48 subparser.add_argument(
8781ddb5 49 'username',
96108ea2
AV
50 help="Username to give admin level")
51 subparser.add_argument(
52 '-cf', '--conf_file', default='mediagoblin.ini',
53 help="Config file used to set up environment")
54
55
56def makeadmin(args):
8781ddb5 57 commands_util.setup_app(args)
96108ea2 58
8781ddb5 59 db = mg_globals.database
96108ea2 60
8781ddb5
CAW
61 user = db.User.one({'username':unicode(args.username.lower())})
62 if user:
63 user['is_admin'] = True
64 user.save()
65 print 'The user is now Admin'
66 else:
67 print 'The user doesn\'t exist'
96108ea2
AV
68
69
70def changepw_parser_setup(subparser):
71 subparser.add_argument(
8781ddb5 72 'username',
96108ea2
AV
73 help="Username used to login")
74 subparser.add_argument(
8781ddb5 75 'password',
96108ea2
AV
76 help="Your NEW supersecret word to login")
77 subparser.add_argument(
78 '-cf', '--conf_file', default='mediagoblin.ini',
79 help="Config file used to set up environment")
80
81
82def changepw(args):
8781ddb5 83 commands_util.setup_app(args)
96108ea2 84
8781ddb5 85 db = mg_globals.database
96108ea2 86
8781ddb5
CAW
87 user = db.User.one({'username':unicode(args.username.lower())})
88 if user:
89 user['pw_hash'] = auth_lib.bcrypt_gen_password_hash(args.password)
90 user.save()
91 print 'Password successfully changed'
92 else:
93 print 'The user doesn\'t exist'
96108ea2 94