liquid_feedback_frontend

annotate model/session.lua @ 1306:1172f9411000

Updated German translation
author bsw
date Sat May 07 19:28:07 2016 +0200 (2016-05-07)
parents aefef1556d55
children 32cc544d5a5b
rev   line source
bsw/jbe@0 1 Session = mondelefant.new_class()
bsw/jbe@0 2 Session.table = 'session'
bsw/jbe@0 3 Session.primary_key = { 'ident' }
bsw/jbe@0 4
bsw/jbe@0 5 Session:add_reference{
bsw/jbe@0 6 mode = 'm1',
bsw/jbe@0 7 to = "Member",
bsw/jbe@0 8 this_key = 'member_id',
bsw/jbe@0 9 that_key = 'id',
bsw/jbe@0 10 ref = 'member',
bsw/jbe@0 11 }
bsw/jbe@0 12
bsw/jbe@0 13 local function random_string()
bsw/jbe@0 14 return multirand.string(
bsw/jbe@0 15 32,
bsw/jbe@0 16 '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
bsw/jbe@0 17 )
bsw/jbe@0 18 end
bsw/jbe@0 19
bsw/jbe@0 20 function Session:new()
bsw/jbe@0 21 local session = self.prototype.new(self) -- super call
bsw/jbe@0 22 session.ident = random_string()
bsw/jbe@0 23 session.additional_secret = random_string()
bsw/jbe@0 24 session:save()
bsw/jbe@0 25 return session
bsw/jbe@0 26 end
bsw/jbe@0 27
bsw/jbe@0 28 function Session:by_ident(ident)
bsw/jbe@0 29 local selector = self:new_selector()
bsw/jbe@0 30 selector:add_where{ 'ident = ?', ident }
bsw@1074 31 selector:add_field{ 'authority_uid' }
bsw/jbe@0 32 selector:optional_object_mode()
bsw/jbe@0 33 return selector:exec()
bsw/jbe@0 34 end
bsw@813 35
bsw@813 36 function Session.object:has_access(level)
bsw@813 37 if level == "member" then
bsw@813 38 if app.session.member_id then
bsw@813 39 return true
bsw@813 40 else
bsw@813 41 return false
bsw@813 42 end
bsw@813 43
bsw@813 44 elseif level == "everything" then
bsw@813 45 if self:has_access("member") or config.public_access == "everything" then
bsw@813 46 return true
bsw@813 47 else
bsw@813 48 return false
bsw@813 49 end
bsw@813 50
bsw@813 51 elseif level == "all_pseudonymous" then
bsw@813 52 if self:has_access("everything") or config.public_access == "all_pseudonymous" then
bsw@813 53 return true
bsw@813 54 else
bsw@813 55 return false
bsw@813 56 end
bsw@813 57
bsw@813 58 elseif level == "authors_pseudonymous" then
bsw@813 59 if self:has_access("all_pseudonymous") or config.public_access == "authors_pseudonymous" then
bsw@813 60 return true
bsw@813 61 else
bsw@813 62 return false
bsw@813 63 end
bsw@813 64
bsw@813 65 elseif level == "anonymous" then
bsw@813 66 if self:has_access("authors_pseudonymous") or config.public_access == "anonymous" then
bsw@813 67 return true
bsw@813 68 else
bsw@813 69 return false
bsw@813 70 end
bsw@813 71
bsw@813 72 end
bsw@813 73
bsw@813 74 error("invalid access level")
bsw@813 75 end

Impressum / About Us