Revision 15a96c3e pithos/api/functions.py

b/pithos/api/functions.py
537 537
        objects = request.backend.list_object_meta(request.user_uniq, v_account,
538 538
                                    v_container, prefix, delimiter, marker,
539 539
                                    limit, virtual, 'pithos', keys, shared, until)
540
        object_permissions = {}
541
        object_public = {}
542
        if until is None:
543
            name_idx = len('/'.join((v_account, v_container, '')))
544
            for x in request.backend.list_object_permissions(request.user_uniq,
545
                                    v_account, v_container, prefix):
546
                object = x[name_idx:]
547
                object_permissions[object] = request.backend.get_object_permissions(
548
                                    request.user_uniq, v_account, v_container, object)
549
            for k, v in request.backend.list_object_public(request.user_uniq,
550
                                    v_account, v_container, prefix).iteritems():
551
                object_public[k[name_idx:]] = v
540 552
    except NotAllowedError:
541 553
        raise Forbidden('Not allowed')
542 554
    except NameError:
543 555
        raise ItemNotFound('Container does not exist')
544 556
    
545
#     object_meta = []
546
#     for x in objects:
547
#         if x[1] is None:
548
#             # Virtual objects/directories.
549
#             object_meta.append({'subdir': x[0]})
550
#         else:
551
#             try:
552
#                 meta = request.backend.get_object_meta(request.user_uniq, v_account,
553
#                                                         v_container, x[0], 'pithos', x[1])
554
#                 if until is None:
555
#                     permissions = request.backend.get_object_permissions(
556
#                                     request.user_uniq, v_account, v_container, x[0])
557
#                     public = request.backend.get_object_public(request.user_uniq,
558
#                                                 v_account, v_container, x[0])
559
#                 else:
560
#                     permissions = None
561
#                     public = None
562
#             except NotAllowedError:
563
#                 raise Forbidden('Not allowed')
564
#             except NameError:
565
#                 pass
566
#             else:
567
#                 rename_meta_key(meta, 'hash', 'x_object_hash') # Will be replaced by checksum.
568
#                 rename_meta_key(meta, 'checksum', 'hash')
569
#                 rename_meta_key(meta, 'type', 'content_type')
570
#                 rename_meta_key(meta, 'uuid', 'x_object_uuid')
571
#                 rename_meta_key(meta, 'modified', 'last_modified')
572
#                 rename_meta_key(meta, 'modified_by', 'x_object_modified_by')
573
#                 rename_meta_key(meta, 'version', 'x_object_version')
574
#                 rename_meta_key(meta, 'version_timestamp', 'x_object_version_timestamp')
575
#                 m = dict([(k[14:], v) for k, v in meta.iteritems() if k.startswith('X-Object-Meta-')])
576
#                 for k in m:
577
#                     del(meta['X-Object-Meta-' + k])
578
#                 if m:
579
#                     meta['X-Object-Meta'] = printable_header_dict(m)
580
#                 update_sharing_meta(request, permissions, v_account, v_container, x[0], meta)
581
#                 update_public_meta(public, meta)
582
#                 object_meta.append(printable_header_dict(meta))
583
#     if request.serialization == 'xml':
584
#         data = render_to_string('objects.xml', {'container': v_container, 'objects': object_meta})
585
#     elif request.serialization  == 'json':
586
#         data = json.dumps(object_meta, default=json_encode_decimal)
587
#     response.status_code = 200
588
#     response.content = data
589
#     return response
590
    
591 557
    object_meta = []
592 558
    for meta in objects:
593 559
        if len(meta) == 1:
......
605 571
            rename_meta_key(meta, 'modified_by', 'x_object_modified_by')
606 572
            rename_meta_key(meta, 'version', 'x_object_version')
607 573
            rename_meta_key(meta, 'version_timestamp', 'x_object_version_timestamp')
574
            permissions = object_permissions.get(meta['name'], None)
575
            if permissions:
576
                update_sharing_meta(request, permissions, v_account, v_container, meta['name'], meta)
577
            public = object_public.get(meta['name'], None)
578
            if public:
579
                update_public_meta(public, meta)
608 580
            object_meta.append(printable_header_dict(meta))
609 581
    if request.serialization == 'xml':
610 582
        data = render_to_string('objects.xml', {'container': v_container, 'objects': object_meta})

Also available in: Unified diff