implement can_access_geometry

This commit is contained in:
Laura Klünder 2023-12-04 22:27:01 +01:00
parent 1a0c4e63f5
commit b7b18cad36
2 changed files with 14 additions and 10 deletions

View file

@ -8,7 +8,7 @@ from django.utils.http import quote_etag
from django.utils.translation import get_language
from ninja.decorators import decorate_view
from c3nav.mapdata.models import AccessRestriction, LocationGroup, MapUpdate
from c3nav.mapdata.models import AccessRestriction, Building, Door, LocationGroup, MapUpdate, Space
from c3nav.mapdata.models.access import AccessPermission
from c3nav.mapdata.models.geometry.base import GeometryMixin
from c3nav.mapdata.models.locations import SpecificLocation
@ -108,3 +108,11 @@ def api_stats_clean_location_value(value):
value = 'c:%s:%d:%d' % (value[1], int(float(value[2]) / 3) * 3, int(float(value[3]) / 3) * 3)
return (value, 'c:anywhere')
return (value, )
def can_access_geometry(request, obj):
if isinstance(obj, Space):
return obj.base_mapdata_accessible or request.user_permissions.can_access_base_mapdata
elif isinstance(obj, (Building, Door)):
return request.user_permissions.can_access_base_mapdata
return True