cvsimport
[hcoop/zz_old/portal.git] / pref.sml
1 structure Pref :> PREF =
2 struct
3
4 open Util Sql Init
5
6 fun hasDirectory usr =
7 case C.oneOrNoRows (getDb ()) ($`SELECT * FROM DirectoryPref WHERE usr = ^(C.intToSql usr)`) of
8 NONE => false
9 | _ => true
10
11 fun setDirectory usr =
12 if hasDirectory usr then
13 ()
14 else
15 ignore (C.dml (getDb ()) ($`INSERT INTO DirectoryPref (usr) VALUES (^(C.intToSql usr))`))
16
17 fun unsetDirectory usr =
18 ignore (C.dml (getDb ()) ($`DELETE FROM DirectoryPref WHERE usr = ^(C.intToSql usr)`))
19
20 fun subscribed (list, address) = OS.Process.isSuccess (OS.Process.system (String.concat
21 ["/usr/bin/sudo -u list /usr/local/sbin/portalsub ",
22 list,
23 " check ",
24 address]))
25
26 fun subscribe (list, address) = OS.Process.isSuccess (OS.Process.system (String.concat
27 ["/usr/bin/sudo -u list /usr/local/sbin/portalsub ",
28 list,
29 " add ",
30 address]))
31
32 fun unsubscribe (list, address) = OS.Process.isSuccess (OS.Process.system (String.concat
33 ["/usr/bin/sudo -u list /usr/local/sbin/portalsub ",
34 list,
35 " rm ",
36 address]))
37
38 end