Geography database
[bpt/portal.git] / group.sml
index 7c24bbc..5daf76c 100644 (file)
--- a/group.sml
+++ b/group.sml
@@ -55,7 +55,7 @@ fun userInGroupNum (usr, grp) =
     in
        (case C.oneOrNoRows c ($`SELECT COUNT( * )
                                    FROM Membership
-                                   WHERE grp = ^(C.intToSql grp)
+                                   WHERE (grp IN (0, ^(C.intToSql grp)))
                                       AND usr = ^(C.intToSql usr)`) of
             SOME[x] => not (C.isNull x) andalso C.intFromSql x <> 0
           | _ => false)
@@ -67,9 +67,8 @@ fun userInGroupName (usr, grp) =
     in
        (case C.oneOrNoRows c ($`SELECT COUNT( * )
                                    FROM Membership, WebGroup
-                                   WHERE name = ^(C.stringToSql grp)
-                                      AND usr = ^(C.intToSql usr)
-                                       AND grp = id`) of
+                                   WHERE (id = 0 OR (name = ^(C.stringToSql grp) AND grp = id))
+                                      AND usr = ^(C.intToSql usr)`) of
             SOME[x] => not (C.isNull x) andalso C.intFromSql x <> 0
           | _ => false)
     end