cert.mlt: Update with new instructions
[hcoop/zz_old/portal.git] / init.sig
1 signature INIT = sig
2 structure C : SQL_CLIENT
3
4 val scratchDir : string
5 val urlPrefix : string
6 val boardEmail : string
7
8 exception Access of string
9 exception NeedTos
10
11 val emailSuffix : string
12
13 type user = {id : int, name : string, rname : string, bal : int, joined : C.timestamp,
14 app : int, shares : int}
15
16 val rowError : string * C.value list -> 'a
17
18 val mkUserRow : C.value list -> user
19
20 (* Direct access to database connections *)
21 val conn : unit -> C.conn
22
23 (* Open or close a session, wrapped in a transaction *)
24 val init : unit -> unit
25 val done : unit -> unit
26
27 val nextSeq : C.conn * string -> int
28
29 (* Fun with users *)
30
31 val lookupUser : int -> user
32 val listUsers : unit -> user list
33 val addUser : string * string * int * int * int -> int
34 (* Pass name, real name, balance ID, and share count *)
35 val modUser : user -> unit
36 val deleteUser : int -> string
37 val byPledge : unit -> user list
38 val unmigratedUsers : unit -> user list
39
40 val validUsername : string -> bool
41 val userNameToId : string -> int option
42
43 val getDb : unit -> C.conn
44
45 val getUser : unit -> user
46 val getUserId : unit -> int
47 val getUserName : unit -> string
48
49 val dateString : unit -> string
50
51 val grandfatherUsers : unit -> unit
52
53 type node = {id : int, name : string, descr : string, debian : string}
54
55 val listNodes : unit -> node list
56 val nodeName : int -> string
57 val nodeDebian : int -> string
58
59 val explain : exn -> string
60 val tokens : unit -> string
61 val tokensForked : unit -> unit
62
63 val usersDiff : string list * string list ->
64 {onlyInFirst : string list, onlyInSecond : string list}
65 val listUsernames : unit -> string list
66 val usersInAfs : unit -> string list
67 end