webmcp
annotate demo-app/model/user.lua @ 0:9fdfb27f8e67
Version 1.0.0
author | jbe/bsw |
---|---|
date | Sun Oct 25 12:00:00 2009 +0100 (2009-10-25) |
parents | |
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 |