OrgUnit query fixes

This commit is contained in:
nikolark committed 2014-11-18 10:09:08 +01:00
1 parent e084a2408c
commit 9b0415d877
3 files changed
+12 -5

No files matched your search

+5 -1
View File
@@ -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
+1 -1
View File
@@ -14,7 +14,7 @@
<span class="input-group-addon">@studentersamfundet.no</span>
</div>
<h4>Eposter <span class="badge email-counter"></span></h4>
<textarea class="form-control" placeholder="asdf@studentersamfundet.no, qwerty@studentersamfundet.no" rows="4"></textarea>
<textarea class="form-control" placeholder="asdf@studentersamfundet.no, qwerty@studentersamfundet.no f.eks. Klipp og lim så mye du orker" rows="4"></textarea>
<button type="button" class="btn btn-primary btn-add-list js-add-list"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Opprett liste</button>
</div>
</div>
+6 -3
View File
@@ -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):