Fixes perms checks for groups
This commit is contained in:
parent
0ee7054640
commit
2894aa37a2
2 changed files with 32 additions and 8 deletions
|
@ -1,7 +1,7 @@
|
|||
"""group views"""
|
||||
from django.apps import apps
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.db import IntegrityError
|
||||
from django.db import IntegrityError, transaction
|
||||
from django.core.paginator import Paginator
|
||||
from django.http import HttpResponseBadRequest
|
||||
from django.shortcuts import get_object_or_404, redirect
|
||||
|
@ -112,9 +112,13 @@ class UserGroups(View):
|
|||
form = forms.GroupForm(request.POST)
|
||||
if not form.is_valid():
|
||||
return redirect(request.user.local_path + "/groups")
|
||||
group = form.save()
|
||||
# add the creator as a group member
|
||||
models.GroupMember.objects.create(group=group, user=request.user)
|
||||
|
||||
group = form.save(commit=False)
|
||||
group.raise_not_editable(request.user)
|
||||
with transaction.atomic():
|
||||
group.save()
|
||||
# add the creator as a group member
|
||||
models.GroupMember.objects.create(group=group, user=request.user)
|
||||
return redirect("group", group.id)
|
||||
|
||||
|
||||
|
@ -128,6 +132,7 @@ class FindUsers(View):
|
|||
"""basic profile info"""
|
||||
user_query = request.GET.get("user_query")
|
||||
group = get_object_or_404(models.Group, id=group_id)
|
||||
group.raise_not_editable(request.user)
|
||||
lists = (
|
||||
models.List.privacy_filter(request.user)
|
||||
.filter(group=group)
|
||||
|
@ -183,10 +188,11 @@ def delete_group(request, group_id):
|
|||
# only the owner can delete a group
|
||||
group.raise_not_deletable(request.user)
|
||||
|
||||
# deal with any group lists
|
||||
models.List.objects.filter(group=group).update(curation="closed", group=None)
|
||||
with transaction.atomic():
|
||||
# deal with any group lists
|
||||
models.List.objects.filter(group=group).update(curation="closed", group=None)
|
||||
|
||||
group.delete()
|
||||
group.delete()
|
||||
return redirect(request.user.local_path + "/groups")
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue