Sha256: 414abb102970ba787ccd720ffffa732ff104235219f704bd17ebf98d769df2f3

Contents?: true

Size: 1.04 KB

Versions: 4

Compression:

Stored size: 1.04 KB

Contents

module Hyrax
  module ProxyDeposit
    extend ActiveSupport::Concern

    included do
      property :proxy_depositor, predicate: ::RDF::URI.new('http://scholarsphere.psu.edu/ns#proxyDepositor'), multiple: false do |index|
        index.as :symbol
      end

      # This value is set when a user indicates they are depositing this for someone else
      property :on_behalf_of, predicate: ::RDF::URI.new('http://scholarsphere.psu.edu/ns#onBehalfOf'), multiple: false do |index|
        index.as :symbol
      end

      after_create :create_transfer_request
    end

    def create_transfer_request
      return if on_behalf_of.blank?
      ContentDepositorChangeEventJob.perform_later(self,
                                                   ::User.find_by_user_key(on_behalf_of))
    end

    def request_transfer_to(target)
      raise ArgumentError, "Must provide a target" unless target
      deposit_user = ::User.find_by_user_key(depositor)
      ProxyDepositRequest.create!(work_id: id, receiving_user: target, sending_user: deposit_user)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
hyrax-2.0.0.beta4 app/models/concerns/hyrax/proxy_deposit.rb
hyrax-2.0.0.beta3 app/models/concerns/hyrax/proxy_deposit.rb
hyrax-2.0.0.beta2 app/models/concerns/hyrax/proxy_deposit.rb
hyrax-2.0.0.beta1 app/models/concerns/hyrax/proxy_deposit.rb