Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions ohmg/conf/http.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ def user_info_from_request(request):
user_info["is_authenticated"] = True
user_info["is_staff"] = user.is_staff
user_info["perms"] = sorted(list(user.get_all_permissions()))
user_info["loaded_maps"] = list(user.maps.values_list("pk", flat=True))
else:
user_info = {
"is_authenticated": False,
Expand Down
28 changes: 14 additions & 14 deletions ohmg/core/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -492,22 +492,22 @@ def post(self, request):
return JsonResponseSuccess()

if operation == "queue-cog-creation":
if not request.user.has_perm("core.queue_mosaic_cog"):
return JsonResponseUnauthorized()
layerset = LayerSet.objects.get(
map_id=payload["map-id"], category__slug=payload["category"]
)
job_id = layerset.queue_mosaic_cog()
return JsonResponseSuccess(payload={"job": job_id})
map = Map.objects.get(pk=payload["map-id"])
if request.user.has_perm("core.queue_mosaic_cog") or request.user == map.loaded_by:
layerset = LayerSet.objects.get(
map_id=payload["map-id"], category__slug=payload["category"]
)
job_id = layerset.queue_mosaic_cog()
return JsonResponseSuccess(payload={"job": job_id})
return JsonResponseUnauthorized()

if operation == "queue-tileset-creation":
if not request.user.has_perm("core.queue_mosaic_xyz"):
return JsonResponseUnauthorized()
layerset = LayerSet.objects.get(
map_id=payload["map-id"], category__slug=payload["category"]
)
job_id = layerset.queue_mosaic_tileset()
return JsonResponseSuccess(payload={"job": job_id})
map = Map.objects.get(pk=payload["map-id"])
if request.user.has_perm("core.queue_mosaic_xyz") or request.user == map.loaded_by:
layerset = LayerSet.objects.get(map=map, category__slug=payload["category"])
job_id = layerset.queue_mosaic_tileset()
return JsonResponseSuccess(payload={"job": job_id})
return JsonResponseUnauthorized()


class LayersetDerivativeView(View):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
let layersets = []
let loading = false;

const userCanCog = CONTEXT.user.perms.includes("core.queue_mosaic_cog") || CONTEXT.user.loaded_maps.includes(mapId)
const userCanXyz = CONTEXT.user.perms.includes("core.queue_mosaic_xyz") || CONTEXT.user.loaded_maps.includes(mapId)

const orderedCategories = [
"main-content",
"key-map",
Expand Down Expand Up @@ -52,8 +55,8 @@
i.xyzStaticArchiveURL = i.xyz_tiles_url ? `${i.xyz_tiles_url}/archive.tar.gz` : null;
i.xyzStaticTilesURL = i.xyz_tiles_url ? `${i.xyz_tiles_url}/{z}/{x}/{y}.png` : null;

i.enableCogQueueBtn = CONTEXT.user.perms.includes("core.queue_mosaic_cog")
i.cogQueueBtnTitle = CONTEXT.user.perms.includes("core.queue_mosaic_cog") ?
i.enableCogQueueBtn = userCanCog;
i.cogQueueBtnTitle = userCanCog ?
"Click to queue COG build" : "You do not have permission for this action"

i.cogStale = false;
Expand All @@ -68,7 +71,7 @@
i.enableXyzQueue = false;
i.xyzQueueBtnTitle = "COG must be up-to-date before tileset can be built";
}
if (!CONTEXT.user.perms.includes("core.queue_mosaic_xyz")) {
if (!userCanXyz) {
i.enableXyzQueue = false;
i.xyzQueueBtnTitle = "You do not have permission for this action";
}
Expand Down
Loading