Revision 9eb2c9a6 snf-astakos-app/astakos/im/management/commands/user-modify.py
b/snf-astakos-app/astakos/im/management/commands/user-modify.py | ||
---|---|---|
35 | 35 |
|
36 | 36 |
from optparse import make_option |
37 | 37 |
|
38 |
from django.core import management |
|
38 | 39 |
from django.core.management.base import BaseCommand, CommandError |
39 | 40 |
from django.contrib.auth.models import Group |
40 | 41 |
from django.core.exceptions import ValidationError |
42 |
from django.core.validators import validate_email |
|
41 | 43 |
|
42 | 44 |
from synnefo.util import units |
43 | 45 |
from astakos.im.models import AstakosUser, Resource |
... | ... | |
140 | 142 |
default=False, |
141 | 143 |
dest='force', |
142 | 144 |
help="Do not ask for confirmation"), |
145 |
make_option('--set-email', |
|
146 |
dest='set-email', |
|
147 |
help="Change user's email"), |
|
148 |
make_option('--delete', |
|
149 |
dest='delete', |
|
150 |
action='store_true', |
|
151 |
help="Delete user"), |
|
143 | 152 |
) |
144 | 153 |
|
145 | 154 |
@commit_on_success_strict() |
... | ... | |
297 | 306 |
resource, capacity = set_base_quota |
298 | 307 |
self.set_limit(user, resource, capacity, force) |
299 | 308 |
|
309 |
delete = options.get('delete') |
|
310 |
if delete: |
|
311 |
management.call_command('user-show', str(user.pk), |
|
312 |
list_quotas=True) |
|
313 |
m = "Are you sure you want to permanently delete the user " \ |
|
314 |
"(yes/no) ? " |
|
315 |
|
|
316 |
self.stdout.write("\n") |
|
317 |
confirm = raw_input(m) |
|
318 |
if confirm == "yes": |
|
319 |
user.delete() |
|
320 |
|
|
321 |
# Change users email address |
|
322 |
newemail = options.get('set-email', None) |
|
323 |
if newemail is not None: |
|
324 |
newemail = newemail.strip() |
|
325 |
try: |
|
326 |
validate_email(newemail) |
|
327 |
except ValidationError: |
|
328 |
m = "Invalid email address." |
|
329 |
raise CommandError(m) |
|
330 |
|
|
331 |
if AstakosUser.objects.user_exists(newemail): |
|
332 |
m = "A user with this email address already exists." |
|
333 |
raise CommandError(m) |
|
334 |
|
|
335 |
user.email = newemail |
|
336 |
user.save() |
|
337 |
|
|
300 | 338 |
def set_limit(self, user, resource, capacity, force): |
301 | 339 |
style = None |
302 | 340 |
if capacity != 'default': |
Also available in: Unified diff