Revision c7c0ec58 snf-astakos-app/astakos/im/management/commands/user-update.py
b/snf-astakos-app/astakos/im/management/commands/user-update.py | ||
---|---|---|
34 | 34 |
from optparse import make_option |
35 | 35 |
from datetime import datetime |
36 | 36 |
|
37 |
from django.utils.translation import ugettext as _ |
|
37 | 38 |
from django.core.management.base import BaseCommand, CommandError |
38 | 39 |
from django.contrib.auth.models import Group |
39 | 40 |
from django.core.exceptions import ValidationError |
40 | 41 |
|
41 | 42 |
from astakos.im.models import AstakosUser |
42 |
from astakos.im.functions import activate, deactivate |
|
43 |
from astakos.im.functions import (activate, deactivate, |
|
44 |
set_pending_application_limit, |
|
45 |
unset_pending_application_limit) |
|
43 | 46 |
from ._common import remove_user_permission, add_user_permission |
44 | 47 |
|
45 | 48 |
|
... | ... | |
102 | 105 |
make_option('--delete-permission', |
103 | 106 |
dest='delete-permission', |
104 | 107 |
help="Delete user permission"), |
108 |
make_option('--set-max-pending', |
|
109 |
dest='pending', |
|
110 |
metavar='INT', |
|
111 |
help=("Set limit on user's maximum pending " |
|
112 |
"project applications")), |
|
113 |
make_option('--unset-max-pending', |
|
114 |
dest='unset_pending', |
|
115 |
action='store_true', |
|
116 |
default=False, |
|
117 |
help=("Restore default limit of user's maximum pending " |
|
118 |
"project applications")), |
|
105 | 119 |
) |
106 | 120 |
|
107 | 121 |
def handle(self, *args, **options): |
... | ... | |
109 | 123 |
raise CommandError("Please provide a user ID") |
110 | 124 |
|
111 | 125 |
if args[0].isdigit(): |
112 |
user = AstakosUser.objects.get(id=int(args[0])) |
|
126 |
user_id = int(args[0]) |
|
127 |
user = AstakosUser.objects.get(id=user_id) |
|
113 | 128 |
else: |
114 | 129 |
raise CommandError("Invalid ID") |
115 | 130 |
|
... | ... | |
202 | 217 |
|
203 | 218 |
if password: |
204 | 219 |
self.stdout.write('User\'s new password: %s\n' % password) |
220 |
|
|
221 |
pending = options.get('pending') |
|
222 |
if pending: |
|
223 |
try: |
|
224 |
pending = int(pending) |
|
225 |
except ValueError as e: |
|
226 |
m = _("Expected integer argument") |
|
227 |
raise CommandError(m) |
|
228 |
else: |
|
229 |
set_pending_application_limit(user_id, pending) |
|
230 |
|
|
231 |
unset_pending = options.get('unset_pending') |
|
232 |
if unset_pending: |
|
233 |
unset_pending_application_limit(user_id) |
Also available in: Unified diff