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