annotate framework/env/request/set_cookie.lua @ 174:070edea2a92f
Bugfix in json.object and json.array functions: use null-marker for nil values
 | author | jbe | 
 | date | Fri Aug 01 20:29:30 2014 +0200 (2014-08-01) | 
 | parents | 944642a3e488 | 
 | children | 32ec28229bb5 | 
 
 | rev | line source | 
| jbe/bsw@16 | 1 --[[-- | 
| jbe/bsw@16 | 2 request.set_cookie{ | 
| jbe/bsw@16 | 3   name   = name,     -- name of cookie | 
| jbe/bsw@16 | 4   value  = value,    -- value of cookie | 
| jbe/bsw@16 | 5   domain = domain,   -- optional domain domain where cookie is transmitted | 
| jbe/bsw@16 | 6   path   = path,     -- optional path where cookie is transmitted, defaults to application base | 
| jbe/bsw@16 | 7   secure = secure    -- optional boolean, indicating if cookie should only be transmitted over HTTPS | 
| jbe/bsw@16 | 8 } | 
| jbe/bsw@16 | 9 | 
| jbe/bsw@16 | 10 This function is similar to rocketwiki.set_cookie{...}, except that it automatically sets the path to the application base. It also sets secure=true, if the secure option is unset and the application base URL starts with "https://". | 
| jbe/bsw@16 | 11 | 
| jbe/bsw@16 | 12 --]]-- | 
| jbe/bsw@16 | 13 | 
| jbe/bsw@16 | 14 function request.set_cookie(args) | 
| jbe/bsw@16 | 15   local path = args.path | 
| jbe/bsw@16 | 16   if not path then | 
| jbe/bsw@16 | 17     path = string.match( | 
| jbe/bsw@16 | 18       request.get_absolute_baseurl(), | 
| jbe/bsw@16 | 19       "://[^/]*(.*)" | 
| jbe/bsw@16 | 20     ) | 
| jbe/bsw@16 | 21     if path == nil or path == "" then | 
| jbe/bsw@16 | 22       path = "/" | 
| jbe/bsw@16 | 23     end | 
| jbe/bsw@16 | 24   end | 
| jbe/bsw@16 | 25   local secure = args.secure | 
| jbe/bsw@16 | 26   if secure == nil then | 
| jbe/bsw@16 | 27     if string.find( | 
| jbe/bsw@16 | 28       string.lower(request.get_absolute_baseurl()), | 
| jbe/bsw@16 | 29       "^https://" | 
| jbe/bsw@16 | 30     ) then | 
| jbe/bsw@16 | 31       secure = true | 
| jbe/bsw@16 | 32     else | 
| jbe/bsw@16 | 33       secure = false | 
| jbe/bsw@16 | 34     end | 
| jbe/bsw@16 | 35   end | 
| jbe/bsw@16 | 36   cgi.set_cookie{ | 
| jbe/bsw@16 | 37     name   = args.name, | 
| jbe/bsw@16 | 38     value  = args.value, | 
| jbe/bsw@16 | 39     domain = args.domain, | 
| jbe/bsw@16 | 40     path   = path, | 
| jbe/bsw@16 | 41     secure = secure | 
| jbe/bsw@16 | 42   } | 
| jbe/bsw@16 | 43 end |