If an user has a global permission then return entire queryset

This commit is contained in:
Roberto Rosario
2014-09-14 14:32:46 -04:00
parent d264aac97e
commit b8fe8639ec

View File

@@ -264,7 +264,6 @@ class MayanPermissionCheckMixin(object):
def dispatch(self, request, *args, **kwargs):
if self.permissions_required:
print self.permissions_required
Permission.objects.check_permissions(self.request.user, self.permissions_required)
return super(MayanPermissionCheckMixin, self).dispatch(request, *args, **kwargs)
@@ -385,6 +384,14 @@ class SingleObjectListView(MayanPermissionCheckMixin, ExtraContextMixin, MayanVi
queryset = super(SingleObjectListView, self).get_queryset()
if self.object_permission:
return AccessEntry.objects.filter_objects_by_access(self.object_permission, self.request.user, queryset)
try:
# Check to see if the user has the permissions globally
Permission.objects.check_permissions(self.request.user, [self.object_permission])
except PermissionDenied:
# No global permission, filter ther queryset per object + permission
return AccessEntry.objects.filter_objects_by_access(self.object_permission, self.request.user, queryset)
else:
# Has the permission globally, return all results
return queryset
else:
return queryset