@permission_required('django_spire_auth_group.delete_authgroup')
def group_remove_user_form_view(
request: WSGIRequest, group_pk: int, pk: int
) -> HttpResponseRedirect | TemplateResponse:
group = get_object_or_404(models.AuthGroup, pk=group_pk)
user = get_object_or_404(AuthUser, pk=pk)
if request.method == 'POST':
form = DeleteConfirmationForm(request.POST, obj=user)
if form.is_valid():
group.user_set.remove(user)
return HttpResponseRedirect(
reverse('django_spire:auth:group:page:detail', kwargs={'pk': group_pk})
)
form = DeleteConfirmationForm(request.GET, obj=user)
nav = AuthGroupNavigation()
nav.page_title = 'Group'
nav.page_description = f'Remove {user.get_full_name()} from'
nav.breadcrumbs.add('Groups', 'django_spire:auth:group:page:list')
nav.breadcrumbs.add_model_instance_string(
group, view_name='django_spire:auth:group:page:detail', view_kwargs={'pk': group.pk}
)
nav.breadcrumbs.add(user.get_full_name())
nav.breadcrumbs.add('Remove')
context = nav.as_context()
context['form'] = form
return TemplateResponse(
request,
context=context,
template='django_spire/page/delete_confirmation_form_page.html',
)