let's to allow_post and allow_delete differently
This commit is contained in:
parent
2113487c51
commit
0b6321c7e0
3 changed files with 10 additions and 10 deletions
|
@ -269,10 +269,13 @@ class EditorViewSet(ViewSet):
|
||||||
|
|
||||||
def __getattr__(self, name):
|
def __getattr__(self, name):
|
||||||
# allow POST and DELETE methods for the editor API
|
# allow POST and DELETE methods for the editor API
|
||||||
if name in ('post', 'delete'):
|
|
||||||
if getattr(self.resolved.func, 'allow_'+name, False):
|
if getattr(self, 'get', None).__name__ in ('list', 'retrieve'):
|
||||||
if getattr(self, 'get', None).__name__ in ('list', 'retrieve'):
|
if name == 'post' and (self.resolved.url_name.endswith('.create') or
|
||||||
return self.retrieve
|
self.resolved.url_name.endswith('.edit')):
|
||||||
|
return self.retrieve
|
||||||
|
if name == 'delete' and self.resolved.url_name.endswith('.edit'):
|
||||||
|
return self.retrieve
|
||||||
raise AttributeError
|
raise AttributeError
|
||||||
|
|
||||||
def list(self, request, *args, **kwargs):
|
def list(self, request, *args, **kwargs):
|
||||||
|
|
|
@ -22,11 +22,10 @@ from c3nav.mapdata.models.base import SerializableMixin
|
||||||
from c3nav.mapdata.utils.user import can_access_editor
|
from c3nav.mapdata.utils.user import can_access_editor
|
||||||
|
|
||||||
|
|
||||||
def sidebar_view(func=None, select_related=None, api_hybrid=False, allow_post=False, allow_delete=False):
|
def sidebar_view(func=None, select_related=None, api_hybrid=False):
|
||||||
if func is None:
|
if func is None:
|
||||||
def wrapped(inner_func):
|
def wrapped(inner_func):
|
||||||
return sidebar_view(inner_func, select_related=select_related, api_hybrid=api_hybrid,
|
return sidebar_view(inner_func, select_related=select_related, api_hybrid=api_hybrid)
|
||||||
allow_post=allow_post, allow_delete=allow_delete)
|
|
||||||
return wrapped
|
return wrapped
|
||||||
|
|
||||||
@wraps(func)
|
@wraps(func)
|
||||||
|
@ -67,8 +66,6 @@ def sidebar_view(func=None, select_related=None, api_hybrid=False, allow_post=Fa
|
||||||
return response
|
return response
|
||||||
|
|
||||||
wrapped.api_hybrid = api_hybrid
|
wrapped.api_hybrid = api_hybrid
|
||||||
wrapped.allow_post = allow_post
|
|
||||||
wrapped.allow_delete = allow_delete
|
|
||||||
|
|
||||||
return wrapped
|
return wrapped
|
||||||
|
|
||||||
|
|
|
@ -122,7 +122,7 @@ def get_changeset_exceeded(request):
|
||||||
return request.user_permissions.max_changeset_changes <= request.changeset.changed_objects_count
|
return request.user_permissions.max_changeset_changes <= request.changeset.changed_objects_count
|
||||||
|
|
||||||
|
|
||||||
@sidebar_view(api_hybrid=True, allow_post=True, allow_delete=True)
|
@sidebar_view(api_hybrid=True)
|
||||||
@etag(etag_func)
|
@etag(etag_func)
|
||||||
def edit(request, pk=None, model=None, level=None, space=None, on_top_of=None, explicit_edit=False):
|
def edit(request, pk=None, model=None, level=None, space=None, on_top_of=None, explicit_edit=False):
|
||||||
changeset_exceeded = get_changeset_exceeded(request)
|
changeset_exceeded = get_changeset_exceeded(request)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue