#29748: Add AUTH_GROUP_MODEL setting to swap the group model
------------------------------+-----------------------------------------
Reporter: damoncheng | Owner: damoncheng
Type: New feature | Status: assigned
Component: contrib.auth | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage: Someday/Maybe
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
------------------------------+-----------------------------------------
Description changed by Michael:
Old description:
> The information is not enough for the most project in
> django.contrib.auth.models.User and django.contrib.auth.models.Group. The
> project can only custom User and Team model.
>
> The auth User can be changed in the django settings by AUTH_USER_MODEL.
> But the Group cannot.
>
> Further, There are many group permissions problem presented when project
> use django permissions.
>
> Firstly, In django.contrib.auth.ModelBackend, Django currently bind
> group permissions with django.contrib.auth.models.Group
>
> {{{
> def _get_group_permissions(self, user_obj):
> user_groups_field = get_user_model()._meta.get_field('groups')
> user_groups_query = 'group__%s' %
> user_groups_field.related_query_name()
> return Permission.objects.filter(**{user_groups_query: user_obj})
> }}}
>
> If the project want to relate the group permission to custom team. the
> project have to custom backend that extend
> django.contrib.auth.ModelBackend and modify group to team.
>
> Secondly, the bad design limit the other app design, many app about
> django permission , only support group permission based on
> django.contrib.auth.models.Group, like django-guardian.
>
> In the conversation with Adam
> Johnson([https://groups.google.com/forum/#!topic/django-
> developers/llQJZUKejXg]). Admin suggestion me to contribute it or to use
> OneToOneField to solve the basic problem. But the OneToOneField is not
> elegant and it have problem in some scene. For example, A project is a
> cloud item, It use SCIM to manage user and team identities in cloud.
> it transfer resource from sender to many receiver.
>
> Before the project use OneToOneField, The project only transfer user
> and team from sender to receiver. It spend 2 hour.
>
> After the project use OneToOneField. The project need transfer user and
> team from sender to receiver, then create group and make team
> OneToOneField to Group in the receiver. It spend 6 hour.
>
> it degrade the transform performence.
>
> So please make me to support AUTH_GROUP_MODEL that optimize django group
> permission design
New description:
I was just about to open ticket for this exact same thing. The most common
use case I have come across when searching for a solution is to add a
`description` field to the `Group` model. There seems to be no
complicated/hacky solution to this. Most solution end up creating custom
migrations within:
{{{
site-packages/django/contrib/auth/migrations/
}}}
Which lives outside ones project, and can't be version controlled.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/29748#comment:7>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/01070181b5c3740d-842b8bb7-defe-4c58-a72f-9d58aad6526c-000000%40eu-central-1.amazonses.com.