case Web.getCgi "REMOTE_USER" of
NONE => raise Fail "Not logged in"
| SOME name =>
- (case C.oneOrNoRows c ($`SELECT id, name, rname, bal, joined, app, shares
- FROM WebUserActive
- WHERE name=^(C.stringToSql name)`) of
- NONE => raise Fail "User not found"
- | SOME r =>
- let
- val r = mkUserRow r
- in
- user := SOME r;
- case C.oneOrNoRows c ($`SELECT ipaddr
+ let
+ val name =
+ if String.isSuffix kerberosSuffix name then
+ String.substring (name, 0, size name - size kerberosSuffix)
+ else
+ name
+ in
+ case C.oneOrNoRows c ($`SELECT id, name, rname, bal, joined, app, shares
+ FROM WebUserActive
+ WHERE name=^(C.stringToSql name)`) of
+ NONE => raise Fail "User not found"
+ | SOME r =>
+ let
+ val r = mkUserRow r
+ in
+ user := SOME r;
+ case C.oneOrNoRows c ($`SELECT ipaddr
FROM MemberApp
WHERE id = ^(C.intToSql (#app r))
- AND ipaddr IS NOT NULL`) of
- NONE =>
- if Web.getParam "agree" = "on" then
- (case Web.getCgi "REMOTE_ADDR" of
- NONE => raise Fail "REMOTE_ADDR not set"
- | SOME ra =>
- ignore (C.dml c ($`UPDATE MemberApp
+ AND ipaddr IS NOT NULL`) of
+ NONE =>
+ if Web.getParam "agree" = "on" then
+ (case Web.getCgi "REMOTE_ADDR" of
+ NONE => raise Fail "REMOTE_ADDR not set"
+ | SOME ra =>
+ ignore (C.dml c ($`UPDATE MemberApp
SET ipaddr = ^(C.stringToSql ra),
- applied = CURRENT_TIMESTAMP
- WHERE id = ^(C.intToSql (#app r))`)))
- else
- raise NeedTos
- | _ => ()
- end)
+ applied = CURRENT_TIMESTAMP
+ WHERE id = ^(C.intToSql (#app r))`)))
+ else
+ raise NeedTos
+ | _ => ()
+ end
+ end
end
fun done () =