liquid_feedback_frontend

view app/main/registration_admin/verification.lua @ 1858:3d1f0464a3ea

Handle missing ldap.member.allowed function
author bsw
date Tue Sep 20 17:35:29 2022 +0200 (20 months ago)
parents 63ce1a5c05c1
children
line source
1 local verification = Verification:by_id(param.get_id())
2 local data = verification.verification_data or verification.request_data
4 local identification = config.self_registration.identification_func(data)
5 local member
6 if verification.verified_member_id then
7 member = Member:by_id(verification.verified_member_id)
8 identification = member.identification
9 end
11 local group, title, view
12 if verification.verified_member_id then
13 if member.deleted then
14 group = _"Cancelled accounts"
15 title = _"Cancelled account"
16 view = "verification_cancelled"
17 else
18 group = _"Accredited users"
19 title = member.identification
20 view = "verification_accredited"
21 end
22 elseif verification.denied then
23 group = "Rejected requests"
24 title = _"Rejected request"
25 view = "verification_rejected"
26 else
27 group = "Open requests"
28 title = _"Open request"
29 view = "verification_requests"
30 end
33 ui.title(function()
34 ui.link { module = "registration_admin", view = "index", content = _"User management" }
35 slot.put ( " » " )
36 ui.link { module = "registration_admin", view = view, content = group }
37 slot.put ( " » " )
38 ui.tag { tag = "span", content = title }
39 end)
40 app.html_title.title = _"User management"
42 ui.container{ attr = { class = "mdl-grid" }, content = function()
43 ui.container{ attr = { class = "mdl-cell mdl-cell--12-col" }, content = function()
44 ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
45 ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
46 ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = title }
47 end }
50 ui.form{
51 module = "registration_admin", action = "update_verification", id = verification.id,
52 routing = { ok = { mode = "redirect", module = "registration_admin", view = "verification", id = verification.id } },
53 record = data,
54 content = function()
56 if not verification.verified_member_id then
57 ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
58 ui.container{ content = verification.comment and verification.comment:gsub("///", " / ") or ""}
59 end }
60 end
62 ui.container{ attr = { class = "mdl-card__content" }, content = function()
64 for i, field in ipairs(config.self_registration.fields) do
65 ui.container{ content = function()
66 if field.type == "image" then
67 ui.link{ content = field.label, module = "registration_admin", view = "verification_image", id = verification.request_data[field.name], params = { field = i }, attr = { target = "_blank" } }
68 elseif field.name == "unit" then
69 local units_selector = Unit:new_selector()
70 :add_where{ "active" }
71 :add_order_by("name")
72 if field.where then
73 units_selector:add_where(field.where)
74 end
75 local units = {}
76 if field.optional then
77 table.insert(units, {
78 id = "",
79 name = _"None"
80 })
81 end
82 for i_unit, unit in ipairs(units_selector:exec()) do
83 table.insert(units, unit)
84 end
85 ui.field.select{
86 container_attr = { style = "display: inline-block;" },
87 label = field.label,
88 foreign_records = units,
89 foreign_id = "id",
90 foreign_name = "name",
91 name = field.name,
92 value = tonumber(data[field.name])
93 }
94 local requested_unit = Unit:by_id(tonumber(verification.request_data.unit))
95 ui.tag{ content = requested_unit and requested_unit.name or "-" }
96 elseif field.name == "sequential_number" then
97 ui.tag{ tag = "label", content = field.label }
98 slot.put(" ")
99 ui.tag{ tag = "span", content = data.sequential_number or _"None yet" }
100 else
101 ui.field.text{
102 container_attr = { class = "mdl-textfield mdl-js-textfield mdl-textfield--floating-label" },
103 attr = { id = "lf-register__data_" .. field.name, class = "mdl-textfield__input" },
104 label_attr = { class = "mdl-textfield__label", ["for"] = "lf-register__data" .. field.name },
105 label = field.label,
106 name = field.name
107 }
108 ui.tag{ content = verification.request_data[field.name] }
109 end
110 end }
111 end
113 ui.field.text{
114 container_attr = { class = "mdl-textfield mdl-js-textfield mdl-textfield--floating-label", style = "width: 30em;" },
115 attr = { id = "lf-register__data_identification", class = "mdl-textfield__input" },
116 label_attr = { class = "mdl-textfield__label", ["for"] = "lf-register__data_identification" },
117 label = "Identification",
118 name = "identification",
119 value = identification
120 }
122 if member and not member.activated and member.invite_code then
123 ui.container{ content = "Invite-Code: " .. member.invite_code }
124 end
126 end }
128 ui.container{ attr = { class = "mdl-card__actions mdl-card--border" }, content = function()
130 if verification.denied then
131 ui.link{ attr = { class = "mdl-button mdl-js-button mdl-button--raised" }, module = "registration_admin", view = view, content = "Back" }
132 elseif verification.verified_member_id then
133 ui.submit{ attr = { class = "mdl-button mdl-js-button mdl-button--raised" }, value = "Save personal data" }
134 slot.put("   ")
135 if not member.activated and not config.self_registration.manual_invitation then
136 ui.submit{ name = "invite", attr = { class = "mdl-button mdl-js-button mdl-button--raised" }, value = "Send email invitation again" }
137 slot.put("   ")
138 end
139 ui.link{ attr = { class = "mdl-button mdl-js-button mdl-button--raised" }, module = "registration_admin", view = view, content = "Back" }
140 slot.put("   ")
141 ui.link{ attr = { class = "mdl-button mdl-js-button" }, module = "admin", view = "member_edit", id = member.id, content = "User account" }
142 slot.put("   ")
143 ui.submit{ name = "cancel", attr = { class = "mdl-button mdl-js-button" }, value = _"Delete account" }
144 else
145 ui.submit{ name = "accredit", attr = { class = "mdl-button mdl-js-button mdl-button--raised" }, value = "Accredit user" }
146 slot.put("   ")
147 ui.submit{ attr = { class = "mdl-button mdl-js-button mdl-button--raised" }, value = "Save personal data" }
148 slot.put("   ")
149 ui.link{ attr = { class = "mdl-button mdl-js-button mdl-button--raised" }, module = "registration_admin", view = view, content = "Back" }
150 slot.put("   ")
151 ui.submit{ name = "drop", attr = { class = "mdl-button mdl-js-button" }, value = "Reject request" }
152 end
153 end }
155 end
156 }
157 end }
159 local verifications = Verification:new_selector()
160 :join("member", nil, "member.id = verification.verified_member_id")
161 :add_where{ "member.identification = ?", identification }
162 :add_where{ "verification.id <> ?", verification.id }
163 :exec()
165 if #verifications > 0 then
167 ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
168 ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
169 ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = function()
170 ui.tag{ content = _"Same identification" }
171 end }
172 end }
173 ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
174 execute.view{ module = "registration_admin", view = "_verification_list", params = { verifications = verifications } }
175 end }
176 end }
177 end
179 for i, field_name in ipairs(config.self_registration.match_fields) do
180 local field
181 for j, f in ipairs(config.self_registration.fields) do
182 if f.name == field_name then
183 field = f
184 end
185 end
186 local verifications = Verification:new_selector()
187 :add_where("verified_member_id NOTNULL")
188 :add_where{ "lower(request_data->>'" .. field.name .. "') = lower(?)", data[field.name] }
189 :add_where{ "verification.id <> ?", verification.id }
190 :exec()
192 if #verifications > 0 then
193 ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
194 ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
195 ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = function()
196 ui.tag{ content = _"Same " .. field.label }
197 end }
198 end }
199 ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function()
200 execute.view{ module = "registration_admin", view = "_verification_list", params = { verifications = verifications } }
201 end }
202 end }
203 end
204 end
206 end }
207 end }

Impressum / About Us