From cf42469778104a3079191c6e871954ffb3b5c957 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Thu, 22 Oct 2009 11:15:37 -0400 Subject: Checking deadline; sign-in --- demo/more/conference.ur | 44 ++++++++++++++++++++++++++++++++++++++++---- demo/more/conference.urs | 2 ++ demo/more/conference1.ur | 2 ++ 3 files changed, 44 insertions(+), 4 deletions(-) (limited to 'demo') diff --git a/demo/more/conference.ur b/demo/more/conference.ur index 0410e0bb..8d06e4cf 100644 --- a/demo/more/conference.ur +++ b/demo/more/conference.ur @@ -8,6 +8,8 @@ functor Make(M : sig con review :: {(Type * Type)} constraint [Paper, User] ~ review val review : $(map meta review) + + val submissionDeadline : time end) = struct table user : {Id : int, Nam : string, Password : string, Chair : bool, OnPc : bool} @@ -81,11 +83,36 @@ functor Make(M : sig - and main () = - me <- checkLogin; + and signin r = + ro <- oneOrNoRowsE1 (SELECT user.Id AS N + FROM user + WHERE user.Nam = {[r.Nam]} + AND user.Password = {[r.Password]}); + (case ro of + None => return () + | Some id => setCookie login {Id = id, Password = r.Password}); + m <- main' (); return + {case ro of + None =>
Invalid username or password.
+ | _ => } + + {m} + + + and main' () = + me <- checkLogin; + now <- now; + return
    {case me of - None =>
  • Register for access
  • + None => +
  • Register for access
  • +
  • Log in:
    + + + +
    Username:
    Password:
  • +
    | Some me =>
    Welcome, {[me.Nam]}!
    @@ -93,7 +120,16 @@ functor Make(M : sig
  • Manage users
  • else } + + {if now < M.submissionDeadline then +
  • Submit
  • + else + } } -
    +
+ + and main () = + m <- main' (); + return {m} end diff --git a/demo/more/conference.urs b/demo/more/conference.urs index 7ca042a5..450725f9 100644 --- a/demo/more/conference.urs +++ b/demo/more/conference.urs @@ -6,6 +6,8 @@ functor Make(M : sig con review :: {(Type * Type)} constraint [Paper, User] ~ review val review : $(map Meta.meta review) + + val submissionDeadline : time end) : sig val main : unit -> transaction page diff --git a/demo/more/conference1.ur b/demo/more/conference1.ur index 8d263a3c..5696e2f1 100644 --- a/demo/more/conference1.ur +++ b/demo/more/conference1.ur @@ -1,4 +1,6 @@ open Conference.Make(struct val paper = {} val review = {} + + val submissionDeadline = readError "2009-10-22 23:59:59" end) -- cgit v1.2.3