diff --git a/debian/control b/debian/control index bdcc316..9f44b7e 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,7 @@ Standards-Version: 3.9.1 Package: ssowat Architecture: all -Depends: yunohost-config-nginx, lua-ldap, lua-json +Depends: yunohost-config-nginx, lua-ldap, lua-json, lua-rex-pcre Homepage: http://www.yunohost.org Description: SSOWAT Websso for yunohost diff --git a/helpers.lua b/helpers.lua index 2ca8f7e..f8d2b8a 100644 --- a/helpers.lua +++ b/helpers.lua @@ -591,8 +591,8 @@ function edit_user () end ldap:close() - -- TODO: updates to support the new TLDs? - local mail_pattern = "[A-Za-z0-9%.%%%+%-]+@[A-Za-z0-9%.%%%+%-]+%.%w%w%w?%w?" + local rex = require "rex_pcre" + local mail_re = rex.new([[^[\w\.\-]+@([^\W_A-Z]+([\-]*[^\W_A-Z]+)*\.)+([^\W\d_]{2,})$]], rex.flags().UTF8) local mails = {} @@ -605,7 +605,7 @@ function edit_user () for k, mail in ipairs(mailalias) do if mail ~= "" then -- Check the mail pattern - if not mail:match(mail_pattern) then + if not mail_re:match(mail) then flash("fail", t("invalid_mail")..": "..mail) return redirect(conf.portal_url.."edit.html") @@ -638,7 +638,7 @@ function edit_user () local drops = {} for k, mail in ipairs(maildrop) do if mail ~= "" then - if not mail:match(mail_pattern) then + if not mail_re:match(mail) then flash("fail", t("invalid_mailforward")..": "..mail) return redirect(conf.portal_url.."edit.html") end