Sha256: fbd6e73171ef903f3f14dd7fb90721ea687a493e7c28cf5880f7c3148da31d56
Contents?: true
Size: 1.35 KB
Versions: 2
Compression:
Stored size: 1.35 KB
Contents
module Ddr module Models module Governable extend ActiveSupport::Concern included do belongs_to :admin_policy, predicate: ActiveFedora::RDF::ProjectHydra.isGovernedBy, class_name: "Collection" end def inherited_permissions admin_policy ? admin_policy.default_permissions : [] end def inherited_rights admin_policy.datastreams[Ddr::Datastreams::DEFAULT_RIGHTS] if admin_policy end # Creates convenience methods: # inherited_discover_users, inherited_discover_groups, # inherited_read_users, inherited_read_groups, # inherited_edit_user, inherited_edit_groups ["discover", "read", "edit"].each do |access| ["user", "group"].each do |type| define_method("inherited_#{access}_#{type}s") do admin_policy ? admin_policy.send("default_#{access}_#{type}s") : [] end end end def copy_admin_policy_from(other) # XXX In active-fedora 7.0 can do # self.admin_policy = other.admin_policy self.admin_policy_id = case when other.has_admin_policy? other.admin_policy_id when other.is_a?(Collection) other.pid end # self.admin_policy_id = other.admin_policy_id if other.has_admin_policy? end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ddr-models-3.0.0.alpha.2 | lib/ddr/models/governable.rb |
ddr-models-3.0.0.alpha.1 | lib/ddr/models/governable.rb |