diff options
Diffstat (limited to 'askbot/models/user.py')
-rw-r--r-- | askbot/models/user.py | 17 |
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' |