webmcp
diff 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 |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/demo-app/model/user.lua Sun Oct 25 12:00:00 2009 +0100 1.3 @@ -0,0 +1,33 @@ 1.4 +User = mondelefant.new_class() 1.5 +User.table = 'user' 1.6 + 1.7 +User:add_reference{ 1.8 + mode = '1m', -- one (1) user can have many (m) sessions 1.9 + to = "Session", -- referenced model (quoting avoids auto-loading here) 1.10 + this_key = 'id', -- own key in user table 1.11 + that_key = 'user_id', -- other key in session table 1.12 + ref = 'sessions', -- name of reference 1.13 + back_ref = 'user', -- each autoloaded Session automatically refers back to the User 1.14 + default_order = '"ident"' -- order sessions by SQL expression "ident" 1.15 +} 1.16 + 1.17 +function User:by_ident_and_password(ident, password) 1.18 + local selector = self:new_selector() 1.19 + selector:add_where{ 'ident = ? AND password = ?', ident, password } 1.20 + selector:optional_object_mode() 1.21 + return selector:exec() 1.22 +end 1.23 + 1.24 +function User.object_get:name_with_login() 1.25 + return self.name .. ' (' .. self.login .. ')' 1.26 +end 1.27 + 1.28 +function User.object:require_privilege(privilege) 1.29 + if privilege == "admin" then 1.30 + assert(self.admin, "Administrator privilege required") 1.31 + elseif privilege == "write" then 1.32 + assert(self.write_priv, "Write privilege required") 1.33 + else 1.34 + error("Unknown privilege passed to require_privilege method of User") 1.35 + end 1.36 +end