webmcp

annotate demo-app/model/user.lua @ 567:5e3ebe9fd0ce

Added tag v2.2.1 for changeset 3b71fdb3a00d
author jbe
date Wed Apr 28 13:07:52 2021 +0200 (2021-04-28)
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

Impressum / About Us