liquid_feedback_frontend

annotate app/main/_prefork/10_init.lua @ 1248:c0fd12b97d65

Changes on notifications system, newsletter support added
author bsw
date Tue Apr 05 20:40:37 2016 +0200 (2016-04-05)
parents a3e9e3433852
children 84f6e17c7ceb
rev   line source
bsw@1237 1 config.app_version = "3.1.0"
bsw@1222 2
bsw@1222 3 -- TODO abstraction
bsw@1222 4 -- get record by id
bsw@1222 5 function mondelefant.class_prototype:by_id(id)
bsw@1222 6 local selector = self:new_selector()
bsw@1222 7 selector:add_where{ 'id = ?', id }
bsw@1222 8 selector:optional_object_mode()
bsw@1222 9 return selector:exec()
bsw@1222 10 end
bsw@1222 11
bsw@1222 12 if not config.password_hash_algorithm then
bsw@1222 13 config.password_hash_algorithm = "crypt_sha512"
bsw@1222 14 end
bsw@1222 15
bsw@1222 16 if not config.password_hash_min_rounds then
bsw@1222 17 config.password_hash_min_rounds = 10000
bsw@1222 18 end
bsw@1222 19
bsw@1222 20 if not config.password_hash_max_rounds then
bsw@1222 21 config.password_hash_max_rounds = 20000
bsw@1222 22 end
bsw@1222 23
bsw@1222 24 if config.enabled_languages == nil then
bsw@1222 25 config.enabled_languages = { 'en', 'de', 'ka' } --, 'eo', 'el', 'hu', 'it', 'nl', 'zh-Hans', 'zh-TW' }
bsw@1222 26 end
bsw@1222 27
bsw@1222 28 if config.default_lang == nil then
bsw@1222 29 config.default_lang = "en"
bsw@1222 30 end
bsw@1222 31
bsw@1222 32 if config.mail_subject_prefix == nil then
bsw@1222 33 config.mail_subject_prefix = "[LiquidFeedback] "
bsw@1222 34 end
bsw@1222 35
bsw@1222 36 if config.member_image_content_type == nil then
bsw@1222 37 config.member_image_content_type = "image/jpeg"
bsw@1222 38 end
bsw@1222 39
bsw@1222 40 if config.member_image_convert_func == nil then
bsw@1222 41 config.member_image_convert_func = {
bsw@1222 42 avatar = function(data) return extos.pfilter(data, "convert", "jpeg:-", "-thumbnail", "48x48", "jpeg:-") end,
bsw@1222 43 photo = function(data) return extos.pfilter(data, "convert", "jpeg:-", "-thumbnail", "240x240", "jpeg:-") end
bsw@1222 44 }
bsw@1222 45 end
bsw@1222 46
bsw@1222 47 if config.locked_profile_fields == nil then
bsw@1222 48 config.locked_profile_fields = {}
bsw@1222 49 end
bsw@1222 50
bsw@1222 51 if config.check_delegations_default == nil then
bsw@1222 52 config.check_delegations_default = "confirm"
bsw@1222 53 end
bsw@1222 54
bsw@1222 55 if config.ldap == nil then
bsw@1222 56 config.ldap = {}
bsw@1222 57 end
bsw@1222 58
bsw@1222 59 if not config.database then
bsw@1222 60 config.database = { engine='postgresql', dbname='liquid_feedback' }
bsw@1222 61 end
bsw@1222 62
jbe@1167 63 if config.fork == nil then
bsw@1158 64 config.fork = {}
bsw@1158 65 end
bsw@1158 66
jbe@1167 67 if config.fork.pre == nil then
jbe@1167 68 config.fork.pre = 2
bsw@1158 69 end
bsw@1158 70
jbe@1167 71 if config.fork.min == nil then
jbe@1167 72 config.fork.min = 4
jbe@1167 73 end
jbe@1167 74
jbe@1167 75 if config.fork.max == nil then
bsw@1169 76 config.fork.max = 128
bsw@1158 77 end
bsw@1158 78
jbe@1167 79 if config.fork.delay == nil then
jbe@1167 80 config.fork.delay = 0.125
jbe@1167 81 end
jbe@1167 82
jbe@1167 83 if config.fork.error_delay == nil then
jbe@1167 84 config.fork.error_delay = 2
bsw@1158 85 end
bsw@1158 86
jbe@1167 87 if config.fork.exit_delay == nil then
jbe@1167 88 config.fork.exit_delay = 2
jbe@1167 89 end
jbe@1167 90
jbe@1167 91 if config.fork.idle_timeout == nil then
jbe@1167 92 config.fork.idle_timeout = 900
jbe@1167 93 end
jbe@1167 94
jbe@1167 95 if config.port == nil then
bsw@1158 96 config.port = 8080
bsw@1158 97 end
bsw@1158 98
bsw@1158 99 if config.localhost == nil then
bsw@1158 100 config.localhost = true
bsw@1158 101 end
bsw@1158 102
jbe@1167 103 local listen_options = {
jbe@1167 104 pre_fork = config.fork.pre,
jbe@1167 105 min_fork = config.fork.min,
jbe@1167 106 max_fork = config.fork.max,
jbe@1167 107 fork_delay = config.fork.delay,
jbe@1167 108 fork_error_delay = config.fork.error_delay,
jbe@1167 109 exit_delay = config.fork.exit_delay,
jbe@1167 110 idle_timeout = config.fork.idle_timeout,
bsw@1169 111 memory_limit = config.fork.memory_limit,
jbe@1167 112 min_requests_per_fork = config.fork.min_requests,
jbe@1167 113 max_requests_per_fork = config.fork.max_requests,
jbe@1167 114 http_options = config.http_options
jbe@1167 115 }
jbe@1167 116
jbe@1167 117 if config.ipv6 then
bsw@1199 118 local host = config.localhost and "::1" or "::"
bsw@1199 119 listen_options[#listen_options+1] = { proto = "tcp", host = host, port = config.port }
jbe@1167 120 end
jbe@1167 121 if config.ipv6 ~= "only" then
bsw@1202 122 local host = config.localhost and "127.0.0.1" or "0.0.0.0"
bsw@1199 123 listen_options[#listen_options+1] = { proto = "tcp", host = host, port = config.port }
jbe@1167 124 end
jbe@1167 125
bsw@1222 126 request.set_404_route{ module = 'index', view = '404' }
bsw@1222 127
bsw@1222 128 request.set_absolute_baseurl(config.absolute_base_url)
bsw@1222 129
jbe@1167 130 listen(listen_options)
jbe@1167 131
bsw@1158 132 listen{
jbe@1167 133 {
jbe@1167 134 proto = "interval",
jbe@1167 135 name = "send_pending_notifications",
jbe@1167 136 delay = 5,
bsw@1248 137 handler = function()
bsw@1248 138 while true do
bsw@1248 139 local did_work = false
bsw@1248 140 local tmp
bsw@1248 141 tmp = Newsletter:send_next_newsletter()
bsw@1248 142 if tmp then did_work = true end
bsw@1248 143 tmp = Event:send_next_notification()
bsw@1248 144 if tmp then did_work = true end
bsw@1248 145 tmp = InitiativeForNotification:notify_next_member()
bsw@1248 146 if tmp then did_work = true end
bsw@1248 147 if not did_work then
bsw@1248 148 break
bsw@1248 149 end
bsw@1248 150 end
jbe@1167 151 end
jbe@1167 152 },
jbe@1167 153 min_fork = 1,
jbe@1167 154 max_fork = 1
bsw@1158 155 }
bsw@1158 156
bsw@1158 157 execute.inner()
bsw@1158 158

Impressum / About Us