| rev | line source | 
| bsw@734 | 1 -- ======================================================================== | 
| bsw@734 | 2 -- DO NOT CHANGE ANYTHING IN THIS FILE | 
| bsw@734 | 3 -- (except when you really know what you are doing!) | 
| bsw@734 | 4 -- ======================================================================== | 
| bsw@734 | 5 | 
| bsw@1178 | 6 config.app_version = "3.0.6" | 
| bsw@731 | 7 | 
| bsw@905 | 8 if not config.password_hash_algorithm then | 
| bsw@905 | 9   config.password_hash_algorithm = "crypt_sha512" | 
| bsw@905 | 10 end | 
| bsw@905 | 11 | 
| bsw@905 | 12 if not config.password_hash_min_rounds then | 
| bsw@905 | 13  config.password_hash_min_rounds = 10000 | 
| bsw@905 | 14 end | 
| bsw@905 | 15 | 
| bsw@905 | 16 if not config.password_hash_max_rounds then | 
| bsw@905 | 17   config.password_hash_max_rounds = 20000 | 
| bsw@905 | 18 end | 
| bsw@905 | 19 | 
| bsw@731 | 20 if config.enabled_languages == nil then | 
| bsw@1128 | 21   config.enabled_languages = { 'en', 'de', 'ka' } --, 'eo', 'el', 'hu', 'it', 'nl', 'zh-Hans', 'zh-TW' } | 
| bsw@731 | 22 end | 
| bsw@731 | 23 | 
| bsw@731 | 24 if config.default_lang == nil then | 
| bsw@731 | 25   config.default_lang = "en" | 
| bsw@731 | 26 end | 
| bsw@731 | 27 | 
| bsw@731 | 28 if config.mail_subject_prefix == nil then | 
| bsw@731 | 29   config.mail_subject_prefix = "[LiquidFeedback] " | 
| bsw@731 | 30 end | 
| bsw@731 | 31 | 
| bsw@731 | 32 if config.member_image_content_type == nil then | 
| bsw@731 | 33   config.member_image_content_type = "image/jpeg" | 
| bsw@731 | 34 end | 
| bsw@731 | 35 | 
| bsw@731 | 36 if config.member_image_convert_func == nil then | 
| bsw@731 | 37   config.member_image_convert_func = { | 
| bsw@731 | 38     avatar = function(data) return extos.pfilter(data, "convert", "jpeg:-", "-thumbnail",   "48x48", "jpeg:-") end, | 
| bsw@731 | 39     photo =  function(data) return extos.pfilter(data, "convert", "jpeg:-", "-thumbnail", "240x240", "jpeg:-") end | 
| bsw@731 | 40   } | 
| bsw@731 | 41 end | 
| bsw@731 | 42 | 
| bsw@736 | 43 if config.locked_profile_fields == nil then | 
| bsw@736 | 44   config.locked_profile_fields = {} | 
| bsw@736 | 45 end | 
| bsw@736 | 46 | 
| bsw@988 | 47 if config.check_delegations_default == nil then | 
| bsw@988 | 48   config.check_delegations_default = "confirm" | 
| bsw@988 | 49 end | 
| bsw@988 | 50 | 
| bsw@1071 | 51 if config.ldap == nil then | 
| bsw@1071 | 52   config.ldap = {} | 
| bsw@1071 | 53 end | 
| bsw@1071 | 54 | 
| bsw@732 | 55 if not config.database then | 
| bsw@732 | 56   config.database = { engine='postgresql', dbname='liquid_feedback' } | 
| bsw@732 | 57 end | 
| bsw@732 | 58 | 
| bsw@729 | 59 request.set_404_route{ module = 'index', view = '404' } | 
| bsw@729 | 60 | 
| bsw@729 | 61 request.set_absolute_baseurl(config.absolute_base_url) | 
| bsw@729 | 62 | 
| bsw@729 | 63 -- TODO abstraction | 
| bsw@729 | 64 -- get record by id | 
| bsw@729 | 65 function mondelefant.class_prototype:by_id(id) | 
| bsw@729 | 66   local selector = self:new_selector() | 
| bsw@729 | 67   selector:add_where{ 'id = ?', id } | 
| bsw@729 | 68   selector:optional_object_mode() | 
| bsw@729 | 69   return selector:exec() | 
| bsw@729 | 70 end | 
| bsw@729 | 71 | 
| bsw@1145 | 72 -- compatibility for WebMCP 1.2.6 | 
| bsw@1145 | 73 if not listen then | 
| bsw@1145 | 74 | 
| bsw@1160 | 75   WEBMCP_BASE_PATH = request.get_app_basepath() | 
| bsw@1161 | 76 | 
| bsw@1161 | 77   -- workaround bug in WebMCP 1.2.6 | 
| bsw@1161 | 78   if not string.find(WEBMCP_BASE_PATH, "/$") then | 
| bsw@1161 | 79     WEBMCP_BASE_PATH = WEBMCP_BASE_PATH .. "/" | 
| bsw@1161 | 80   end | 
| bsw@1160 | 81 | 
| bsw@1145 | 82   -- open and set default database handle | 
| bsw@1145 | 83   _G.db = assert(mondelefant.connect(config.database)) | 
| bsw@1145 | 84 | 
| bsw@1145 | 85   function mondelefant.class_prototype:get_db_conn() return db end | 
| bsw@1145 | 86 | 
| bsw@1145 | 87   -- close the database at exit | 
| bsw@1145 | 88   at_exit(function() | 
| bsw@1145 | 89     db:close() | 
| bsw@1145 | 90   end) | 
| bsw@1145 | 91 | 
| bsw@1145 | 92   function request.get_cookie(args) | 
| bsw@1145 | 93     return cgi.cookies[args.name] | 
| bsw@1145 | 94   end | 
| bsw@1145 | 95 | 
| bsw@1145 | 96   function request.get_param(args) | 
| bsw@1176 | 97     if args.meta then | 
| bsw@1176 | 98       return { content_type = cgi.post_types[image_type] } | 
| bsw@1176 | 99     else | 
| bsw@1176 | 100       return request.get_param_strings()[args.name] | 
| bsw@1176 | 101     end | 
| bsw@1176 | 102 | 
| bsw@1145 | 103   end | 
| bsw@1145 | 104 | 
| bsw@1145 | 105   function request.add_header(key, value) | 
| bsw@1145 | 106     print(key .. ": " .. value) | 
| bsw@1145 | 107   end | 
| bsw@1145 | 108 | 
| bsw@1145 | 109   local request_redirect = request.redirect | 
| bsw@1145 | 110   function request.redirect(args) | 
| bsw@1145 | 111     if args.static then | 
| bsw@1145 | 112       print('Location: ' .. encode.url{ static = args.static } .. '\n\n') | 
| bsw@1145 | 113       exit() | 
| bsw@1145 | 114     else | 
| bsw@1145 | 115       request_redirect(args) | 
| bsw@1145 | 116     end | 
| bsw@1145 | 117   end | 
| bsw@1145 | 118 | 
| bsw@1147 | 119   function request.allow_caching() | 
| bsw@1147 | 120     request.add_header("Cache-Control", "max-age=3600"); | 
| bsw@1147 | 121   end | 
| bsw@1147 | 122 | 
| jbe@1167 | 123 end |