app/models/hydra/access_controls/permission.rb in hydra-access-controls-10.3.2 vs app/models/hydra/access_controls/permission.rb in hydra-access-controls-10.3.3
- old
+ new
@@ -35,11 +35,11 @@
build_access(access) if access
super(attrs)
end
def agent_name
- parsed_agent.last
+ URI.decode(parsed_agent.last)
end
def access
@access ||= mode.first.rdf_subject.to_s.split('#').last.downcase.sub('write', 'edit')
end
@@ -56,15 +56,19 @@
def build_agent(name, type)
raise "Can't build agent #{inspect}" unless name && type
self.agent = case type
when 'group'
- Agent.new(::RDF::URI.new("#{GROUP_AGENT_URL_PREFIX}##{name}"))
+ build_agent_resource(GROUP_AGENT_URL_PREFIX, name)
when 'person'
- Agent.new(::RDF::URI.new("#{PERSON_AGENT_URL_PREFIX}##{name}"))
+ build_agent_resource(PERSON_AGENT_URL_PREFIX, name)
else
raise ArgumentError, "Unknown agent type #{type.inspect}"
end
+ end
+
+ def build_agent_resource(prefix, name)
+ Agent.new(::RDF::URI.new("#{prefix}##{URI.encode(name)}"))
end
def build_access(access)
raise "Can't build access #{inspect}" unless access
self.mode = case access