app/models/hydra/access_controls/permission.rb in hydra-access-controls-11.0.6 vs app/models/hydra/access_controls/permission.rb in hydra-access-controls-11.0.7

- old
+ new

@@ -39,11 +39,11 @@ build_access(access) if access super(attrs) end def agent_name - URI.decode(parsed_agent.last) + decode(parsed_agent.last) end def update(*) super.tap { reset } end @@ -78,11 +78,11 @@ raise ArgumentError, "Unknown agent type #{type.inspect}" end end def build_agent_resource(prefix, name) - [Agent.new(::RDF::URI.new("#{prefix}##{URI.encode(name)}"))] + [Agent.new(::RDF::URI.new("#{prefix}##{encode(name)}"))] end def build_access(access) raise "Can't build access #{inspect}" unless access self.mode = case access @@ -93,8 +93,18 @@ when 'discover' [Mode.new(Hydra::ACL.Discover)] else raise ArgumentError, "Unknown access #{access.inspect}" end + end + + private + + def encode(str) + URI::RFC2396_Parser.new.escape(str) + end + + def decode(str) + URI::RFC2396_Parser.new.unescape(str) end end end