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

Impressum / About Us