comparison mod_invites_register_web/mod_invites_register_web.lua @ 4833:15cf32e666da

mod_invites_register_web: Add mod_password_policy checks for web registration
author Matthew Wild <mwild1@gmail.com>
date Wed, 22 Dec 2021 15:05:31 +0000
parents 39d1a4ecdee6
children
comparison
equal deleted inserted replaced
4832:bfd4af4caddc 4833:15cf32e666da
14 return (url:gsub("^[^:]+:", "")); 14 return (url:gsub("^[^:]+:", ""));
15 end; 15 end;
16 }); 16 });
17 17
18 module:depends("register_apps"); 18 module:depends("register_apps");
19 local mod_password_policy = module:depends("password_policy");
19 20
20 local site_name = module:get_option_string("site_name", module.host); 21 local site_name = module:get_option_string("site_name", module.host);
21 local site_apps = module:shared("register_apps/apps"); 22 local site_apps = module:shared("register_apps/apps");
22 23
23 local webchat_url = module:get_option_string("webchat_url"); 24 local webchat_url = module:get_option_string("webchat_url");
57 uri = invite.uri; 58 uri = invite.uri;
58 type = invite.type; 59 type = invite.type;
59 jid = invite.jid; 60 jid = invite.jid;
60 inviter = invite.inviter; 61 inviter = invite.inviter;
61 app = query_params.c and site_apps[query_params.c]; 62 app = query_params.c and site_apps[query_params.c];
63 password_policy = mod_password_policy.get_policy();
62 }); 64 });
63 return invite_page; 65 return invite_page;
64 end 66 end
65 67
66 function handle_register_form(event) 68 function handle_register_form(event)
90 token = invite.token; 92 token = invite.token;
91 domain = module.host; 93 domain = module.host;
92 uri = invite.uri; 94 uri = invite.uri;
93 type = invite.type; 95 type = invite.type;
94 jid = invite.jid; 96 jid = invite.jid;
97 password_policy = mod_password_policy.get_policy();
95 98
96 msg_class = "alert-warning"; 99 msg_class = "alert-warning";
97 message = "Please fill in all fields."; 100 message = "Please fill in all fields.";
98 }); 101 });
99 end 102 end
107 token = invite.token; 110 token = invite.token;
108 domain = module.host; 111 domain = module.host;
109 uri = invite.uri; 112 uri = invite.uri;
110 type = invite.type; 113 type = invite.type;
111 jid = invite.jid; 114 jid = invite.jid;
115 password_policy = mod_password_policy.get_policy();
112 116
113 msg_class = "alert-warning"; 117 msg_class = "alert-warning";
114 message = "This username contains invalid characters."; 118 message = "This username contains invalid characters.";
115 }); 119 });
116 end 120 end
121 token = invite.token; 125 token = invite.token;
122 domain = module.host; 126 domain = module.host;
123 uri = invite.uri; 127 uri = invite.uri;
124 type = invite.type; 128 type = invite.type;
125 jid = invite.jid; 129 jid = invite.jid;
130 password_policy = mod_password_policy.get_policy();
126 131
127 msg_class = "alert-warning"; 132 msg_class = "alert-warning";
128 message = "This username is already in use."; 133 message = "This username is already in use.";
134 });
135 end
136
137 local pw_ok, pw_error = mod_password_policy.check_password(password, {
138 username = prepped_username;
139 });
140 if not pw_ok then
141 return render_html_template(register_page_template, {
142 site_name = site_name;
143 token = invite.token;
144 domain = module.host;
145 uri = invite.uri;
146 type = invite.type;
147 jid = invite.jid;
148 password_policy = mod_password_policy.get_policy();
149
150 msg_class = "alert-warning";
151 message = pw_error;
129 }); 152 });
130 end 153 end
131 154
132 local registering = { 155 local registering = {
133 validated_invite = invite; 156 validated_invite = invite;