webmcp

annotate framework/env/request/__init.lua @ 96:db4bf2e6513c

Fixed errors in sample webserver configurations and request/__init.lua
author jbe
date Wed Oct 10 18:41:11 2012 +0200 (2012-10-10)
parents 2f8d8edd1836
children 52305ec73d47
rev   line source
jbe/bsw@0 1 request._status = nil
jbe/bsw@0 2 request._forward = nil
jbe/bsw@0 3 request._forward_processed = false
jbe/bsw@0 4 request._redirect = nil
jbe/bsw@0 5 request._absolute_baseurl = nil
jbe/bsw@0 6 request._404_route = nil
jbe/bsw@0 7 request._force_absolute_baseurl = false
jbe/bsw@0 8 request._perm_params = {}
jbe/bsw@0 9 request._csrf_secret = nil
jbe@1 10 request._json_requests_allowed = false
jbe/bsw@0 11
jbe@91 12 request._params = {}
jbe/bsw@0 13 local depth
jbe/bsw@0 14 if cgi then -- if-clause to support interactive mode
jbe@91 15 for key, value in pairs(cgi.params) do
jbe@91 16 if not string.match(key, "^_webmcp_") then
jbe@91 17 request._params[key] = value
jbe@91 18 end
jbe@91 19 end
jbe@91 20 local path = cgi.params._webmcp_path
jbe@91 21 if path then
jbe@91 22 local function parse()
jbe@91 23 local module, action, view, suffix, id
jbe@91 24 if path == "" then
jbe@91 25 request._module = "index"
jbe@91 26 request._view = "index"
jbe@91 27 depth = 0
jbe@96 28 return
jbe@91 29 end
jbe@91 30 module = string.match(path, "^([^/]+)/$")
jbe@91 31 if module then
jbe@91 32 request._module = module
jbe@91 33 request._view = "index"
jbe@91 34 depth = 1
jbe@91 35 return
jbe@91 36 end
jbe@91 37 module, action = string.match(path, "^([^/]+)/([^/.]+)$")
jbe@91 38 if module then
jbe@91 39 request._module = module
jbe@91 40 request._action = action
jbe@91 41 depth = 1
jbe@91 42 return
jbe@91 43 end
jbe@91 44 module, view, suffix = string.match(path, "^([^/]+)/([^/.]+)%.([^/]+)$")
jbe@91 45 if module then
jbe@91 46 request._module = module
jbe@91 47 request._view = view
jbe@91 48 request._suffix = suffix
jbe@91 49 depth = 1
jbe@91 50 return
jbe@91 51 end
jbe@91 52 module, view, id, suffix = string.match(path, "^([^/]+)/([^/]+)/([^/.]+)%.([^/]+)$")
jbe@91 53 if module then
jbe@91 54 request._module = module
jbe@91 55 request._view = view
jbe@91 56 request._id = id
jbe@91 57 request._suffix = suffix
jbe@91 58 depth = 2
jbe@91 59 return
jbe@91 60 end
jbe@91 61 end
jbe@91 62 parse()
jbe@91 63 else
jbe@91 64 request._module = cgi.params._webmcp_module
jbe@91 65 request._action = cgi.params._webmcp_action
jbe@91 66 request._view = cgi.params._webmcp_view
jbe@91 67 request._suffix = cgi.params._webmcp_suffix
jbe@91 68 request._id = cgi.params._webmcp_id
jbe@96 69 depth = tonumber(cgi.params._webmcp_urldepth)
jbe@91 70 end
jbe/bsw@0 71 end
jbe/bsw@0 72 if depth and depth > 0 then
jbe/bsw@0 73 local elements = {}
jbe/bsw@0 74 for i = 1, depth do
jbe/bsw@0 75 elements[#elements+1] = "../"
jbe/bsw@0 76 end
jbe/bsw@0 77 request._relative_baseurl = table.concat(elements)
jbe/bsw@0 78 else
jbe/bsw@0 79 request._relative_baseurl = "./"
jbe/bsw@0 80 end
jbe/bsw@0 81
jbe/bsw@0 82 request._app_basepath = assert(
jbe/bsw@0 83 os.getenv("WEBMCP_APP_BASEPATH"),
jbe/bsw@0 84 'WEBMCP_APP_BASEPATH is not set.'
jbe/bsw@0 85 )
jbe/bsw@0 86 if not string.find(request._app_basepath, "/$") then
jbe/bsw@0 87 request._app_basebase = request._app_basepath .. "/"
jbe/bsw@0 88 end

Impressum / About Us