class ActionsController < ApplicationController
+ # Skip require_thread_api_token if this is a show action
+ # for an object uuid that supports anonymous access.
+ skip_around_filter :require_thread_api_token, if: proc { |ctrl|
+ Rails.configuration.anonymous_user_token and
+ 'show' == ctrl.action_name and
+ params['uuid'] and
+ model_class.in?([Collection, Group, Job, PipelineInstance, PipelineTemplate])
+ }
skip_filter :require_thread_api_token, only: [:report_issue_popup, :report_issue]
skip_filter :check_user_agreements, only: [:report_issue_popup, :report_issue]
@object.link_class == 'name' and
ArvadosBase::resource_class_for_uuid(@object.head_uuid) == Collection
redirect_to collection_path(id: @object.uuid)
+ elsif @object.is_a?(Group) and @object.group_class == 'project'
+ redirect_to project_path(id: @object.uuid)
elsif @object
redirect_to @object
else
end
if (resource_classes == [Collection] and
@object.is_a? Group and
- @object.group_class == 'project')
+ @object.group_class == 'project') or
+ @object.is_a? User
# In the common case where only collections are copied/moved
# into a project, it's polite to land on the collections tab on
# the destination project.
end
end
+ # star / unstar the current project
+ def star
+ links = Link.where(tail_uuid: current_user.uuid,
+ head_uuid: @object.uuid,
+ link_class: 'star')
+
+ if params['status'] == 'create'
+ # create 'star' link if one does not already exist
+ if !links.andand.any?
+ dst = Link.new(owner_uuid: current_user.uuid,
+ tail_uuid: current_user.uuid,
+ head_uuid: @object.uuid,
+ link_class: 'star',
+ name: @object.uuid)
+ dst.save!
+ end
+ else # delete any existing 'star' links
+ if links.andand.any?
+ links.each do |link|
+ link.destroy
+ end
+ end
+ end
+
+ respond_to do |format|
+ format.js
+ end
+ end
+
protected
def derive_unique_filename filename, manifest_files