liquid_feedback_frontend

view app/main/_filter/20_session.lua @ 1858:3d1f0464a3ea

Handle missing ldap.member.allowed function
author bsw
date Tue Sep 20 17:35:29 2022 +0200 (20 months ago)
parents 446d2798f424
children
line source
1 local module = request.get_module()
2 local view = request.get_view()
4 local need_session = false
5 local cors_request = false
7 if module == "api" then
8 need_session = false
9 elseif module == "oauth2" then
10 if view == "authorization" then
11 need_session = true
12 elseif view == "session" then
13 need_session = true
14 cors_request = true
15 else
16 need_session = false
17 end
18 else
19 need_session = true
20 end
22 if need_session then
24 local cookie = request.get_cookie{ name = config.cookie_name }
26 if not cors_request then
27 local cookie_samesite = request.get_cookie{ name = config.cookie_name_samesite }
28 if cookie ~= cookie_samesite then
29 slot.put_into("error", _"Cookie error. Try restarting your web browser and login again.")
30 ui.script{ script = [[
31 function cookie_by_name(name) {
32 var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
33 if (match) return match[2];
34 }
35 var cookie = (cookie_by_name("]] .. config.cookie_name .. [["));
36 var cookie_samesite = (cookie_by_name("]] .. config.cookie_name_samesite ..[["));
37 if (cookie != cookie_samesite) {
38 document.cookie = "]] .. config.cookie_name .. [[= ; expires = Thu, 01 Jan 1970 00:00:00 GMT"
39 document.cookie = "]] .. config.cookie_name_samesite .. [[= ; expires = Thu, 01 Jan 1970 00:00:00 GMT"
40 window.location = "]] .. request.get_absolute_baseurl() .. [[";
41 }
42 ]]}
43 return
44 end
45 end
47 if cookie then
48 app.session = Session:by_ident(cookie)
49 end
50 end
52 if not app.session then
53 app.session = Session:new()
54 if need_session and not cors_request then
55 app.session:set_cookie()
56 end
57 end
59 locale.set{ lang = app.session and app.session.lang or config.default_lang or "en" }
61 if locale.get("lang") == "de" then
62 locale.set{
63 date_format = 'DD.MM.YYYY',
64 time_format = 'HH:MM{:SS} Uhr',
65 decimal_point = ','
66 }
67 end
69 app.single_unit_id = config.single_unit_id
71 if app.session.member then
72 local member_single_unit_id = app.session.member:get_single_unit_id() or config.single_unit_id
73 if member_single_unit_id then
74 app.single_unit_id = member_single_unit_id
75 end
76 end
78 execute.inner()

Impressum / About Us