From c0a38be8cce045dccf1ef120a277e82de047435c Mon Sep 17 00:00:00 2001
From: Slava Pestov <slava@slava-pestovs-macbook-pro.local>
Date: Sun, 16 Nov 2008 07:27:31 -0600
Subject: [PATCH] Documentation for furnace.auth.login

---
 basis/furnace/auth/basic/basic-docs.factor |  6 +++++-
 basis/furnace/auth/login/login-docs.factor | 25 ++++++++++++++++++++++
 basis/furnace/auth/login/login.factor      |  6 +++++-
 3 files changed, 35 insertions(+), 2 deletions(-)
 create mode 100644 basis/furnace/auth/login/login-docs.factor

diff --git a/basis/furnace/auth/basic/basic-docs.factor b/basis/furnace/auth/basic/basic-docs.factor
index 25929d4346..c0d3184c78 100644
--- a/basis/furnace/auth/basic/basic-docs.factor
+++ b/basis/furnace/auth/basic/basic-docs.factor
@@ -3,10 +3,14 @@ IN: furnace.auth.basic
 
 HELP: <basic-auth-realm>
 { $values { "responder" "a responder" } { "name" "an authentication realm name" } { "realm" basic-auth-realm } }
-{ $description "Wraps a responder in a basic authentication realm." } ;
+{ $description "Wraps a responder in a basic authentication realm. The realm must be configured before use; see " { $link "furnace.auth.realm-config" } "." } ;
+
+HELP: basic-auth-realm
+{ $class-description "The basic authentication realm class. Slots are described in " { $link "furnace.auth.realm-config" } "." } ;
 
 ARTICLE: "furnace.auth.basic" "Basic authentication"
 "The " { $vocab-link "furnace.auth.basic" } " vocabulary implements HTTP basic authentication."
+{ $subsection basic-auth-realm }
 { $subsection <basic-auth-realm> } ;
 
 ABOUT: "furnace.auth.basic"
diff --git a/basis/furnace/auth/login/login-docs.factor b/basis/furnace/auth/login/login-docs.factor
new file mode 100644
index 0000000000..e461388e73
--- /dev/null
+++ b/basis/furnace/auth/login/login-docs.factor
@@ -0,0 +1,25 @@
+! Copyright (C) 2008 Your name.
+! See http://factorcode.org/license.txt for BSD license.
+USING: help.markup help.syntax kernel strings ;
+IN: furnace.auth.login
+
+HELP: <login-realm>
+{ $values
+     { "responder" "a responder" } { "name" string }
+     { "realm" "a new responder" }
+}
+{ $description "Wraps a responder in a new login realm with the given name. The realm must be configured before use; see " { $link "furnace.auth.realm-config" } "." } ;
+
+HELP: login-realm
+{ $class-description "The login realm class. Slots are described in " { $link "furnace.auth.realm-config" } "." } ;
+
+ARTICLE: "furnace.auth.login" "Login authentication"
+"The " { $vocab-link "furnace.auth.login" } " vocabulary implements an authentication realm which displays a login page with a username and password field."
+{ $subsection login-realm }
+{ $subsection <login-realm> }
+"The " { $snippet "logout" } " action logs the user out of the realm, and a link to this action can be inserted in Chloe templates using the following XML snippet:"
+{ $code
+    "<t:button t:action=\"$login-realm/logout\">Logout</t:button>"
+} ;
+
+ABOUT: "furnace.auth.login"
diff --git a/basis/furnace/auth/login/login.factor b/basis/furnace/auth/login/login.factor
index 2c98672490..4fc4e7e8be 100644
--- a/basis/furnace/auth/login/login.factor
+++ b/basis/furnace/auth/login/login.factor
@@ -58,9 +58,13 @@ M: login-realm modify-form ( responder -- )
     permit-id get [ delete-permit ] when*
     URL" $realm" end-aside ;
 
+<PRIVATE
+
 SYMBOL: description
 SYMBOL: capabilities
 
+PRIVATE>
+
 : flashed-variables { description capabilities } ;
 
 : login-failed ( -- * )
@@ -107,7 +111,7 @@ M: login-realm login-required* ( description capabilities login -- response )
 M: login-realm user-registered ( user realm -- )
     drop successful-login ;
 
-: <login-realm> ( responder name -- auth )
+: <login-realm> ( responder name -- realm )
     login-realm new-realm
         <login-action> "login" add-responder
         <logout-action> "logout" add-responder