diff options
author | Adam Chlipala <adamc@hcoop.net> | 2009-11-01 14:26:20 -0500 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2009-11-01 14:26:20 -0500 |
commit | 7560a81cd846d47d3d4d642cc470e3b09c5e1826 (patch) | |
tree | 554465c7355d6fe0d310a16f4a7fa5a4e0675870 /demo/more/conference.ur | |
parent | 1beaf9527c0b6ab4b2f06267966e9e89a26550ff (diff) |
Initial form for paper assignment
Diffstat (limited to 'demo/more/conference.ur')
-rw-r--r-- | demo/more/conference.ur | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/demo/more/conference.ur b/demo/more/conference.ur index e810043b..7b3d3d71 100644 --- a/demo/more/conference.ur +++ b/demo/more/conference.ur @@ -12,12 +12,14 @@ signature INPUT = sig val paperId_inj : sql_injectable_prim paperId val paperId_show : show paperId val paperId_read : read paperId + val paperId_eq : eq paperId table paper : ([Id = paperId, Document = blob] ++ paper) PRIMARY KEY Id val checkLogin : transaction (option {Id : userId, Nam : string, Chair : bool, OnPc : bool}) val getLogin : transaction {Id : userId, Nam : string, Chair : bool, OnPc : bool} val getPcLogin : transaction {Id : userId, Nam : string, Chair : bool} + val checkChair : transaction unit val summarizePaper : ctx ::: {Unit} -> [[Body] ~ ctx] => $paper -> xml ([Body] ++ ctx) [] [] end @@ -27,6 +29,7 @@ signature OUTPUT = sig type paperId val linksForPc : xbody + val linksForChair : xbody con yourPaperTables :: {{Type}} constraint [Paper] ~ yourPaperTables @@ -105,12 +108,20 @@ functor Make(M : sig else error <xml>You are not on the PC.</xml> + val checkChair = + r <- getLogin; + if r.Chair then + return () + else + error <xml>You are not a chair.</xml> + structure O = M.Make(struct val user = user val paper = paper val checkLogin = checkLogin val getLogin = getLogin val getPcLogin = getPcLogin + val checkChair = checkChair val summarizePaper = @@M.summarizePaper end) @@ -203,7 +214,10 @@ functor Make(M : sig <div>Welcome, {[me.Nam]}!</div> {if me.Chair then - <xml><li><a link={Users.main ()}>Manage users</a></li></xml> + <xml> + <li><a link={Users.main ()}>Manage users</a></li> + {O.linksForChair} + </xml> else <xml/>} |