Revision 9eb2c9a6

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