OrgUnit query fixes
This commit is contained in:
1 parent
e084a2408c
commit
9b0415d877
3 files changed
+12
-5
No files matched your search
@@ -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
|
||||
|
||||
@@ -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
@@ -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):
|
||||
|
||||
Reference in new issue
Block a user