1 ! Copyright (c) 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors assocs furnace.actions furnace.auth
4 furnace.auth.providers html.forms http.server.dispatchers kernel
5 namespaces validators ;
6 IN: furnace.auth.features.registration
8 : <register-action> ( -- action )
10 { realm "features/registration/register" } >>template
14 { "username" [ v-username ] }
15 { "realname" [ [ v-one-line ] v-optional ] }
16 { "new-password" [ v-password ] }
17 { "verify-password" [ v-password ] }
18 { "email" [ [ v-email ] v-optional ] }
19 { "captcha" [ v-captcha ] }
26 "username" value <user>
27 "realname" value >>realname
28 "new-password" value >>encoded-password
32 users new-user [ user-exists ] unless*
34 realm get init-user-profile
35 realm get user-registered
40 : allow-registration ( realm -- realm )
41 <register-action> "register" add-responder ;
43 : allow-registration? ( -- ? )
44 realm get responders>> "register" swap key? ;