webmcp
annotate demo-app/model/session.lua @ 251:23901a8f0d58
Bugfix in request.process(): io.open instead of file.open
| author | jbe | 
|---|---|
| date | Sun Mar 01 21:41:33 2015 +0100 (2015-03-01) | 
| parents | 9fdfb27f8e67 | 
| children | 
| rev | line source | 
|---|---|
| jbe/bsw@0 | 1 Session = mondelefant.new_class() | 
| jbe/bsw@0 | 2 Session.table = 'session' | 
| jbe/bsw@0 | 3 Session.primary_key = { "ident" } | 
| jbe/bsw@0 | 4 | 
| jbe/bsw@0 | 5 Session:add_reference{ | 
| jbe/bsw@0 | 6 mode = 'm1', -- many (m) sessions refer to one (1) user | 
| jbe/bsw@0 | 7 to = "User", -- name of referenced model (quoting avoids auto-loading here) | 
| jbe/bsw@0 | 8 this_key = 'user_id', -- own key in session table | 
| jbe/bsw@0 | 9 that_key = 'id', -- other key in user table | 
| jbe/bsw@0 | 10 ref = 'user', -- name of reference | 
| jbe/bsw@0 | 11 back_ref = nil, -- not used for m1 relation! | 
| jbe/bsw@0 | 12 default_order = nil -- not used for m1 relation! | 
| jbe/bsw@0 | 13 } | 
| jbe/bsw@0 | 14 | 
| jbe/bsw@0 | 15 local function random_string() | 
| jbe/bsw@0 | 16 return multirand.string( | 
| jbe/bsw@0 | 17 32, | 
| jbe/bsw@0 | 18 '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' | 
| jbe/bsw@0 | 19 ) | 
| jbe/bsw@0 | 20 end | 
| jbe/bsw@0 | 21 | 
| jbe/bsw@0 | 22 function Session:new() | 
| jbe/bsw@0 | 23 local session = self.prototype.new(self) -- super call | 
| jbe/bsw@0 | 24 session.ident = random_string() | 
| jbe/bsw@0 | 25 session.csrf_secret = random_string() | 
| jbe/bsw@0 | 26 session:save() | 
| jbe/bsw@0 | 27 return session | 
| jbe/bsw@0 | 28 end | 
| jbe/bsw@0 | 29 | 
| jbe/bsw@0 | 30 function Session:by_ident(ident) | 
| jbe/bsw@0 | 31 local selector = self:new_selector() | 
| jbe/bsw@0 | 32 selector:add_where{ 'ident = ?', ident } | 
| jbe/bsw@0 | 33 selector:optional_object_mode() | 
| jbe/bsw@0 | 34 return selector:exec() | 
| jbe/bsw@0 | 35 end |