webmcp

diff framework/env/request/handler.lua @ 267:56d237b81c18

Support for external redirects and redirects to static files
author jbe
date Fri Mar 20 15:12:31 2015 +0100 (2015-03-20)
parents 8aa38ddcc1b2
children aedd13009ddc
line diff
     1.1 --- a/framework/env/request/handler.lua	Fri Mar 20 13:41:28 2015 +0100
     1.2 +++ b/framework/env/request/handler.lua	Fri Mar 20 15:12:31 2015 +0100
     1.3 @@ -214,29 +214,20 @@
     1.4        slot.put("</p>")
     1.5      end)
     1.6    elseif redirect_data then
     1.7 -    local redirect_params = {}
     1.8 -    for key, value in pairs(redirect_data.params) do
     1.9 -      redirect_params[key] = value
    1.10 +    redirect_data = table.new(redirect_data)
    1.11 +    if redirect_data.base == nil then
    1.12 +      redirect_data.base = request.get_absolute_baseurl()
    1.13      end
    1.14 +    redirect_data.params = table.new(redirect_data.params)
    1.15      local slot_dump = slot.dump_all()
    1.16      if slot_dump ~= "" then
    1.17 -      redirect_params.tempstore = tempstore.save(slot_dump)
    1.18 +      redirect_data.params.tempstore = tempstore.save(slot_dump)
    1.19      end
    1.20      http_request:send_status("303 See Other")
    1.21      for i, header in ipairs(request._response_headers) do
    1.22        http_request:send_header(header[1], header[2])
    1.23      end
    1.24 -    http_request:send_header(
    1.25 -      "Location",
    1.26 -      encode.url{
    1.27 -        base   = request.get_absolute_baseurl(),
    1.28 -        module = redirect_data.module,
    1.29 -        view   = redirect_data.view,
    1.30 -        id     = redirect_data.id,
    1.31 -        params = redirect_params,
    1.32 -        anchor = redirect_data.anchor
    1.33 -      }
    1.34 -    )
    1.35 +    http_request:send_header("Location", encode.url(redirect_data))
    1.36      http_request:finish()
    1.37    end
    1.38  

Impressum / About Us