Revision 77edd23d pithos/api/functions.py
b/pithos/api/functions.py | ||
---|---|---|
214 | 214 |
raise Unauthorized('Access denied') |
215 | 215 |
except ValueError: |
216 | 216 |
raise BadRequest('Invalid groups header') |
217 |
try: |
|
218 |
backend.update_account_meta(request.user, v_account, meta, replace) |
|
219 |
except NotAllowedError: |
|
220 |
raise Unauthorized('Access denied') |
|
217 |
if meta or replace: |
|
218 |
try: |
|
219 |
backend.update_account_meta(request.user, v_account, meta, replace) |
|
220 |
except NotAllowedError: |
|
221 |
raise Unauthorized('Access denied') |
|
221 | 222 |
return HttpResponse(status=202) |
222 | 223 |
|
223 | 224 |
@api_method('GET', format_allowed=True) |
... | ... | |
363 | 364 |
raise ItemNotFound('Container does not exist') |
364 | 365 |
except ValueError: |
365 | 366 |
raise BadRequest('Invalid policy header') |
366 |
try: |
|
367 |
backend.update_container_meta(request.user, v_account, v_container, meta, replace) |
|
368 |
except NotAllowedError: |
|
369 |
raise Unauthorized('Access denied') |
|
370 |
except NameError: |
|
371 |
raise ItemNotFound('Container does not exist') |
|
367 |
if meta or replace: |
|
368 |
try: |
|
369 |
backend.update_container_meta(request.user, v_account, v_container, meta, replace) |
|
370 |
except NotAllowedError: |
|
371 |
raise Unauthorized('Access denied') |
|
372 |
except NameError: |
|
373 |
raise ItemNotFound('Container does not exist') |
|
372 | 374 |
return HttpResponse(status=202) |
373 | 375 |
|
374 | 376 |
@api_method('DELETE') |
... | ... | |
913 | 915 |
# A Content-Type or X-Source-Object header indicates data updates. |
914 | 916 |
src_object = request.META.get('HTTP_X_SOURCE_OBJECT') |
915 | 917 |
if (not content_type or content_type != 'application/octet-stream') and not src_object: |
918 |
response = HttpResponse(status=202) |
|
919 |
|
|
916 | 920 |
# Do permissions first, as it may fail easier. |
917 | 921 |
if permissions is not None: |
918 | 922 |
try: |
... | ... | |
932 | 936 |
raise Unauthorized('Access denied') |
933 | 937 |
except NameError: |
934 | 938 |
raise ItemNotFound('Object does not exist') |
935 |
try: |
|
936 |
version_id = backend.update_object_meta(request.user, v_account, v_container, v_object, meta, replace) |
|
937 |
except NotAllowedError: |
|
938 |
raise Unauthorized('Access denied') |
|
939 |
except NameError: |
|
940 |
raise ItemNotFound('Object does not exist') |
|
939 |
if meta or replace: |
|
940 |
try: |
|
941 |
version_id = backend.update_object_meta(request.user, v_account, v_container, v_object, meta, replace) |
|
942 |
except NotAllowedError: |
|
943 |
raise Unauthorized('Access denied') |
|
944 |
except NameError: |
|
945 |
raise ItemNotFound('Object does not exist') |
|
946 |
response['X-Object-Version'] = version_id |
|
941 | 947 |
|
942 |
response = HttpResponse(status=202) |
|
943 |
response['X-Object-Version'] = version_id |
|
944 | 948 |
return response |
945 | 949 |
|
946 | 950 |
# Single range update. Range must be in Content-Range. |
Also available in: Unified diff