1 ! Copyright (c) 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: kernel accessors namespaces sequences assocs
4 validators urls html.forms http.server.dispatchers
8 IN: furnace.auth.features.edit-profile
10 : <edit-profile-action> ( -- action )
14 [ username>> "username" set-value ]
15 [ realname>> "realname" set-value ]
16 [ email>> "email" set-value ]
20 { realm "features/edit-profile/edit-profile" } >>template
23 username "username" set-value
26 { "realname" [ [ v-one-line ] v-optional ] }
28 { "new-password" [ [ v-password ] v-optional ] }
29 { "verify-password" [ [ v-password ] v-optional ] }
30 { "email" [ [ v-email ] v-optional ] }
33 { "password" "new-password" "verify-password" }
34 [ value empty? not ] any? [
35 "password" value username check-login
36 [ "incorrect password" validation-error ] unless
46 [ >>encoded-password ] unless-empty
48 "realname" value >>realname
55 URL" $realm" end-aside
59 "edit your profile" >>description ;
61 : allow-edit-profile ( realm -- realm )
62 <edit-profile-action> <auth-boilerplate> "edit-profile" add-responder ;
64 : allow-edit-profile? ( -- ? )
65 realm get responders>> "edit-profile" swap key? ;