| rev | line source | 
| jbe@326 | 1 request.set_absolute_baseurl(request.get_relative_baseurl()) | 
| jbe@326 | 2 -- request.set_absolute_baseurl("http://www.example.com/lf/") | 
| jbe@326 | 3 | 
| jbe@326 | 4 config.app_name = "LiquidFeedback" | 
| jbe@326 | 5 config.app_version = "2.beta1" | 
| jbe@326 | 6 | 
| jbe@326 | 7 config.app_title = config.app_name .. " (" .. request.get_config_name() .. " environment)" | 
| jbe@326 | 8 | 
| jbe@326 | 9 config.app_logo = nil | 
| jbe@326 | 10 | 
| jbe@326 | 11 config.app_service_provider = "Snake Oil<br/>10000 Berlin<br/>Germany" | 
| jbe@326 | 12 | 
| jbe@326 | 13 --config.footer_html = '<a href="somewhere">some link</a>' | 
| jbe@326 | 14 | 
| jbe@326 | 15 config.use_terms = "=== Terms of Use ===\nNothing is allowed." | 
| jbe@326 | 16 --config.use_terms_html = "" | 
| jbe@326 | 17 | 
| jbe@326 | 18 config.use_terms_checkboxes = { | 
| jbe@326 | 19   { | 
| jbe@326 | 20     name = "terms_of_use_v1", | 
| jbe@326 | 21     html = "I accept the terms of use.", | 
| jbe@326 | 22     not_accepted_error = "You have to accept the terms of use to be able to register." | 
| jbe@326 | 23   } | 
| jbe@326 | 24 } | 
| jbe@326 | 25 | 
| jbe@326 | 26 config.locked_profile_fields = { | 
| jbe@326 | 27   login               = false, | 
| jbe@326 | 28   notify_email        = false, | 
| jbe@326 | 29   name                = false, | 
| jbe@326 | 30   organizational_unit = false, | 
| jbe@326 | 31   internal_posts      = false, | 
| jbe@326 | 32   realname            = false, | 
| jbe@326 | 33   birthday            = false, | 
| jbe@326 | 34   address             = false, | 
| jbe@326 | 35   email               = false | 
| jbe@326 | 36 } | 
| jbe@326 | 37 | 
| jbe@326 | 38 config.member_image_content_type = "image/jpeg" | 
| jbe@326 | 39 config.member_image_convert_func = { | 
| jbe@326 | 40   avatar = function(data) return os.pfilter(data, "convert", "jpeg:-", "-thumbnail",   "48x48", "jpeg:-") end, | 
| jbe@326 | 41   photo =  function(data) return os.pfilter(data, "convert", "jpeg:-", "-thumbnail", "240x240", "jpeg:-") end | 
| jbe@326 | 42 } | 
| jbe@326 | 43 | 
| jbe@326 | 44 config.member_image_default_file = { | 
| jbe@326 | 45   avatar = "avatar.jpg", | 
| jbe@326 | 46   photo = nil | 
| jbe@326 | 47 } | 
| jbe@326 | 48 | 
| jbe@326 | 49 config.default_lang = "en" | 
| jbe@326 | 50 | 
| jbe@326 | 51 -- after how long is a user considered inactive and the trustee will see warning | 
| jbe@326 | 52 -- notation is according to postgresql intervals | 
| jbe@326 | 53 config.delegation_warning_time = '6 months' | 
| jbe@326 | 54 | 
| jbe@326 | 55 config.mail_subject_prefix = "[LiquidFeedback] " | 
| jbe@326 | 56 | 
| jbe@326 | 57 config.fastpath_url_func = nil | 
| jbe@326 | 58 | 
| jbe@326 | 59 config.download_dir = nil | 
| jbe@326 | 60 | 
| jbe@326 | 61 config.download_use_terms = "=== Nutzungsbedingungen ===\nAlles ist verboten" | 
| jbe@326 | 62 | 
| jbe@326 | 63 config.public_access = false  -- Available options: "anonymous", "pseudonym" | 
| jbe@326 | 64 | 
| jbe@326 | 65 config.api_enabled = true | 
| jbe@326 | 66 | 
| jbe@326 | 67 config.feature_rss_enabled = false -- feature is broken | 
| jbe@326 | 68 | 
| jbe@326 | 69 config.single_unit_id = false | 
| jbe@326 | 70 | 
| jbe@326 | 71 -- OpenID authentication is not fully implemented yet, DO NOT USE BEFORE THIS NOTICE HAS BEEN REMOVED! | 
| jbe@326 | 72 config.auth_openid_enabled = false | 
| jbe@326 | 73 config.auth_openid_https_as_default = true | 
| jbe@326 | 74 config.auth_openid_identifier_check_func = function(uri) return false end | 
| jbe@326 | 75 | 
| jbe@326 | 76 request.set_allowed_json_request_slots{ "title", "actions", "support", "default", "trace", "system_error" } | 
| jbe@326 | 77 | 
| jbe@326 | 78 if request.get_json_request_slots() then | 
| jbe@326 | 79   request.force_absolute_baseurl() | 
| jbe@326 | 80 end | 
| jbe@326 | 81 | 
| jbe@326 | 82 request.set_404_route{ module = 'index', view = '404' } | 
| jbe@326 | 83 | 
| jbe@326 | 84 -- uncomment the following two lines to use C implementations of chosen | 
| jbe@326 | 85 -- functions and to disable garbage collection during the request, to | 
| jbe@326 | 86 -- increase speed: | 
| jbe@326 | 87 -- | 
| jbe@326 | 88 -- require 'webmcp_accelerator' | 
| jbe@326 | 89 -- collectgarbage("stop") | 
| jbe@326 | 90 | 
| jbe@326 | 91 -- open and set default database handle | 
| jbe@326 | 92 db = assert(mondelefant.connect{ | 
| jbe@326 | 93   engine='postgresql', | 
| jbe@326 | 94   dbname='liquid_feedback_p' | 
| jbe@326 | 95 }) | 
| jbe@326 | 96 at_exit(function() | 
| jbe@326 | 97   db:close() | 
| jbe@326 | 98 end) | 
| jbe@326 | 99 function mondelefant.class_prototype:get_db_conn() return db end | 
| jbe@326 | 100 | 
| jbe@326 | 101 -- enable output of SQL commands in trace system | 
| jbe@326 | 102 function db:sql_tracer(command) | 
| jbe@326 | 103   return function(error_info) | 
| jbe@326 | 104     local error_info = error_info or {} | 
| jbe@326 | 105     trace.sql{ command = command, error_position = error_info.position } | 
| jbe@326 | 106   end | 
| jbe@326 | 107 end | 
| jbe@326 | 108 | 
| jbe@326 | 109 | 
| jbe@326 | 110 -- TODO abstraction | 
| jbe@326 | 111 -- get record by id | 
| jbe@326 | 112 function mondelefant.class_prototype:by_id(id) | 
| jbe@326 | 113   local selector = self:new_selector() | 
| jbe@326 | 114   selector:add_where{ 'id = ?', id } | 
| jbe@326 | 115   selector:optional_object_mode() | 
| jbe@326 | 116   return selector:exec() | 
| jbe@326 | 117 end | 
| jbe@326 | 118 | 
| jbe@326 | 119 config.formatting_engine_executeables = { | 
| jbe@326 | 120   rocketwiki= "/opt/rocketwiki-lqfb/rocketwiki-lqfb", | 
| jbe@326 | 121   compat = "/opt/rocketwiki-lqfb/rocketwiki-lqfb-compat" | 
| jbe@326 | 122 } | 
| jbe@326 | 123 | 
| jbe@326 | 124 config.fastpath_url_func = function(member_id, image_type) | 
| jbe@326 | 125   return request.get_absolute_baseurl() .. "fastpath/getpic?" .. tostring(member_id) .. "+" .. tostring(image_type) | 
| jbe@326 | 126 end | 
| jbe@326 | 127 |