X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/9fcd7e96ad9ed8c7f3a343663a06ee9cbaa15aa9..c592f178659ed5ebfd03720a02940daa62931d14:/apps/workbench/app/controllers/actions_controller.rb diff --git a/apps/workbench/app/controllers/actions_controller.rb b/apps/workbench/app/controllers/actions_controller.rb index 2a0f74762b..28680df33f 100644 --- a/apps/workbench/app/controllers/actions_controller.rb +++ b/apps/workbench/app/controllers/actions_controller.rb @@ -2,6 +2,8 @@ require "arvados/collection" 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 @@ -236,6 +238,35 @@ You can try recreating the collection to get a copy with full provenance data." 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