summaryrefslogtreecommitdiffstats
path: root/askbot/models/user.py
diff options
context:
space:
mode:
Diffstat (limited to 'askbot/models/user.py')
-rw-r--r--askbot/models/user.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/askbot/models/user.py b/askbot/models/user.py
index e965cb05..167ebfbf 100644
--- a/askbot/models/user.py
+++ b/askbot/models/user.py
@@ -396,6 +396,21 @@ class AuthUserGroups(models.Model):
managed = False
+class GroupMembershipManager(models.Manager):
+ def create(self, **kwargs):
+ user = kwargs['user']
+ group = kwargs['group']
+ try:
+ #need this for the cases where auth User_groups is there,
+ #but ours is not
+ auth_gm = AuthUserGroups.objects.get(user=user, group=group)
+ #use this as link for the One to One relation
+ kwargs['authusergroups_ptr'] = auth_gm
+ except AuthUserGroups.DoesNotExist:
+ pass
+ super(GroupMembershipManager, self).create(**kwargs)
+
+
class GroupMembership(AuthUserGroups):
"""contains one-to-one relation to ``auth_user_group``
and extra membership profile fields"""
@@ -414,6 +429,8 @@ class GroupMembership(AuthUserGroups):
choices=LEVEL_CHOICES,
)
+ objects = GroupMembershipManager()
+
class Meta:
app_label = 'askbot'