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