]> gitweb.factorcode.org Git - factor.git/commitdiff
Debugging furnace.auth refactoring
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Mon, 16 Jun 2008 08:46:54 +0000 (03:46 -0500)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Mon, 16 Jun 2008 08:46:54 +0000 (03:46 -0500)
12 files changed:
extra/furnace/auth/auth.factor
extra/furnace/auth/features/edit-profile/edit-profile.factor
extra/furnace/auth/features/edit-profile/edit-profile.xml
extra/furnace/auth/login/login.factor
extra/furnace/auth/login/login.xml
extra/furnace/furnace.factor
extra/webapps/blogs/blogs-common.xml
extra/webapps/pastebin/pastebin-common.xml
extra/webapps/planet/planet-common.xml
extra/webapps/todo/todo.xml
extra/webapps/user-admin/user-admin.xml
extra/webapps/wiki/wiki-common.xml

index d10ba48ce5d5fa0bee820d27522dfb5b6ea17d16..9bb7ea105e84813fce95de5bb0db73a27a97accc 100755 (executable)
@@ -17,6 +17,8 @@ IN: furnace.auth
 \r
 SYMBOL: logged-in-user\r
 \r
+: logged-in? ( -- ? ) logged-in-user get >boolean ;\r
+\r
 GENERIC: init-user-profile ( responder -- )\r
 \r
 M: object init-user-profile drop ;\r
@@ -114,7 +116,7 @@ TUPLE: protected < filter-responder description capabilities ;
 : check-capabilities ( responder user/f -- ? )\r
     {\r
         { [ dup not ] [ 2drop f ] }\r
-        { [ dup deleted>> ] [ 2drop f ] }\r
+        { [ dup deleted>> 1 = ] [ 2drop f ] }\r
         [ [ capabilities>> ] bi@ subset? ]\r
     } cond ;\r
 \r
index 4edb4ac3648539ac7923e0dd278cf544b1832886..e03fca99a5f4dcb8812cf592bd3da11b87402403 100644 (file)
@@ -64,4 +64,4 @@ IN: furnace.auth.features.edit-profile
     <edit-profile-action> <auth-boilerplate> "edit-profile" add-responder ;
 
 : allow-edit-profile? ( -- ? )
-    realm get get responders>> "edit-profile" swap key? ;
+    realm get responders>> "edit-profile" swap key? ;
index 6beaf5de6d792a1eae3522ff7af012126821c2cf..011cc2bdf8a6e79067a11ac018af327fc78fe79b 100644 (file)
@@ -4,7 +4,7 @@
 
        <t:title>Edit Profile</t:title>
 
-       <t:form t:action="$login/edit-profile">
+       <t:form t:action="$realm/edit-profile">
 
        <table>
        
index 1f81c488cccc8e14bb8ce68fececf247df164de7..6a59c01c630712a26f95d370b9ea148964e4a17c 100755 (executable)
@@ -13,13 +13,16 @@ IN: furnace.auth.login
 \r
 TUPLE: login-realm < realm ;\r
 \r
+M: login-realm logged-in-username\r
+    drop session get uid>> ;\r
+\r
 : set-uid ( username -- )\r
     session get [ (>>uid) ] [ (session-changed) ] bi ;\r
 \r
 : successful-login ( user -- response )\r
     username>> set-uid URL" $realm" end-aside ;\r
 \r
-: logout ( -- ) f set-uid ;\r
+: logout ( -- ) f set-uid URL" $realm" end-aside ;\r
 \r
 SYMBOL: description\r
 SYMBOL: capabilities\r
@@ -53,17 +56,14 @@ SYMBOL: capabilities
 \r
 : <logout-action> ( -- action )\r
     <action>\r
-        [ logout URL" $login-realm" end-aside ] >>submit ;\r
+        [ logout ] >>submit ;\r
 \r
 M: login-realm login-required*\r
     drop\r
     begin-aside\r
     protected get description>> description set\r
     protected get capabilities>> capabilities set\r
