@@ -199,9 +199,7 @@ def join(self, user, **kwargs):
199
199
if user == user .get_anonymous ():
200
200
raise ValueError ("The invited user cannot be anonymous" )
201
201
member , created = GroupMember .objects .get_or_create (group = self , user = user , defaults = kwargs )
202
- if created :
203
- user .groups .add (self .group )
204
- else :
202
+ if not created :
205
203
logger .warning ("The invited user \" {0}\" is already a member" .format (user .username ))
206
204
207
205
def leave (self , user , ** kwargs ):
@@ -246,6 +244,15 @@ class GroupMember(models.Model):
246
244
])
247
245
joined = models .DateTimeField (default = now )
248
246
247
+ def save (self , * args , ** kwargs ):
248
+ # add django.contrib.auth.group to user
249
+ self .user .groups .add (self .group .group )
250
+ super (GroupMember , self ).save (* args , ** kwargs )
251
+
252
+ def delete (self , * args , ** kwargs ):
253
+ self .user .groups .remove (self .group .group )
254
+ super (GroupMember , self ).delete (* args , ** kwargs )
255
+
249
256
250
257
def group_pre_delete (instance , sender , ** kwargs ):
251
258
"""Make sure that the anonymous group is not deleted"""
0 commit comments