in
(case C.oneOrNoRows c ($`SELECT COUNT( * )
FROM Membership, WebGroup
- WHERE (id = 0 OR (name = ^(C.stringToSql grp) AND grp = id))
+ WHERE (grp = 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)
val usr = #usr mem
val grp = #grp mem
in
- if userInGroupNum (usr, grp) then
- ()
- else
- ignore (C.dml (getDb ()) ($`INSERT INTO Membership (grp, usr)
- VALUES (^(C.intToSql grp), ^(C.intToSql usr))`))
+ case C.oneOrNoRows (getDb ()) ($`SELECT * FROM Membership WHERE grp = ^(C.intToSql grp) AND usr = ^(C.intToSql usr)`) of
+ NONE => ignore (C.dml (getDb ()) ($`INSERT INTO Membership (grp, usr)
+ VALUES (^(C.intToSql grp), ^(C.intToSql usr))`))
+ | SOME _ => ()
end
fun addToGroups (usr, grps) =
| mkMembershipRow row = Init.rowError ("membership", row)
fun groupMembers grp =
- C.map (getDb ()) mkUserRow ($`SELECT id, name, rname, bal, joined FROM Membership, WebUser
- WHERE grp = ^(C.intToSql grp)
- AND usr = id
- ORDER BY name`)
+ C.map (getDb ()) mkUserRow ($`SELECT id, name, rname, bal, joined, app, shares, paypal, checkout
+ FROM Membership, WebUser
+ WHERE grp = ^(C.intToSql grp)
+ AND usr = id
+ ORDER BY name`)
(* Checking memberships of the current user *)
fun validGroupName name =
size name <= 10
- andalso CharVector.all Char.isAlpha name
+ andalso CharVector.all Char.isAlphaNum name
fun groupNameToId name =
case C.oneOrNoRows (getDb ()) ($`SELECT id FROM WebGroup WHERE name = ^(C.stringToSql name)`) of
SOME [id] => SOME (C.intFromSql id)
| _ => NONE
-end
\ No newline at end of file
+end