-    URL" $login/login" flashed-variables <flash-redirect> ;\r
-\r
-M: login-realm logged-in-username\r
-    drop session get uid>> ;\r
+    URL" $realm/login" flashed-variables <flash-redirect> ;\r
 \r
 : <login-realm> ( responder name -- auth )\r
     login-realm new-realm\r
index a7ac92bf442b76a6a57bf562c4e9afd90e854fc6..81f9520e7611cdc8233e209acc4d39e204c4a8b0 100644 (file)
        </t:form>
 
        <p>
-               <t:if t:code="furnace.auth.login:allow-registration?">
+               <t:if t:code="furnace.auth.features.registration:allow-registration?">
                        <t:a t:href="register">Register</t:a>
                </t:if>
                |
-               <t:if t:code="furnace.auth.login:allow-password-recovery?">
+               <t:if t:code="furnace.auth.features.recover-password:allow-password-recovery?">
                        <t:a t:href="recover-password">Recover Password</t:a>
                </t:if>
        </p>
index e9d1b29da8af449547c1a574903401fcc4cefe10..6b47bc681b0a82c1139a5668c67be05af68a89d4 100644 (file)
@@ -31,7 +31,7 @@ IN: furnace
 
 : base-path ( string -- pair )
     dup responder-nesting get
