webmcp

annotate demo-app/model/session.lua @ 88:c743d80859cf

Added tag v1.2.4 for changeset a5106c0a9be4
author jbe
date Fri Jul 06 12:54:26 2012 +0200 (2012-07-06)
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

Impressum / About Us