Sha256: 71e6f5b9fffc6cc154bbd59391e69a3bd13dd64dc0bbaff3c646adb75a3679ba

Contents?: true

Size: 1.05 KB

Versions: 10

Compression:

Stored size: 1.05 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 unless on_behalf_of.present?
      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

10 entries across 10 versions & 2 rubygems

Version Path
hyrax-1.1.1 app/models/concerns/hyrax/proxy_deposit.rb
hyrax-1.1.0 app/models/concerns/hyrax/proxy_deposit.rb
hyrax-1.0.5 app/models/concerns/hyrax/proxy_deposit.rb
hyrax-1.0.4 app/models/concerns/hyrax/proxy_deposit.rb
hyrax-1.0.3 app/models/concerns/hyrax/proxy_deposit.rb
hyrax-1.0.2 app/models/concerns/hyrax/proxy_deposit.rb
hyrax-1.0.1 app/models/concerns/hyrax/proxy_deposit.rb
hyrax-1.0.0.rc2 app/models/concerns/hyrax/proxy_deposit.rb
hyrax-1.0.0.rc1 app/models/concerns/hyrax/proxy_deposit.rb
test_hyrax-0.0.1.alpha app/models/concerns/hyrax/proxy_deposit.rb