bsw/jbe@0: Session = mondelefant.new_class() bsw/jbe@0: Session.table = 'session' bsw/jbe@0: Session.primary_key = { 'ident' } bsw/jbe@0: bsw/jbe@0: Session:add_reference{ bsw/jbe@0: mode = 'm1', bsw/jbe@0: to = "Member", bsw/jbe@0: this_key = 'member_id', bsw/jbe@0: that_key = 'id', bsw/jbe@0: ref = 'member', bsw/jbe@0: } bsw/jbe@0: bsw/jbe@0: local function random_string() bsw/jbe@0: return multirand.string( bsw/jbe@0: 32, bsw/jbe@0: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' bsw/jbe@0: ) bsw/jbe@0: end bsw/jbe@0: bsw/jbe@0: function Session:new() bsw/jbe@0: local session = self.prototype.new(self) -- super call bsw/jbe@0: session.ident = random_string() bsw/jbe@0: session.additional_secret = random_string() bsw/jbe@0: session:save() bsw/jbe@0: return session bsw/jbe@0: end bsw/jbe@0: bsw/jbe@0: function Session:by_ident(ident) bsw/jbe@0: local selector = self:new_selector() bsw/jbe@0: selector:add_where{ 'ident = ?', ident } bsw/jbe@0: selector:optional_object_mode() bsw/jbe@0: return selector:exec() bsw/jbe@0: end