Revision 0caf68e9 snf-astakos-app/astakos/im/management/commands/user_update.py

b/snf-astakos-app/astakos/im/management/commands/user_update.py
32 32
# or implied, of GRNET S.A.
33 33

  
34 34
from optparse import make_option
35
from datetime import datetime
35 36

  
36 37
from django.core.management.base import BaseCommand, CommandError
37
from django.contrib.auth.models import Group, Permission
38
from django.contrib.auth.models import Permission
38 39
from django.contrib.contenttypes.models import ContentType
39 40
from django.core.exceptions import ValidationError
41
from django.db.utils import IntegrityError
40 42

  
41
from astakos.im.models import AstakosUser
43
from astakos.im.models import AstakosUser, AstakosGroup, Membership
42 44
from ._common import remove_user_permission, add_user_permission
43 45

  
44 46
class Command(BaseCommand):
......
135 137
        groupname = options.get('add-group')
136 138
        if groupname is not None:
137 139
            try:
138
                group = Group.objects.get(name=groupname)
139
                user.groups.add(group)
140
            except Group.DoesNotExist, e:
140
                group = AstakosGroup.objects.get(name=groupname)
141
                m = Membership(person=user, group=group, date_joined=datetime.now())
142
                m.save()
143
            except AstakosGroup.DoesNotExist, e:
141 144
                self.stdout.write("Group named %s does not exist\n" % groupname)
145
            except IntegrityError, e:
146
                self.stdout.write("User is already member of %s\n" % groupname)
142 147
        
143 148
        groupname = options.get('delete-group')
144 149
        if groupname is not None:
145 150
            try:
146
                group = Group.objects.get(name=groupname)
147
                user.groups.remove(group)
148
            except Group.DoesNotExist, e:
151
                group = AstakosGroup.objects.get(name=groupname)
152
                m = Membership.objects.get(person=user, group=group)
153
                m.delete()
154
            except AstakosGroup.DoesNotExist, e:
149 155
                self.stdout.write("Group named %s does not exist\n" % groupname)
156
            except Membership.DoesNotExist, e:
157
                self.stdout.write("User is not a member of %s\n" % groupname)
150 158
        
151 159
        pname = options.get('add-permission')
152 160
        if pname is not None:

Also available in: Unified diff