annotate demo-app/model/user.lua @ 475:a2ff42a66212
Added attr support for value container
 | author | bsw | 
 | date | Tue Jun 06 11:46:44 2017 +0200 (2017-06-06) | 
 | parents | 9fdfb27f8e67 | 
 | children |  | 
 
 | rev | line source | 
| jbe/bsw@0 | 1 User = mondelefant.new_class() | 
| jbe/bsw@0 | 2 User.table = 'user' | 
| jbe/bsw@0 | 3 | 
| jbe/bsw@0 | 4 User:add_reference{ | 
| jbe/bsw@0 | 5   mode          = '1m',        -- one (1) user can have many (m) sessions | 
| jbe/bsw@0 | 6   to            = "Session",   -- referenced model (quoting avoids auto-loading here) | 
| jbe/bsw@0 | 7   this_key      = 'id',        -- own key in user table | 
| jbe/bsw@0 | 8   that_key      = 'user_id',   -- other key in session table | 
| jbe/bsw@0 | 9   ref           = 'sessions',  -- name of reference | 
| jbe/bsw@0 | 10   back_ref      = 'user',      -- each autoloaded Session automatically refers back to the User | 
| jbe/bsw@0 | 11   default_order = '"ident"'    -- order sessions by SQL expression "ident" | 
| jbe/bsw@0 | 12 } | 
| jbe/bsw@0 | 13 | 
| jbe/bsw@0 | 14 function User:by_ident_and_password(ident, password) | 
| jbe/bsw@0 | 15   local selector = self:new_selector() | 
| jbe/bsw@0 | 16   selector:add_where{ 'ident = ? AND password = ?', ident, password } | 
| jbe/bsw@0 | 17   selector:optional_object_mode() | 
| jbe/bsw@0 | 18   return selector:exec() | 
| jbe/bsw@0 | 19 end | 
| jbe/bsw@0 | 20 | 
| jbe/bsw@0 | 21 function User.object_get:name_with_login() | 
| jbe/bsw@0 | 22   return self.name .. ' (' .. self.login .. ')' | 
| jbe/bsw@0 | 23 end | 
| jbe/bsw@0 | 24 | 
| jbe/bsw@0 | 25 function User.object:require_privilege(privilege) | 
| jbe/bsw@0 | 26   if privilege == "admin" then | 
| jbe/bsw@0 | 27     assert(self.admin, "Administrator privilege required") | 
| jbe/bsw@0 | 28   elseif privilege == "write" then | 
| jbe/bsw@0 | 29     assert(self.write_priv, "Write privilege required") | 
| jbe/bsw@0 | 30   else | 
| jbe/bsw@0 | 31     error("Unknown privilege passed to require_privilege method of User") | 
| jbe/bsw@0 | 32   end | 
| jbe/bsw@0 | 33 end |