end
def link_to_arvados_object_if_readable(attrvalue, link_text_if_not_readable, opts={})
- resource_class = resource_class_for_uuid(attrvalue)
+ resource_class = resource_class_for_uuid(attrvalue.split('/')[0]) if attrvalue
if !resource_class
return link_to_if_arvados_object attrvalue, opts
end
# Hence you can improve performance by first preloading objects
# related to the page context before using this method.
def object_readable attrvalue, resource_class=nil
+ # if it is a collection filename, check readable for the locator
+ attrvalue = attrvalue.split('/')[0] if attrvalue
+
resource_class = resource_class_for_uuid(attrvalue) if resource_class.nil?
return if resource_class.nil?
return_value = nil
if resource_class.to_s == 'Collection'
- # if it is a collection filename, check readable for the locator
- attrvalue = attrvalue.split('/')[0] if attrvalue
-
if CollectionsHelper.match(attrvalue)
found = collection_for_pdh(attrvalue)
return_value = found.first if found.any?
['new_pipeline_in_publicly_accessible_project_but_other_objects_elsewhere', false, 'spectator'],
['new_pipeline_in_publicly_accessible_project_but_other_objects_elsewhere', true, 'admin'],
['new_pipeline_in_publicly_accessible_project_with_dataclass_file_and_other_objects_elsewhere', false, 'spectator'],
+ ['new_pipeline_in_publicly_accessible_project_with_dataclass_file_and_other_objects_elsewhere', true, 'admin'],
].each do |fixture, objects_readable, user=nil|
test "access #{fixture} in public project with objects readable=#{objects_readable} with user #{user}" do
object = api_fixture('pipeline_instances')[fixture]
end
else
assert_no_text 'This pipeline was created from' # template is not readable
- assert_no_selector 'a', text: object['components']['foo']['script_parameters']['input']['value']
+ input = object['components']['foo']['script_parameters']['input']['value']
+ input = input.gsub('/', '\\/')
+ assert_no_selector 'a', text: input
if user
assert_text "One or more inputs provided are not readable"
- assert_selector "input[type=text][value=#{object['components']['foo']['script_parameters']['input']['value']}]"
+ assert_selector "input[type=text][value=#{input}]"
assert_selector 'a.disabled', text: 'Run'
else
assert_no_text "One or more inputs provided are not readable"
- assert_text object['components']['foo']['script_parameters']['input']['value']
+ assert_text input
assert_no_selector 'a', text: 'Run'
end
end