diff --git a/app/hkp/tests.py b/app/hkp/tests.py index c2d8b32f0a40c1824e7d7d5c98aef06aab7b6757..51852c9ba20e68c25a61a982dff21fdedcad6cb7 100644 --- a/app/hkp/tests.py +++ b/app/hkp/tests.py @@ -1,7 +1,6 @@ from django.test import TestCase - +from django.contrib.auth.models import Group from guardian.shortcuts import assign_perm -from guardian.utils import get_anonymous_user from pgp import models @@ -13,8 +12,8 @@ class CorsHeadersTestCase(TestCase): email="frank@sauerburger.com", keyid="123456789", ) - anonymous = get_anonymous_user() - assign_perm('view_publickey', anonymous, self.toykey) + any_user = Group.objects.get(name="any-user") + assign_perm('view_publickey', any_user, self.toykey) def test_policy(self): """Check that the policy file has CORS headers""" @@ -30,8 +29,8 @@ class CaseSensitivityTestCase(TestCase): email="frank@sauerburger.com", keyid="123456789abcd", ) - anonymous = get_anonymous_user() - assign_perm('view_publickey', anonymous, self.toykey) + any_user = Group.objects.get(name="any-user") + assign_perm('view_publickey', any_user, self.toykey) def test_lower(self): """Check that lower case string can be used to lookup a key""" diff --git a/app/keys_home/migrations/0001_initial.py b/app/keys_home/migrations/0001_initial.py index 653694849b71d68e4257070ebb7715311bcc9dd4..e67728dd5610875cef6299a8f2f36b92584638f7 100644 --- a/app/keys_home/migrations/0001_initial.py +++ b/app/keys_home/migrations/0001_initial.py @@ -25,14 +25,19 @@ def add_any_group(*args): } group.save() - anon = get_anonymous_user() - for perm, klass in propagate_klasses.items(): - objs = get_objects_for_user(anon, perm, klass) - assign_perm(perm, group, objs) + try: + anon = get_anonymous_user() + for perm, klass in propagate_klasses.items(): + objs = get_objects_for_user(anon, perm, klass) + assign_perm(perm, group, objs) + except User.DoesNotExist: + # Anonymous user does not exist + pass class Migration(migrations.Migration): dependencies = [ + ('guardian', '0001_initial'), ] operations = [ diff --git a/app/keys_home/signals.py b/app/keys_home/signals.py index d8f52eb0fd6a4d0195a9e8360d155db095b18ac2..216318d56adc70d9bf1ea7ceaee909a54c8f3f68 100644 --- a/app/keys_home/signals.py +++ b/app/keys_home/signals.py @@ -5,4 +5,8 @@ from django.dispatch import receiver @receiver(post_save, sender=User) def create_user_profile(sender, instance, created, **kwargs): if created: - instance.groups.add(Group.objects.get(name='any-user')) + try: + instance.groups.add(Group.objects.get(name='any-user')) + except Group.DoesNotExist: + # Group not yet created + pass diff --git a/app/owlca/views.py b/app/owlca/views.py index 2fd99d2bcdd888a269c2965b3df8bb6c194e8e2c..12dadcbab1c3318275c4ddd53b6419a324172fb4 100644 --- a/app/owlca/views.py +++ b/app/owlca/views.py @@ -4,10 +4,10 @@ from django.contrib.auth.decorators import login_required from django.urls import reverse from django.http import HttpResponseRedirect, HttpResponse, Http404 from django.core.exceptions import ValidationError, PermissionDenied +from django.contrib.auth.models import Group from guardian.decorators import permission_required from guardian.mixins import PermissionRequiredMixin, PermissionListMixin from guardian.shortcuts import assign_perm, get_users_with_perms, get_objects_for_user -from guardian.utils import get_anonymous_user from . import models from . import forms @@ -130,12 +130,11 @@ def ca_create(request): assign_perm('change_certificationauthority', request.user, ca) assign_perm('request_certificate', request.user, ca) if form.cleaned_data['public']: + any_user = Group.objects.get(name="any-user") assign_perm('view_certificationauthority', - get_anonymous_user(), - ca) + any_user, ca) assign_perm('request_certificate', - get_anonymous_user(), - ca) + any_user, ca) csr = ca.create_self_sign_request(password) assign_perm('view_certificatesigningrequest', request.user, csr) @@ -146,9 +145,9 @@ def ca_create(request): assign_perm('view_certificate', request.user, cert) assign_perm('change_certificate', request.user, cert) if form.cleaned_data['public']: + any_user = Group.objects.get(name="any-user") assign_perm('view_certificate', - get_anonymous_user(), - cert) + any_user, cert) ca.save() diff --git a/app/pgp/views.py b/app/pgp/views.py index 2344124fc1a4258307a6ed7f6555fabdec638876..c95ed381b878949223750d7901bde82af6fab09b 100644 --- a/app/pgp/views.py +++ b/app/pgp/views.py @@ -3,9 +3,9 @@ from django.urls import reverse_lazy from django.http import Http404 from django.utils.translation import gettext as _ from django.views.generic import DetailView, ListView, CreateView +from django.contrib.auth.models import Group from guardian.mixins import PermissionRequiredMixin, PermissionListMixin from guardian.shortcuts import assign_perm -from guardian.utils import get_anonymous_user from . import models from . import forms @@ -58,7 +58,7 @@ class PublicKeyCreateView(PermissionRequiredMixin, CreateView): assign_perm('view_publickey', self.request.user, self.object) assign_perm('change_publickey', self.request.user, self.object) if form.cleaned_data["public"]: - anonymous = get_anonymous_user() - assign_perm('view_publickey', anonymous, self.object) + any_user = Group.objects.get(name="any-user") + assign_perm('view_publickey', any_user, self.object) return resp diff --git a/app/ssh/views.py b/app/ssh/views.py index f2434b9ed49ee7d852b87e95b7f148881bfeea5f..ce5d6d3b904dbf68c79eb0b8420a7f48c6cfd115 100644 --- a/app/ssh/views.py +++ b/app/ssh/views.py @@ -1,10 +1,10 @@ from django.shortcuts import render, reverse from django.views.generic import DetailView, ListView, CreateView from django.http import HttpResponseRedirect +from django.contrib.auth.models import Group from guardian.mixins import PermissionRequiredMixin, PermissionListMixin from guardian.decorators import permission_required from guardian.shortcuts import assign_perm -from guardian.utils import get_anonymous_user from . import models from . import forms @@ -29,9 +29,8 @@ def publickey_create(request): assign_perm('change_sshpublickey', request.user, pk) if form.cleaned_data['public']: - assign_perm('view_sshpublickey', - get_anonymous_user(), - pk) + any_user = Group.objects.get(name="any-user") + assign_perm('view_sshpublickey', any_user, pk) return HttpResponseRedirect(reverse('ssh-list')) # if a GET (or any other method) we'll create a blank form diff --git a/app/wkd/tests.py b/app/wkd/tests.py index 4533a120a45fd8d7f033b3f9ad9c9e405353f17b..0ffefbee28d2321bf0f508e7f12dc25c2a67f0c5 100644 --- a/app/wkd/tests.py +++ b/app/wkd/tests.py @@ -1,8 +1,7 @@ import hashlib from django.test import TestCase +from django.contrib.auth.models import Group from guardian.shortcuts import assign_perm -from guardian.utils import get_anonymous_user - from pgp import models from pgp.zbase32 import encode @@ -13,8 +12,8 @@ class CorsHeadersTestCase(TestCase): self.toykey = models.PublicKey.objects.create( email="frank@sauerburger.com" ) - anonymous = get_anonymous_user() - assign_perm('view_publickey', anonymous, self.toykey) + any_user = Group.objects.get(name="any-user") + assign_perm('view_publickey', any_user, self.toykey) def test_policy(self): """Check that the policy file has CORS headers""" @@ -50,8 +49,8 @@ class WkdCapitalizationTestCase(TestCase): self.toykey = models.PublicKey.objects.create( email="FrÄnk@SauerburgEr.com" ) - anonymous = get_anonymous_user() - assign_perm('view_publickey', anonymous, self.toykey) + any_user = Group.objects.get(name="any-user") + assign_perm('view_publickey', any_user, self.toykey) def test_advanced(self): """Check that advanced url"""