diff options
-rw-r--r-- | cljssss-g.clj | 71 | ||||
-rw-r--r-- | login.st | 18 |
2 files changed, 54 insertions, 35 deletions
diff --git a/cljssss-g.clj b/cljssss-g.clj index ffb7ef2..f57275f 100644 --- a/cljssss-g.clj +++ b/cljssss-g.clj @@ -12,31 +12,6 @@ (def templates (new StringTemplateGroup "")) -(defservlet cljssss-g - (GET "/" - (if (@session :id) - (.toString - (doto (.getInstanceOf templates "index") - (.setAttributes {"title" "Subscriptions", - "mainParagraph" "Hi there!"}))) - (redirect-to "/login"))) - (GET "/login" - ;; FIXME - ) - (POST "/login" - (dosync - (with-db - (sql/with-query-results [{id :id password :password}] - ["SELECT id, password FROM user WHERE name = ?" - (@params :name)] - (if (= password (@params :password)) - (do - (alter session assoc :id id) - (redirect-to "/")) - (redirect-to "/login?valuesofbetawillgiverisetodom=true")))))) - (ANY "*" - (page-not-found))) - (def db-connection-data {:classname "org.sqlite.JDBC" :subprotocol "sqlite" :subname "cljssss-g.sqlite3" @@ -51,6 +26,40 @@ (sql/transaction ~@body))) +(defn login-view [] + (.toString (.getInstanceOf templates "login"))) + + +(defservlet cljssss-g + (GET "/login" + (if (= (params :valuesofbetawillgiverisetodom) "true") + (.toString (doto + (.getInstanceOf templates "login") + (.setAttributes {"logintext" "Login failed"}))) + (.toString (doto + (.getInstanceOf templates "login") + (.setAttributes {"logintext" "Login"}))))) + (POST "/login" + (dosync + (with-db + (sql/with-query-results [{id :id password :password}] + ["SELECT id, password FROM user WHERE name = ?" + (@params :name)] + (if (= password (@params :password)) + (do + (alter session assoc :id id) + (redirect-to "/")) + (redirect-to "/login?valuesofbetawillgiverisetodom=true")))))) + (GET "/" + (if (@session :id) + (.toString + (doto (.getInstanceOf templates "index") + (.setAttributes {"title" "Subscriptions", + "mainParagraph" "Hi there!"}))) + (redirect-to "/login"))) + (ANY "*" + (page-not-found))) + (defn trim-nil [thing] (and thing (.trim thing))) @@ -130,16 +139,8 @@ ;;;; Sample database content (comment - (with-dbt - (sql/update-or-insert-values :feed - ["id = ?" 0] - {:id 0 - :uri "http://matthias.benkard.de/journal/feed/"}) - (sql/update-or-insert-values :feed - ["id = ?" 1] - {:id 1 - :uri "http://uxul.wordpress.com/feed/"}))) - + (subscribe-to-feed "http://matthias.benkard.de/journal/feed/") + (subscribe-to-feed "http://uxul.wordpress.com/feed/")) ;;;; Database schema (comment diff --git a/login.st b/login.st new file mode 100644 index 0000000..c6e49f5 --- /dev/null +++ b/login.st @@ -0,0 +1,18 @@ +<?xml version="1.0" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <title>$logintext$ — Gödel-Gentzen Clojure Syndication Services Super System</title> + </head> + + <body> + $logintext$ + <form action="login" method="POST"> + Username: <input name="name" type="text" /> <br /> + Password: <input name="password" type="password" /> <br /> + <input type="submit" value="Log In" /> + </form> + </body> +</html> |