164 |
164 |
if not limit:
|
165 |
165 |
limit = 10000
|
166 |
166 |
|
167 |
|
accounts = request.backend.list_accounts(request.user_uniq, marker, limit)
|
|
167 |
accounts = request.backend.list_accounts(request.userid, marker, limit)
|
168 |
168 |
|
169 |
169 |
if request.serialization == 'text':
|
170 |
170 |
if len(accounts) == 0:
|
... | ... | |
177 |
177 |
|
178 |
178 |
account_meta = []
|
179 |
179 |
for x in accounts:
|
180 |
|
if x == request.user_uniq:
|
|
180 |
if x == request.userid:
|
181 |
181 |
continue
|
182 |
182 |
try:
|
183 |
|
meta = request.backend.get_account_meta(request.user_uniq, x, 'pithos', include_user_defined=False)
|
184 |
|
groups = request.backend.get_account_groups(request.user_uniq, x)
|
|
183 |
meta = request.backend.get_account_meta(request.userid, x, 'pithos', include_user_defined=False)
|
|
184 |
groups = request.backend.get_account_groups(request.userid, x)
|
185 |
185 |
except NotAllowedError:
|
186 |
186 |
raise Forbidden('Not allowed')
|
187 |
187 |
else:
|
... | ... | |
207 |
207 |
|
208 |
208 |
until = get_int_parameter(request.GET.get('until'))
|
209 |
209 |
try:
|
210 |
|
meta = request.backend.get_account_meta(request.user_uniq, v_account, 'pithos', until)
|
211 |
|
groups = request.backend.get_account_groups(request.user_uniq, v_account)
|
212 |
|
policy = request.backend.get_account_policy(request.user_uniq, v_account)
|
|
210 |
meta = request.backend.get_account_meta(request.userid, v_account, 'pithos', until)
|
|
211 |
groups = request.backend.get_account_groups(request.userid, v_account)
|
|
212 |
policy = request.backend.get_account_policy(request.userid, v_account)
|
213 |
213 |
except NotAllowedError:
|
214 |
214 |
raise Forbidden('Not allowed')
|
215 |
215 |
|
... | ... | |
232 |
232 |
replace = False
|
233 |
233 |
if groups:
|
234 |
234 |
try:
|
235 |
|
request.backend.update_account_groups(request.user_uniq, v_account,
|
|
235 |
request.backend.update_account_groups(request.userid, v_account,
|
236 |
236 |
groups, replace)
|
237 |
237 |
except NotAllowedError:
|
238 |
238 |
raise Forbidden('Not allowed')
|
... | ... | |
240 |
240 |
raise BadRequest('Invalid groups header')
|
241 |
241 |
if meta or replace:
|
242 |
242 |
try:
|
243 |
|
request.backend.update_account_meta(request.user_uniq, v_account,
|
|
243 |
request.backend.update_account_meta(request.userid, v_account,
|
244 |
244 |
'pithos', meta, replace)
|
245 |
245 |
except NotAllowedError:
|
246 |
246 |
raise Forbidden('Not allowed')
|
... | ... | |
256 |
256 |
|
257 |
257 |
until = get_int_parameter(request.GET.get('until'))
|
258 |
258 |
try:
|
259 |
|
meta = request.backend.get_account_meta(request.user_uniq, v_account, 'pithos', until)
|
260 |
|
groups = request.backend.get_account_groups(request.user_uniq, v_account)
|
261 |
|
policy = request.backend.get_account_policy(request.user_uniq, v_account)
|
|
259 |
meta = request.backend.get_account_meta(request.userid, v_account, 'pithos', until)
|
|
260 |
groups = request.backend.get_account_groups(request.userid, v_account)
|
|
261 |
policy = request.backend.get_account_policy(request.userid, v_account)
|
262 |
262 |
except NotAllowedError:
|
263 |
263 |
raise Forbidden('Not allowed')
|
264 |
264 |
|
... | ... | |
277 |
277 |
shared = True
|
278 |
278 |
|
279 |
279 |
try:
|
280 |
|
containers = request.backend.list_containers(request.user_uniq, v_account,
|
|
280 |
containers = request.backend.list_containers(request.userid, v_account,
|
281 |
281 |
marker, limit, shared, until)
|
282 |
282 |
except NotAllowedError:
|
283 |
283 |
raise Forbidden('Not allowed')
|
... | ... | |
296 |
296 |
container_meta = []
|
297 |
297 |
for x in containers:
|
298 |
298 |
try:
|
299 |
|
meta = request.backend.get_container_meta(request.user_uniq, v_account,
|
|
299 |
meta = request.backend.get_container_meta(request.userid, v_account,
|
300 |
300 |
x, 'pithos', until, include_user_defined=False)
|
301 |
|
policy = request.backend.get_container_policy(request.user_uniq,
|
|
301 |
policy = request.backend.get_container_policy(request.userid,
|
302 |
302 |
v_account, x)
|
303 |
303 |
except NotAllowedError:
|
304 |
304 |
raise Forbidden('Not allowed')
|
... | ... | |
328 |
328 |
|
329 |
329 |
until = get_int_parameter(request.GET.get('until'))
|
330 |
330 |
try:
|
331 |
|
meta = request.backend.get_container_meta(request.user_uniq, v_account,
|
|
331 |
meta = request.backend.get_container_meta(request.userid, v_account,
|
332 |
332 |
v_container, 'pithos', until)
|
333 |
|
meta['object_meta'] = request.backend.list_container_meta(request.user_uniq,
|
|
333 |
meta['object_meta'] = request.backend.list_container_meta(request.userid,
|
334 |
334 |
v_account, v_container, 'pithos', until)
|
335 |
|
policy = request.backend.get_container_policy(request.user_uniq, v_account,
|
|
335 |
policy = request.backend.get_container_policy(request.userid, v_account,
|
336 |
336 |
v_container)
|
337 |
337 |
except NotAllowedError:
|
338 |
338 |
raise Forbidden('Not allowed')
|
... | ... | |
356 |
356 |
meta, policy = get_container_headers(request)
|
357 |
357 |
|
358 |
358 |
try:
|
359 |
|
request.backend.put_container(request.user_uniq, v_account, v_container, policy)
|
|
359 |
request.backend.put_container(request.userid, v_account, v_container, policy)
|
360 |
360 |
ret = 201
|
361 |
361 |
except NotAllowedError:
|
362 |
362 |
raise Forbidden('Not allowed')
|
... | ... | |
367 |
367 |
|
368 |
368 |
if ret == 202 and policy:
|
369 |
369 |
try:
|
370 |
|
request.backend.update_container_policy(request.user_uniq, v_account,
|
|
370 |
request.backend.update_container_policy(request.userid, v_account,
|
371 |
371 |
v_container, policy, replace=False)
|
372 |
372 |
except NotAllowedError:
|
373 |
373 |
raise Forbidden('Not allowed')
|
... | ... | |
377 |
377 |
raise BadRequest('Invalid policy header')
|
378 |
378 |
if meta:
|
379 |
379 |
try:
|
380 |
|
request.backend.update_container_meta(request.user_uniq, v_account,
|
|
380 |
request.backend.update_container_meta(request.userid, v_account,
|
381 |
381 |
v_container, 'pithos', meta, replace=False)
|
382 |
382 |
except NotAllowedError:
|
383 |
383 |
raise Forbidden('Not allowed')
|
... | ... | |
400 |
400 |
replace = False
|
401 |
401 |
if policy:
|
402 |
402 |
try:
|
403 |
|
request.backend.update_container_policy(request.user_uniq, v_account,
|
|
403 |
request.backend.update_container_policy(request.userid, v_account,
|
404 |
404 |
v_container, policy, replace)
|
405 |
405 |
except NotAllowedError:
|
406 |
406 |
raise Forbidden('Not allowed')
|
... | ... | |
410 |
410 |
raise BadRequest('Invalid policy header')
|
411 |
411 |
if meta or replace:
|
412 |
412 |
try:
|
413 |
|
request.backend.update_container_meta(request.user_uniq, v_account,
|
|
413 |
request.backend.update_container_meta(request.userid, v_account,
|
414 |
414 |
v_container, 'pithos', meta, replace)
|
415 |
415 |
except NotAllowedError:
|
416 |
416 |
raise Forbidden('Not allowed')
|
... | ... | |
445 |
445 |
|
446 |
446 |
until = get_int_parameter(request.GET.get('until'))
|
447 |
447 |
try:
|
448 |
|
request.backend.delete_container(request.user_uniq, v_account, v_container,
|
|
448 |
request.backend.delete_container(request.userid, v_account, v_container,
|
449 |
449 |
until)
|
450 |
450 |
except NotAllowedError:
|
451 |
451 |
raise Forbidden('Not allowed')
|
... | ... | |
465 |
465 |
|
466 |
466 |
until = get_int_parameter(request.GET.get('until'))
|
467 |
467 |
try:
|
468 |
|
meta = request.backend.get_container_meta(request.user_uniq, v_account,
|
|
468 |
meta = request.backend.get_container_meta(request.userid, v_account,
|
469 |
469 |
v_container, 'pithos', until)
|
470 |
|
meta['object_meta'] = request.backend.list_container_meta(request.user_uniq,
|
|
470 |
meta['object_meta'] = request.backend.list_container_meta(request.userid,
|
471 |
471 |
v_account, v_container, 'pithos', until)
|
472 |
|
policy = request.backend.get_container_policy(request.user_uniq, v_account,
|
|
472 |
policy = request.backend.get_container_policy(request.userid, v_account,
|
473 |
473 |
v_container)
|
474 |
474 |
except NotAllowedError:
|
475 |
475 |
raise Forbidden('Not allowed')
|
... | ... | |
521 |
521 |
|
522 |
522 |
if request.serialization == 'text':
|
523 |
523 |
try:
|
524 |
|
objects = request.backend.list_objects(request.user_uniq, v_account,
|
|
524 |
objects = request.backend.list_objects(request.userid, v_account,
|
525 |
525 |
v_container, prefix, delimiter, marker,
|
526 |
526 |
limit, virtual, 'pithos', keys, shared, until)
|
527 |
527 |
except NotAllowedError:
|
... | ... | |
538 |
538 |
return response
|
539 |
539 |
|
540 |
540 |
try:
|
541 |
|
objects = request.backend.list_object_meta(request.user_uniq, v_account,
|
|
541 |
objects = request.backend.list_object_meta(request.userid, v_account,
|
542 |
542 |
v_container, prefix, delimiter, marker,
|
543 |
543 |
limit, virtual, 'pithos', keys, shared, until)
|
544 |
544 |
object_permissions = {}
|
545 |
545 |
object_public = {}
|
546 |
546 |
if until is None:
|
547 |
547 |
name_idx = len('/'.join((v_account, v_container, '')))
|
548 |
|
for x in request.backend.list_object_permissions(request.user_uniq,
|
|
548 |
for x in request.backend.list_object_permissions(request.userid,
|
549 |
549 |
v_account, v_container, prefix):
|
550 |
550 |
object = x[name_idx:]
|
551 |
551 |
object_permissions[object] = request.backend.get_object_permissions(
|
552 |
|
request.user_uniq, v_account, v_container, object)
|
553 |
|
for k, v in request.backend.list_object_public(request.user_uniq,
|
|
552 |
request.userid, v_account, v_container, object)
|
|
553 |
for k, v in request.backend.list_object_public(request.userid,
|
554 |
554 |
v_account, v_container, prefix).iteritems():
|
555 |
555 |
object_public[k[name_idx:]] = v
|
556 |
556 |
except NotAllowedError:
|
... | ... | |
600 |
600 |
|
601 |
601 |
version = request.GET.get('version')
|
602 |
602 |
try:
|
603 |
|
meta = request.backend.get_object_meta(request.user_uniq, v_account,
|
|
603 |
meta = request.backend.get_object_meta(request.userid, v_account,
|
604 |
604 |
v_container, v_object, 'pithos', version)
|
605 |
605 |
if version is None:
|
606 |
|
permissions = request.backend.get_object_permissions(request.user_uniq,
|
|
606 |
permissions = request.backend.get_object_permissions(request.userid,
|
607 |
607 |
v_account, v_container, v_object)
|
608 |
|
public = request.backend.get_object_public(request.user_uniq, v_account,
|
|
608 |
public = request.backend.get_object_public(request.userid, v_account,
|
609 |
609 |
v_container, v_object)
|
610 |
610 |
else:
|
611 |
611 |
permissions = None
|
... | ... | |
653 |
653 |
raise BadRequest('No format specified for version list.')
|
654 |
654 |
|
655 |
655 |
try:
|
656 |
|
v = request.backend.list_versions(request.user_uniq, v_account,
|
|
656 |
v = request.backend.list_versions(request.userid, v_account,
|
657 |
657 |
v_container, v_object)
|
658 |
658 |
except NotAllowedError:
|
659 |
659 |
raise Forbidden('Not allowed')
|
... | ... | |
669 |
669 |
return response
|
670 |
670 |
|
671 |
671 |
try:
|
672 |
|
meta = request.backend.get_object_meta(request.user_uniq, v_account,
|
|
672 |
meta = request.backend.get_object_meta(request.userid, v_account,
|
673 |
673 |
v_container, v_object, 'pithos', version)
|
674 |
674 |
if version is None:
|
675 |
|
permissions = request.backend.get_object_permissions(request.user_uniq,
|
|
675 |
permissions = request.backend.get_object_permissions(request.userid,
|
676 |
676 |
v_account, v_container, v_object)
|
677 |
|
public = request.backend.get_object_public(request.user_uniq, v_account,
|
|
677 |
public = request.backend.get_object_public(request.userid, v_account,
|
678 |
678 |
v_container, v_object)
|
679 |
679 |
else:
|
680 |
680 |
permissions = None
|
... | ... | |
708 |
708 |
if 'X-Object-Manifest' in meta and not hashmap_reply:
|
709 |
709 |
try:
|
710 |
710 |
src_container, src_name = split_container_object_string('/' + meta['X-Object-Manifest'])
|
711 |
|
objects = request.backend.list_objects(request.user_uniq, v_account,
|
|
711 |
objects = request.backend.list_objects(request.userid, v_account,
|
712 |
712 |
src_container, prefix=src_name, virtual=False)
|
713 |
713 |
except NotAllowedError:
|
714 |
714 |
raise Forbidden('Not allowed')
|
... | ... | |
719 |
719 |
|
720 |
720 |
try:
|
721 |
721 |
for x in objects:
|
722 |
|
s, h = request.backend.get_object_hashmap(request.user_uniq,
|
|
722 |
s, h = request.backend.get_object_hashmap(request.userid,
|
723 |
723 |
v_account, src_container, x[0], x[1])
|
724 |
724 |
sizes.append(s)
|
725 |
725 |
hashmaps.append(h)
|
... | ... | |
731 |
731 |
raise ItemNotFound('Version does not exist')
|
732 |
732 |
else:
|
733 |
733 |
try:
|
734 |
|
s, h = request.backend.get_object_hashmap(request.user_uniq, v_account,
|
|
734 |
s, h = request.backend.get_object_hashmap(request.userid, v_account,
|
735 |
735 |
v_container, v_object, version)
|
736 |
736 |
sizes.append(s)
|
737 |
737 |
hashmaps.append(h)
|
... | ... | |
779 |
779 |
# Evaluate conditions.
|
780 |
780 |
if request.META.get('HTTP_IF_MATCH') or request.META.get('HTTP_IF_NONE_MATCH'):
|
781 |
781 |
try:
|
782 |
|
meta = request.backend.get_object_meta(request.user_uniq, v_account,
|
|
782 |
meta = request.backend.get_object_meta(request.userid, v_account,
|
783 |
783 |
v_container, v_object, 'pithos')
|
784 |
784 |
except NotAllowedError:
|
785 |
785 |
raise Forbidden('Not allowed')
|
... | ... | |
794 |
794 |
|
795 |
795 |
src_account = request.META.get('HTTP_X_SOURCE_ACCOUNT')
|
796 |
796 |
if not src_account:
|
797 |
|
src_account = request.user_uniq
|
|
797 |
src_account = request.userid
|
798 |
798 |
if move_from:
|
799 |
799 |
try:
|
800 |
800 |
src_container, src_name = split_container_object_string(move_from)
|
... | ... | |
871 |
871 |
raise UnprocessableEntity('Object ETag does not match')
|
872 |
872 |
|
873 |
873 |
try:
|
874 |
|
version_id = request.backend.update_object_hashmap(request.user_uniq,
|
|
874 |
version_id = request.backend.update_object_hashmap(request.userid,
|
875 |
875 |
v_account, v_container, v_object, size, content_type,
|
876 |
876 |
hashmap, checksum, 'pithos', meta, True, permissions)
|
877 |
877 |
except NotAllowedError:
|
... | ... | |
888 |
888 |
# Update the MD5 after the hashmap, as there may be missing hashes.
|
889 |
889 |
checksum = hashmap_md5(request, hashmap, size)
|
890 |
890 |
try:
|
891 |
|
version_id = request.backend.update_object_checksum(request.user_uniq,
|
|
891 |
version_id = request.backend.update_object_checksum(request.userid,
|
892 |
892 |
v_account, v_container, v_object, version_id, checksum)
|
893 |
893 |
except NotAllowedError:
|
894 |
894 |
raise Forbidden('Not allowed')
|
895 |
895 |
if public is not None:
|
896 |
896 |
try:
|
897 |
|
request.backend.update_object_public(request.user_uniq, v_account,
|
|
897 |
request.backend.update_object_public(request.userid, v_account,
|
898 |
898 |
v_container, v_object, public)
|
899 |
899 |
except NotAllowedError:
|
900 |
900 |
raise Forbidden('Not allowed')
|
... | ... | |
922 |
922 |
|
923 |
923 |
checksum = file.etag
|
924 |
924 |
try:
|
925 |
|
version_id = request.backend.update_object_hashmap(request.user_uniq,
|
|
925 |
version_id = request.backend.update_object_hashmap(request.userid,
|
926 |
926 |
v_account, v_container, v_object, file.size, file.content_type,
|
927 |
927 |
file.hashmap, checksum, 'pithos', {}, True)
|
928 |
928 |
except NotAllowedError:
|
... | ... | |
948 |
948 |
|
949 |
949 |
dest_account = request.META.get('HTTP_DESTINATION_ACCOUNT')
|
950 |
950 |
if not dest_account:
|
951 |
|
dest_account = request.user_uniq
|
|
951 |
dest_account = request.userid
|
952 |
952 |
dest_path = request.META.get('HTTP_DESTINATION')
|
953 |
953 |
if not dest_path:
|
954 |
954 |
raise BadRequest('Missing Destination header')
|
... | ... | |
961 |
961 |
if request.META.get('HTTP_IF_MATCH') or request.META.get('HTTP_IF_NONE_MATCH'):
|
962 |
962 |
src_version = request.META.get('HTTP_X_SOURCE_VERSION')
|
963 |
963 |
try:
|
964 |
|
meta = request.backend.get_object_meta(request.user_uniq, v_account,
|
|
964 |
meta = request.backend.get_object_meta(request.userid, v_account,
|
965 |
965 |
v_container, v_object, 'pithos', src_version)
|
966 |
966 |
except NotAllowedError:
|
967 |
967 |
raise Forbidden('Not allowed')
|
... | ... | |
985 |
985 |
|
986 |
986 |
dest_account = request.META.get('HTTP_DESTINATION_ACCOUNT')
|
987 |
987 |
if not dest_account:
|
988 |
|
dest_account = request.user_uniq
|
|
988 |
dest_account = request.userid
|
989 |
989 |
dest_path = request.META.get('HTTP_DESTINATION')
|
990 |
990 |
if not dest_path:
|
991 |
991 |
raise BadRequest('Missing Destination header')
|
... | ... | |
997 |
997 |
# Evaluate conditions.
|
998 |
998 |
if request.META.get('HTTP_IF_MATCH') or request.META.get('HTTP_IF_NONE_MATCH'):
|
999 |
999 |
try:
|
1000 |
|
meta = request.backend.get_object_meta(request.user_uniq, v_account,
|
|
1000 |
meta = request.backend.get_object_meta(request.userid, v_account,
|
1001 |
1001 |
v_container, v_object, 'pithos')
|
1002 |
1002 |
except NotAllowedError:
|
1003 |
1003 |
raise Forbidden('Not allowed')
|
... | ... | |
1023 |
1023 |
content_type, meta, permissions, public = get_object_headers(request)
|
1024 |
1024 |
|
1025 |
1025 |
try:
|
1026 |
|
prev_meta = request.backend.get_object_meta(request.user_uniq, v_account,
|
|
1026 |
prev_meta = request.backend.get_object_meta(request.userid, v_account,
|
1027 |
1027 |
v_container, v_object, 'pithos')
|
1028 |
1028 |
except NotAllowedError:
|
1029 |
1029 |
raise Forbidden('Not allowed')
|
... | ... | |
1046 |
1046 |
# Do permissions first, as it may fail easier.
|
1047 |
1047 |
if permissions is not None:
|
1048 |
1048 |
try:
|
1049 |
|
request.backend.update_object_permissions(request.user_uniq,
|
|
1049 |
request.backend.update_object_permissions(request.userid,
|
1050 |
1050 |
v_account, v_container, v_object, permissions)
|
1051 |
1051 |
except NotAllowedError:
|
1052 |
1052 |
raise Forbidden('Not allowed')
|
... | ... | |
1056 |
1056 |
raise BadRequest('Invalid sharing header')
|
1057 |
1057 |
if public is not None:
|
1058 |
1058 |
try:
|
1059 |
|
request.backend.update_object_public(request.user_uniq, v_account,
|
|
1059 |
request.backend.update_object_public(request.userid, v_account,
|
1060 |
1060 |
v_container, v_object, public)
|
1061 |
1061 |
except NotAllowedError:
|
1062 |
1062 |
raise Forbidden('Not allowed')
|
... | ... | |
1064 |
1064 |
raise ItemNotFound('Object does not exist')
|
1065 |
1065 |
if meta or replace:
|
1066 |
1066 |
try:
|
1067 |
|
version_id = request.backend.update_object_meta(request.user_uniq,
|
|
1067 |
version_id = request.backend.update_object_meta(request.userid,
|
1068 |
1068 |
v_account, v_container, v_object, 'pithos', meta, replace)
|
1069 |
1069 |
except NotAllowedError:
|
1070 |
1070 |
raise Forbidden('Not allowed')
|
... | ... | |
1085 |
1085 |
raise RangeNotSatisfiable('Invalid Content-Range header')
|
1086 |
1086 |
|
1087 |
1087 |
try:
|
1088 |
|
size, hashmap = request.backend.get_object_hashmap(request.user_uniq,
|
|
1088 |
size, hashmap = request.backend.get_object_hashmap(request.userid,
|
1089 |
1089 |
v_account, v_container, v_object)
|
1090 |
1090 |
except NotAllowedError:
|
1091 |
1091 |
raise Forbidden('Not allowed')
|
... | ... | |
1100 |
1100 |
if src_object:
|
1101 |
1101 |
src_account = request.META.get('HTTP_X_SOURCE_ACCOUNT')
|
1102 |
1102 |
if not src_account:
|
1103 |
|
src_account = request.user_uniq
|
|
1103 |
src_account = request.userid
|
1104 |
1104 |
src_container, src_name = split_container_object_string(src_object)
|
1105 |
1105 |
src_version = request.META.get('HTTP_X_SOURCE_VERSION')
|
1106 |
1106 |
try:
|
1107 |
|
src_size, src_hashmap = request.backend.get_object_hashmap(request.user_uniq,
|
|
1107 |
src_size, src_hashmap = request.backend.get_object_hashmap(request.userid,
|
1108 |
1108 |
src_account, src_container, src_name, src_version)
|
1109 |
1109 |
except NotAllowedError:
|
1110 |
1110 |
raise Forbidden('Not allowed')
|
... | ... | |
1189 |
1189 |
hashmap = hashmap[:(int((size - 1) / request.backend.block_size) + 1)]
|
1190 |
1190 |
checksum = hashmap_md5(request, hashmap, size)
|
1191 |
1191 |
try:
|
1192 |
|
version_id = request.backend.update_object_hashmap(request.user_uniq,
|
|
1192 |
version_id = request.backend.update_object_hashmap(request.userid,
|
1193 |
1193 |
v_account, v_container, v_object, size, prev_meta['type'],
|
1194 |
1194 |
hashmap, checksum, 'pithos', meta, replace, permissions)
|
1195 |
1195 |
except NotAllowedError:
|
... | ... | |
1202 |
1202 |
raise RequestEntityTooLarge('Quota exceeded')
|
1203 |
1203 |
if public is not None:
|
1204 |
1204 |
try:
|
1205 |
|
request.backend.update_object_public(request.user_uniq, v_account,
|
|
1205 |
request.backend.update_object_public(request.userid, v_account,
|
1206 |
1206 |
v_container, v_object, public)
|
1207 |
1207 |
except NotAllowedError:
|
1208 |
1208 |
raise Forbidden('Not allowed')
|
... | ... | |
1224 |
1224 |
|
1225 |
1225 |
until = get_int_parameter(request.GET.get('until'))
|
1226 |
1226 |
try:
|
1227 |
|
request.backend.delete_object(request.user_uniq, v_account, v_container,
|
|
1227 |
request.backend.delete_object(request.userid, v_account, v_container,
|
1228 |
1228 |
v_object, until)
|
1229 |
1229 |
except NotAllowedError:
|
1230 |
1230 |
raise Forbidden('Not allowed')
|