fix locating permissions

This commit is contained in:
Laura Klünder 2017-12-26 00:16:43 +01:00
parent 299373b9ac
commit 38ca95791f
2 changed files with 4 additions and 4 deletions

View file

@ -5,7 +5,7 @@ from rest_framework.response import Response
from rest_framework.viewsets import ViewSet
from c3nav.mapdata.models.access import AccessPermission
from c3nav.mapdata.utils.locations import locations_for_request, visible_locations_for_request
from c3nav.mapdata.utils.locations import visible_locations_for_request
from c3nav.routing.exceptions import LocationUnreachable, NoRouteFound, NotYetRoutable
from c3nav.routing.forms import RouteForm
from c3nav.routing.locator import Locator
@ -82,7 +82,7 @@ class RoutingViewSet(ViewSet):
@list_route(methods=('POST', ))
def locate(self, request, *args, **kwargs):
try:
location = Locator.load().locate(request.data, locations_for_request(request))
location = Locator.load().locate(request.data, permissions=AccessPermission.get_for_request(request))
except ValidationError:
return Response({
'errors': (_('Invalid scan data.'),),

View file

@ -86,10 +86,10 @@ class Locator:
best_location = None
best_score = float('inf')
for space, station_ids in good_spaces:
for pk, space, station_ids in good_spaces:
point, score = space.get_best_point(scan_values, station_ids)
if score < best_score:
location = CustomLocation(router.spaces[space.pk].level, point.x, point.y)
location = CustomLocation(router.spaces[pk].level, point.x, point.y, permissions=permissions)
best_location = location
best_score = score