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