webmcp
annotate demo-app/model/user.lua @ 68:ebdc20b7048b
Lua 5.2 compatibility:
Make function load accepting strings as first argument
Make function load accepting strings as first argument
| author | jbe | 
|---|---|
| date | Tue Apr 17 16:26:32 2012 +0200 (2012-04-17) | 
| 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 |