Dataset collections - fix to ensure element ids from API are always encoded.

This commit is contained in:
John Chilton
2014-05-06 08:54:31 -05:00
parent a8d5d60da6
commit 4c6ad01070
2 changed files with 3 additions and 1 deletions
+1 -1
View File
@@ -35,7 +35,7 @@ def dictify_dataset_collection_instance( dataset_colleciton_instance, parent, se
dict_value[ 'url' ] = web.url_for( 'library_content', library_id=encoded_library_id, id=encoded_id, folder_id=encoded_folder_id )
if view == "element":
dict_value[ 'elements' ] = map( dictify_element, dataset_colleciton_instance.collection.elements )
security.encode_dict_ids( dict_value ) # TODO: Use Kyle's recusrive formulation of this.
security.encode_all_ids( dict_value, recursive=True ) # TODO: Use Kyle's recusrive formulation of this.
return dict_value
+2
View File
@@ -89,6 +89,8 @@ class SecurityHelper( object ):
else:
if recursive and isinstance( v, dict ):
rval[ k ] = self.encode_all_ids( v, recursive )
elif recursive and isinstance( v, list ):
rval[ k ] = map( lambda el: self.encode_all_ids( el, True), v )
return rval
def decode_id( self, obj_id, kind=None ):