Commit | Line | Data |
---|---|---|
96108ea2 | 1 | from mediagoblin.gmg_commands import util as commands_util |
96108ea2 AV |
2 | from mediagoblin.auth import lib as auth_lib |
3 | from mediagoblin import mg_globals | |
4 | ||
96108ea2 AV |
5 | |
6 | def 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 | ||
21 | def 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 | ||
47 | def 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 | ||
56 | def 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 | ||
70 | def 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 | ||
82 | def 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 |