C.dml (getDb ()) ($`DELETE FROM WebUser WHERE id = ^(C.intToSql id)`)
fun validUsername name =
- size name <= 10
+ size name <= 12
andalso size name > 0
andalso Char.isLower (String.sub (name, 0))
andalso CharVector.all Char.isAlphaNum name
[d] => C.stringFromSql d
| r => rowError ("dateString", r)
-fun grandfatherUsers () =
- let
- val db = getDb ()
-
- fun mkApp [id, name, rname] =
- let
- val id = C.intFromSql id
- val name = C.stringFromSql name
- val rname = C.stringFromSql rname
-
- val aid = nextSeq (db, "MemberAppSeq")
- in
- ignore (C.dml db ($`INSERT INTO MemberApp (id, name, rname, gname, email, forward, uses, other,
- passwd, status, applied, confirmed, decided, msg)
- VALUES (^(C.intToSql aid), ^(C.stringToSql name), ^(C.stringToSql rname),
- NULL, '^name^(emailSuffix)', FALSE, 'GRANDFATHERED', 'GRANDFATHERED',
- 'GRANDFATHERED', 4, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP,
- CURRENT_TIMESTAMP, 'GRANDFATHERED')`));
- ignore (C.dml db ($`UPDATE WebUser SET app = ^(C.intToSql aid) WHERE id = ^(C.intToSql id)`))
- end
- in
- C.app db mkApp "SELECT id, name, rname FROM WebUser WHERE app IS NULL"
- end
-
type node = {id : int, name : string, descr : string, debian : string}
fun mkNodeRow [id, name, descr, debian] =
fun listNodes () =
C.map (getDb ()) mkNodeRow ($`SELECT id, name, descr, debian
FROM WebNode
+ WHERE id IN (SELECT id FROM ActiveWebNode)
ORDER BY name`)
fun nodeName id =
OS.Process.exit OS.Process.success)
| _ => ignore (OS.Process.system "/usr/bin/tokens >/tmp/tokens.parent")
-fun unmigratedUsers () =
- List.filter (fn user =>
- (ignore (Posix.SysDB.getpwnam (#name user));
- false)
- handle OS.SysErr _ => true) (listActiveUsers ())
-
fun usersDiff (ls1, ls2) =
{onlyInFirst = List.filter (fn x => not (Util.mem (x, ls2))) ls1,
onlyInSecond = List.filter (fn x => not (Util.mem (x, ls1))) ls2}
WHERE checkout = ^(C.stringToSql (normEmail checkout))
ORDER BY name`)
+fun searchRealName realname =
+ C.map (getDb ()) mkUserRow ($`SELECT id, name, rname, bal, joined, app, shares, paypal, checkout
+ FROM WebUser
+ WHERE rname ILIKE (^(C.stringToSql "%") || trim (both ^(C.stringToSql " ") from ^(C.stringToSql realname)) || ^(C.stringToSql "%"))
+ ORDER BY name`)
+
end