webmcp

annotate demo-app/model/user.lua @ 4:5e32ef998acf

Version 1.0.4

ui.link{...} with POST target can now be parameterized with BOTH content and text to allow HTML content for JavaScript browsers and a text-only version for accessiblity

Changes related to database selectors:
- Support for row-based locking
- New method :count(), caching and returning the number of rows, which WOULD have been returned by :exec()
- Bugfix: WHERE and HAVING expressions are now enclosed in parenthesis to avoid problems with operator precedence

ui.script{...} now supports external .js files

Changes in langtool.lua to cope with escaped new-line chars (\n)
author jbe/bsw
date Fri Dec 25 12:00:00 2009 +0100 (2009-12-25)
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