webmcp
annotate demo-app/model/session.lua @ 3:795b764629ca
Version 1.0.3
Important bugfix related to internal forwards (Bug was introduced by the restriction of views with underscore prefix in Version 1.0.2)
Important bugfix related to internal forwards (Bug was introduced by the restriction of views with underscore prefix in Version 1.0.2)
| author | jbe |
|---|---|
| date | Thu Dec 10 12:00:00 2009 +0100 (2009-12-10) |
| 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 |