-    [ second class word-name = ] with find nip
+    [ second class superclasses [ word-name = ] with contains? ] with find nip
     [ first ] [ "No such responder: " swap append throw ] ?if ;
 
 : resolve-base-path ( string -- string' )
index 965f059abd52377cd9ef1044430f8cca3ae3d794..e809c0e7f5bba6c5f438e108a50783d15d61dfe4 100644 (file)
                | <t:a t:href="$blogs/by">My Posts</t:a>
                | <t:a t:href="$blogs/new-post">New Post</t:a>
 
-               <t:if t:code="furnace.sessions:uid">
+               <t:if t:code="furnace.auth:logged-in?">
 
-                       <t:if t:code="furnace.auth.login:allow-edit-profile?">
-                               | <t:a t:href="$login/edit-profile" t:aside="begin">Edit Profile</t:a>
+                       <t:if t:code="furnace.auth.features.edit-profile:allow-edit-profile?">
+                               | <t:a t:href="$realm/edit-profile" t:aside="begin">Edit Profile</t:a>
                        </t:if>
 
-                       | <t:button t:action="$login/logout" t:aside="begin" class="link-button link">Logout</t:button>
+                       | <t:button t:action="$login-realm/logout" t:aside="begin" class="link-button link">Logout</t:button>
 
                </t:if>
 
index 47f7666b2234076142483fd3c1c3ba3ea0949f27..b95f3f7b64aefbe5253e1f78f600d034afe5f7fe 100644 (file)
                  <t:a t:href="$pastebin/list">Pastes</t:a>
                | <t:a t:href="$pastebin/new-paste">New Paste</t:a>
 
-               <t:if t:code="furnace.sessions:uid">
+               <t:if t:code="furnace.auth:logged-in?">
 
-                       <t:if t:code="furnace.auth.login:allow-edit-profile?">
-                               | <t:a t:href="$login/edit-profile" t:aside="begin">Edit Profile</t:a>
+                       <t:if t:code="furnace.auth.features.edit-profile:allow-edit-profile?">
+                               | <t:a t:href="$realm/edit-profile" t:aside="begin">Edit Profile</t:a>
                        </t:if>
 
-                       | <t:button t:action="$login/logout" t:aside="begin" class="link-button link">Logout</t:button>
+                       | <t:button t:action="$login-realm/logout" t:aside="begin" class="link-button link">Logout</t:button>
 
                </t:if>
 
index 34ee73da677feb9b69a48a8462f46a72e32a3bcb..6c0affd17f44e317d7f22f8ebade515ee27dd7d5 100644 (file)
@@ -9,12 +9,12 @@
                | <t:a t:href="$planet-factor/feed.xml">Atom Feed</t:a>
                | <t:a t:href="$planet-factor/admin">Admin</t:a>
 
-               <t:if t:code="furnace.sessions:uid">
-                       <t:if t:code="furnace.auth.login:allow-edit-profile?">
-                               | <t:a t:href="$login/edit-profile" t:aside="begin">Edit Profile</t:a>
+               <t:if t:code="furnace.auth:logged-in?">
+                       <t:if t:code="furnace.auth.features.edit-profile:allow-edit-profile?">
+                               | <t:a t:href="$realm/edit-profile" t:aside="begin">Edit Profile</t:a>
                        </t:if>
        
-                       | <t:button t:action="$login/logout" t:aside="begin" class="link-button link">Logout</t:button>
+                       | <t:button t:action="$login-realm/logout" t:aside="begin" class="link-button link">Logout</t:button>
                </t:if>
        </div>
 
index e087fbfcfc2b4fd58ed85a0bfaae6c7f6e291faf..f7500cdad2b85c8b044a818c09cc9e98433a03e2 100644 (file)
@@ -8,11 +8,11 @@
                  <t:a t:href="$todo-list/list">List Items</t:a>
                | <t:a t:href="$todo-list/new">Add Item</t:a>
 
-               <t:if t:code="furnace.auth.login:allow-edit-profile?">
-                       | <t:a t:href="$login/edit-profile" t:aside="begin">Edit Profile</t:a>
+               <t:if t:code="furnace.auth.features.edit-profile:allow-edit-profile?">
+                       | <t:a t:href="$realm/edit-profile" t:aside="begin">Edit Profile</t:a>
                </t:if>
 
-               | <t:button t:action="$login/logout" t:aside="begin" class="link-button link">Logout</t:button>
+               | <t:button t:action="$login-realm/logout" t:aside="begin" class="link-button link">Logout</t:button>
        </div>
 
        <h1><t:write-title /></h1>
index 9cb9ef0a0acabc87d2af8c3985993ef425f1884b..2141fdc1d90bc8dc2d76b5f1cac1facd7792c89b 100644 (file)
@@ -6,11 +6,11 @@
                  <t:a t:href="$user-admin">List Users</t:a>
                | <t:a t:href="$user-admin/new">Add User</t:a>
 
-               <t:if t:code="furnace.auth.login:allow-edit-profile?">
-                       | <t:a t:href="$login/edit-profile" t:aside="begin">Edit Profile</t:a>
+               <t:if t:code="furnace.auth.features.edit-profile:allow-edit-profile?">
+                       | <t:a t:href="$realm/edit-profile" t:aside="begin">Edit Profile</t:a>
                </t:if>
 
-               | <t:button t:action="$login/logout" t:aside="begin" class="link-button link">Logout</t:button>
+               | <t:button t:action="$login-realm/logout" t:aside="begin" class="link-button link">Logout</t:button>
        </div>
 
        <h1><t:write-title /></h1>
index 1d08d3832defa22d2b23dce3902ce854cd613265..0abd36a7cd936d2965a5efdd90f9095170f2af32 100644 (file)
                | <t:a t:href="$wiki/articles">All Articles</t:a>
                | <t:a t:href="$wiki/changes">Recent Changes</t:a>
 
-               <t:if t:code="furnace.sessions:uid">
+               <t:if t:code="furnace.auth:logged-in?">
 
-                       <t:if t:code="furnace.auth.login:allow-edit-profile?">
-                               | <t:a t:href="$login/edit-profile" t:aside="begin">Edit Profile</t:a>
+                       <t:if t:code="furnace.auth.features.edit-profile:allow-edit-profile?">
+                               | <t:a t:href="$realm/edit-profile" t:aside="begin">Edit Profile</t:a>
                        </t:if>
 
-                       | <t:button t:action="$login/logout" t:aside="begin" class="link-button link">Logout</t:button>
+                       | <t:button t:action="$login-realm/logout" t:aside="begin" class="link-button link">Logout</t:button>
 
                </t:if>