Skip to content

Commit 8d404b2

Browse files
committed
use new persist all namespace cal
1 parent 68382f9 commit 8d404b2

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

users/persistence.py

+10
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,16 @@ def delete_scene_objects(token, scene):
2626
return result
2727

2828

29+
def get_persist_ns_all(token):
30+
# request all scenes from persist
31+
verify, host = get_rest_host()
32+
url = f"https://{host}/persist/!allnamespaces"
33+
result = _urlopen(url, token, "GET", verify)
34+
if result:
35+
return json.loads(result)
36+
return []
37+
38+
2939
def get_persist_scenes_all(token):
3040
# request all scenes from persist
3141
verify, host = get_rest_host()

users/views.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
)
5252
from .persistence import (
5353
delete_scene_objects,
54+
get_persist_ns_all,
5455
get_persist_scenes_all,
5556
get_persist_scenes_ns,
5657
get_scene_objects,
@@ -210,7 +211,7 @@ def namespace_perm_detail(request, pk):
210211
version = TOPIC_SUPPORTED_API_VERSIONS[0] # TODO (mwfarb): resolve missing request.version
211212

212213
if not namespace_edit_permission(user=request.user, namespace=pk):
213-
messages.error(request, f"User does not have permission for: {pk}.")
214+
messages.error(request, f"User does not have edit permission for namespace: {pk}.")
214215
return redirect("users:user_profile")
215216
owners = []
216217
if User.objects.filter(username=pk).exists():
@@ -250,7 +251,7 @@ def scene_perm_detail(request, pk):
250251
version = TOPIC_SUPPORTED_API_VERSIONS[0] # TODO (mwfarb): resolve missing request.version
251252

252253
if not scene_edit_permission(user=request.user, scene=pk):
253-
messages.error(request, f"User does not have permission for: {pk}.")
254+
messages.error(request, f"User does not have edit permission for scene: {pk}.")
254255
return redirect("users:user_profile")
255256
owners = [pk.split("/")[0]]
256257
namespace_editors = [] # TODO: define namespaced_editors
@@ -318,7 +319,7 @@ def device_perm_detail(request, pk):
318319
version = TOPIC_SUPPORTED_API_VERSIONS[0] # TODO (mwfarb): resolve missing request.version
319320

320321
if not device_edit_permission(user=request.user, device=pk):
321-
messages.error(request, f"User does not have permission for: {pk}.")
322+
messages.error(request, f"User does not have edit permission for device: {pk}.")
322323
return redirect("users:user_profile")
323324
# now, make sure device exists before the other commands are tried
324325
try:
@@ -378,7 +379,7 @@ def scene_detail(request, pk):
378379
# check permissions model for namespace
379380
if not scene_edit_permission(user=request.user, scene=pk):
380381
return JsonResponse(
381-
{"error": f"User does not have permission for: {pk}."},
382+
{"error": f"User does not have edit permission for scene: {pk}."},
382383
status=status.HTTP_400_BAD_REQUEST,
383384
)
384385

@@ -555,9 +556,8 @@ def get_my_edit_namespaces(user, version):
555556
# for staff, add any non-user namespaces in persist db
556557
if user.is_staff: # admin/staff
557558
token = all_scenes_read_token(version)
558-
p_scenes = get_persist_scenes_all(token)
559-
for p_scene in p_scenes:
560-
p_ns = p_scene.split("/")[0] # TODO: replace with distinct call persist/!allnamespaces
559+
p_nss = get_persist_ns_all(token)
560+
for p_ns in p_nss:
561561
if not any(dictionary.get("name") == p_ns for dictionary in ns_out):
562562
if not User.objects.filter(username=p_ns).exists():
563563
ns_out.append(vars(NamespaceDefault(name=p_ns)))

0 commit comments

Comments
 (0)