-! Copyright (C) 2008 Slava Pestov.\r
-! See http://factorcode.org/license.txt for BSD license.\r
-USING: kernel accessors random math.parser locals\r
-sequences math ;\r
-IN: furnace.auth.providers\r
-\r
-TUPLE: user\r
-username realname\r
-password salt\r
-email ticket capabilities profile deleted changed? ;\r
-\r
-: <user> ( username -- user )\r
- user new\r
- swap >>username\r
- 0 >>deleted ;\r
-\r
-GENERIC: get-user ( username provider -- user/f )\r
-\r
-GENERIC: update-user ( user provider -- )\r
-\r
-GENERIC: new-user ( user provider -- user/f )\r
-\r
-! Password recovery support\r
-\r
-:: issue-ticket ( email username provider -- user/f )\r
- username provider get-user :> user\r
- user [\r
- user email>> length 0 > [\r
- user email>> email = [\r
- user\r
- 256 random-bits >hex >>ticket\r
- dup provider update-user\r
- ] [ f ] if\r
- ] [ f ] if\r
- ] [ f ] if ;\r
-\r
-:: claim-ticket ( ticket username provider -- user/f )\r
- username provider get-user :> user\r
- user [\r
- user ticket>> ticket = [\r
- user f >>ticket dup provider update-user\r
- ] [ f ] if\r
- ] [ f ] if ;\r
-\r
-! For configuration\r
-\r
-: add-user ( provider user -- provider )\r
- over new-user [ "User exists" throw ] when ;\r
+! Copyright (C) 2008 Slava Pestov.
+! See http://factorcode.org/license.txt for BSD license.
+USING: kernel accessors random math.parser locals
+sequences math ;
+IN: furnace.auth.providers
+
+TUPLE: user
+username realname
+password salt
+email ticket capabilities profile deleted changed? ;
+
+: <user> ( username -- user )
+ user new
+ swap >>username
+ 0 >>deleted ;
+
+GENERIC: get-user ( username provider -- user/f )
+
+GENERIC: update-user ( user provider -- )
+
+GENERIC: new-user ( user provider -- user/f )
+
+! Password recovery support
+
+:: issue-ticket ( email username provider -- user/f )
+ username provider get-user :> user
+ user [
+ user email>> length 0 > [
+ user email>> email = [
+ user
+ 256 random-bits >hex >>ticket
+ dup provider update-user
+ ] [ f ] if
+ ] [ f ] if
+ ] [ f ] if ;
+
+:: claim-ticket ( ticket username provider -- user/f )
+ username provider get-user :> user
+ user [
+ user ticket>> ticket = [
+ user f >>ticket dup provider update-user
+ ] [ f ] if
+ ] [ f ] if ;
+
+! For configuration
+
+: add-user ( provider user -- provider )
+ over new-user [ "User exists" throw ] when ;