| 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@1130
 | 
     6 config.app_version = "3.0.4"
 | 
| 
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@1145
 | 
    75   -- open and set default database handle
 | 
| 
bsw@1145
 | 
    76   _G.db = assert(mondelefant.connect(config.database))
 | 
| 
bsw@1145
 | 
    77 
 | 
| 
bsw@1145
 | 
    78   function mondelefant.class_prototype:get_db_conn() return db end
 | 
| 
bsw@1145
 | 
    79 
 | 
| 
bsw@1145
 | 
    80   -- close the database at exit
 | 
| 
bsw@1145
 | 
    81   at_exit(function() 
 | 
| 
bsw@1145
 | 
    82     db:close()
 | 
| 
bsw@1145
 | 
    83   end)
 | 
| 
bsw@1145
 | 
    84   
 | 
| 
bsw@1145
 | 
    85   function request.get_cookie(args)
 | 
| 
bsw@1145
 | 
    86     return cgi.cookies[args.name]
 | 
| 
bsw@1145
 | 
    87   end
 | 
| 
bsw@1145
 | 
    88   
 | 
| 
bsw@1145
 | 
    89   function request.get_param(args)
 | 
| 
bsw@1145
 | 
    90     return request.get_param_strings()[args.name]
 | 
| 
bsw@1145
 | 
    91   end
 | 
| 
bsw@1145
 | 
    92   
 | 
| 
bsw@1145
 | 
    93   function request.add_header(key, value)
 | 
| 
bsw@1145
 | 
    94     print(key .. ": " .. value)
 | 
| 
bsw@1145
 | 
    95   end
 | 
| 
bsw@1145
 | 
    96   
 | 
| 
bsw@1145
 | 
    97   local request_redirect = request.redirect
 | 
| 
bsw@1145
 | 
    98   function request.redirect(args)
 | 
| 
bsw@1145
 | 
    99     if args.static then
 | 
| 
bsw@1145
 | 
   100       print('Location: ' .. encode.url{ static = args.static } .. '\n\n')
 | 
| 
bsw@1145
 | 
   101       exit()
 | 
| 
bsw@1145
 | 
   102     else
 | 
| 
bsw@1145
 | 
   103       request_redirect(args)
 | 
| 
bsw@1145
 | 
   104     end
 | 
| 
bsw@1145
 | 
   105   end
 | 
| 
bsw@1145
 | 
   106 
 | 
| 
bsw@1147
 | 
   107   function request.allow_caching()
 | 
| 
bsw@1147
 | 
   108     request.add_header("Cache-Control", "max-age=3600");
 | 
| 
bsw@1147
 | 
   109   end
 | 
| 
bsw@1147
 | 
   110 
 | 
| 
bsw@1145
 | 
   111   return
 | 
| 
bsw@1145
 | 
   112 end
 | 
| 
bsw@1145
 | 
   113 
 | 
| 
bsw@1145
 | 
   114 if not config.fork then
 | 
| 
bsw@1145
 | 
   115   config.fork = {}
 | 
| 
bsw@1145
 | 
   116 end
 | 
| 
bsw@1145
 | 
   117 
 | 
| 
bsw@1145
 | 
   118 if not config.fork.pre then
 | 
| 
bsw@1145
 | 
   119   config.fork.pre = 4
 | 
| 
bsw@1145
 | 
   120 end
 | 
| 
bsw@1145
 | 
   121 
 | 
| 
bsw@1145
 | 
   122 if not config.fork.max then
 | 
| 
bsw@1145
 | 
   123   config.fork.max = 8
 | 
| 
bsw@1145
 | 
   124 end
 | 
| 
bsw@1145
 | 
   125 
 | 
| 
bsw@1145
 | 
   126 if not config.fork.delay then
 | 
| 
bsw@1145
 | 
   127   config.fork.delay = 1
 | 
| 
bsw@1145
 | 
   128 end
 | 
| 
bsw@1145
 | 
   129 
 | 
| 
bsw@1145
 | 
   130 if not config.port then
 | 
| 
bsw@1145
 | 
   131   config.port = 8080
 | 
| 
bsw@1145
 | 
   132 end
 | 
| 
bsw@1145
 | 
   133 
 | 
| 
bsw@1145
 | 
   134 listen{
 | 
| 
bsw@1145
 | 
   135   { proto = "tcp4", port = config.port, localhost = true },
 | 
| 
bsw@1145
 | 
   136   pre_fork = config.fork.pre,
 | 
| 
bsw@1145
 | 
   137   max_fork = config.fork.max,
 | 
| 
bsw@1145
 | 
   138   fork_delay = config.fork.delay
 | 
| 
bsw@1145
 | 
   139 }
 |