webmcp
diff demo-app/model/session.lua @ 0:9fdfb27f8e67
Version 1.0.0
author | jbe/bsw |
---|---|
date | Sun Oct 25 12:00:00 2009 +0100 (2009-10-25) |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/demo-app/model/session.lua Sun Oct 25 12:00:00 2009 +0100 1.3 @@ -0,0 +1,35 @@ 1.4 +Session = mondelefant.new_class() 1.5 +Session.table = 'session' 1.6 +Session.primary_key = { "ident" } 1.7 + 1.8 +Session:add_reference{ 1.9 + mode = 'm1', -- many (m) sessions refer to one (1) user 1.10 + to = "User", -- name of referenced model (quoting avoids auto-loading here) 1.11 + this_key = 'user_id', -- own key in session table 1.12 + that_key = 'id', -- other key in user table 1.13 + ref = 'user', -- name of reference 1.14 + back_ref = nil, -- not used for m1 relation! 1.15 + default_order = nil -- not used for m1 relation! 1.16 +} 1.17 + 1.18 +local function random_string() 1.19 + return multirand.string( 1.20 + 32, 1.21 + '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' 1.22 + ) 1.23 +end 1.24 + 1.25 +function Session:new() 1.26 + local session = self.prototype.new(self) -- super call 1.27 + session.ident = random_string() 1.28 + session.csrf_secret = random_string() 1.29 + session:save() 1.30 + return session 1.31 +end 1.32 + 1.33 +function Session:by_ident(ident) 1.34 + local selector = self:new_selector() 1.35 + selector:add_where{ 'ident = ?', ident } 1.36 + selector:optional_object_mode() 1.37 + return selector:exec() 1.38 +end