diff --git a/mailadmin/permissions.py b/mailadmin/permissions.py index 3b1a663..5984f3e 100644 --- a/mailadmin/permissions.py +++ b/mailadmin/permissions.py @@ -21,12 +21,16 @@ class IsOwnerOrReadOnly(permissions.BasePermission): class DestinationPrefixOwner(permissions.BasePermission): + # Ref: http://www.django-rest-framework.org/api-guide/permissions + # TODO have no idea if this works def has_permission(self, request, view): # TODO test handling the DELETE requests if request.user.is_superuser: return True if request.method == 'DELETE': + print view + print view.kwargs forwarder = view.kwargs['forwarder'] # TODO you are here invalid_forwarder = {'error': 'Invalid forwarder: {0}'.format(forwarder)} if '=' not in forwarder: @@ -42,7 +46,7 @@ class DestinationPrefixOwner(permissions.BasePermission): my_groups = request.user.groups.all() # Look for mailinglist prefixes - my_prefixes = OrgUnit.objects.filter(admin_groups__in=my_groups).distinct().values_list('prefix', flat=True) + my_prefixes = OrgUnit.objects.filter(admin_groups__in=my_groups).distinct().exclude(prefix__isnull=True, is_active=True).values_list('prefix', flat=True) if len(my_prefixes) == 0: return False # Prepare regular expression diff --git a/mailadmin/static/app/templates/new_list.html b/mailadmin/static/app/templates/new_list.html index 43a52d8..b617e2a 100644 --- a/mailadmin/static/app/templates/new_list.html +++ b/mailadmin/static/app/templates/new_list.html @@ -14,7 +14,7 @@ @studentersamfundet.no

Eposter

- + \ No newline at end of file diff --git a/mailadmin/views.py b/mailadmin/views.py index 5993d33..843d12e 100644 --- a/mailadmin/views.py +++ b/mailadmin/views.py @@ -61,9 +61,9 @@ class ForwardsViewSet(viewsets.ViewSet): # Look for mailinglist prefixes if request.user.is_superuser: - my_prefixes = OrgUnit.objects.all().distinct().values_list('prefix', flat=True) + my_prefixes = OrgUnit.objects.exclude(prefix__isnull=True, is_active=True).distinct().values_list('prefix', flat=True) else: - my_prefixes = OrgUnit.objects.filter(admin_groups__in=my_groups).distinct().values_list('prefix', flat=True) + my_prefixes = OrgUnit.objects.filter(admin_groups__in=my_groups).distinct().exclude(prefix__isnull=True, is_active=True).values_list('prefix', flat=True) # Prepare regular expression regexp = '|'.join(['{0}-'.format(p) for p in my_prefixes]) @@ -137,7 +137,10 @@ class MyOrgUnitViewSet(viewsets.ReadOnlyModelViewSet): permission_classes = [IsAuthenticated] def get_queryset(self): - return OrgUnit.objects.filter(admin_groups__in=self.request.user.groups.values('id')) + if self.request.user.is_superuser: + return OrgUnit.objects.exclude(prefix__isnull=True, is_active=True).distinct() + + return OrgUnit.objects.filter(admin_groups__in=self.request.user.groups.values('id')).exclude(prefix__isnull=True, is_active=True).distinct() class OrgUnitViewSet(viewsets.ReadOnlyModelViewSet):