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

Impressum / About Us