class Tilia::DavAcl::Exception::NeedPrivileges
The 403-need privileges is thrown when a user didn't have the appropriate permissions to perform an operation
Attributes
privileges[RW]
The privileges the user didn't have.
@var array
uri[RW]
The relevant uri
@var string
Public Class Methods
new(uri, privileges)
click to toggle source
Constructor
@param string uri @param array privileges
# File lib/tilia/dav_acl/exception/need_privileges.rb, line 27 def initialize(uri, privileges) @uri = uri @privileges = privileges end
Public Instance Methods
serialize(server, error_node)
click to toggle source
Adds in extra information in the xml response.
This method adds the {DAV:}need-privileges element as defined in rfc3744
@param DAVServer server @param DOMElement error_node @return void
# File lib/tilia/dav_acl/exception/need_privileges.rb, line 44 def serialize(server, error_node) error = LibXML::XML::Node.new('d:need-privileges') error_node << error @privileges.each do |privilege| resource = LibXML::XML::Node.new('d:resource') error << resource href = LibXML::XML::Node.new('d:href', "#{server.base_uri}#{@uri}") resource << href priv = LibXML::XML::Node.new('d:privilege') resource << priv privilege_parts = /^{([^}]*)}(.*)$/.match(privilege) priv << LibXML::XML::Node.new("d:#{privilege_parts[2]}") end end
to_s()
click to toggle source
TODO: document
# File lib/tilia/dav_acl/exception/need_privileges.rb, line 33 def to_s "User did not have the required privileges (#{@privileges.join(', ')}) for path \"#{@uri}\"" end