From 6ff384e988e79bbe08d5db4c6a34098335ca5783 Mon Sep 17 00:00:00 2001 From: adamch Date: Thu, 22 Nov 2007 21:12:47 +0000 Subject: [PATCH] Normalize e-mail addresses --- app.sml | 4 ++-- init.sml | 8 ++++---- util.sig | 1 + util.sml | 4 ++++ 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app.sml b/app.sml index 117ae05..299feb5 100644 --- a/app.sml +++ b/app.sml @@ -169,7 +169,7 @@ fun searchPaypal paypal = C.map (getDb ()) mkAppRow ($`SELECT id, name, rname, gname, email, forward, uses, other, passwd, status, applied, ipaddr, confirmed, decided, msg, unix_passwd, paypal, checkout FROM MemberApp - WHERE paypal = ^(C.stringToSql (Util.allLower paypal)) + WHERE paypal = ^(C.stringToSql (normEmail paypal)) AND status = 2 AND decided >= CURRENT_TIMESTAMP - INTERVAL '1 MONTH' ORDER BY applied`) @@ -178,7 +178,7 @@ fun searchCheckout checkout = C.map (getDb ()) mkAppRow ($`SELECT id, name, rname, gname, email, forward, uses, other, passwd, status, applied, ipaddr, confirmed, decided, msg, unix_passwd, paypal, checkout FROM MemberApp - WHERE checkout = ^(C.stringToSql (Util.allLower checkout)) + WHERE checkout = ^(C.stringToSql (normEmail checkout)) AND status = 2 AND decided >= CURRENT_TIMESTAMP - INTERVAL '1 MONTH' ORDER BY applied`) diff --git a/init.sml b/init.sml index 4a696d1..4db7408 100644 --- a/init.sml +++ b/init.sml @@ -142,8 +142,8 @@ fun modUser (user : user) = name = ^(C.stringToSql (#name user)), rname = ^(C.stringToSql (#rname user)), bal = ^(C.intToSql (#bal user)), app = ^(C.intToSql (#app user)), shares = ^(C.intToSql (#shares user)), - paypal = ^(nullableToSql C.stringToSql (#paypal user)), - checkout = ^(nullableToSql C.stringToSql (#checkout user)) + paypal = ^(nullableToSql (C.stringToSql o Util.normEmail) (#paypal user)), + checkout = ^(nullableToSql (C.stringToSql o Util.normEmail) (#checkout user)) WHERE id = ^(C.intToSql (#id user))`)) end @@ -300,13 +300,13 @@ fun usersInAfs () = fun searchPaypal paypal = C.map (getDb ()) mkUserRow ($`SELECT id, name, rname, bal, joined, app, shares, paypal, checkout FROM WebUser - WHERE paypal = ^(C.stringToSql paypal) + WHERE paypal = ^(C.stringToSql (normEmail paypal)) ORDER BY name`) fun searchCheckout checkout = C.map (getDb ()) mkUserRow ($`SELECT id, name, rname, bal, joined, app, shares, paypal, checkout FROM WebUser - WHERE checkout = ^(C.stringToSql checkout) + WHERE checkout = ^(C.stringToSql (normEmail checkout)) ORDER BY name`) end diff --git a/util.sig b/util.sig index 9c7b4fc..1f46916 100644 --- a/util.sig +++ b/util.sig @@ -31,4 +31,5 @@ sig val mem : ''a * ''a list -> bool val allLower : string -> string + val normEmail : string -> string end diff --git a/util.sml b/util.sml index a0a649c..f1bdcbb 100644 --- a/util.sml +++ b/util.sml @@ -83,4 +83,8 @@ fun mem (x, ls) = List.exists (fn y => y = x) ls val allLower = CharVector.map Char.toLower +fun normEmail s = case String.tokens Char.isSpace (allLower s) of + s :: _ => s + | [] => "" + end -- 2.20.1