1 ! Copyright (c) 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: kernel accessors namespaces sequences assocs
6 http.server.dispatchers
10 IN: furnace.auth.features.edit-profile
12 : <edit-profile-action> ( -- action )
16 [ username>> "username" set-value ]
17 [ realname>> "realname" set-value ]
18 [ email>> "email" set-value ]
22 { realm "features/edit-profile/edit-profile" } >>template
25 username "username" set-value
28 { "realname" [ [ v-one-line ] v-optional ] }
30 { "new-password" [ [ v-password ] v-optional ] }
31 { "verify-password" [ [ v-password ] v-optional ] }
32 { "email" [ [ v-email ] v-optional ] }
35 { "password" "new-password" "verify-password" }
36 [ value empty? not ] contains? [
37 "password" value username check-login
38 [ "incorrect password" validation-error ] unless
47 "new-password" value dup empty?
48 [ drop ] [ >>encoded-password ] if
50 "realname" value >>realname
57 URL" $login" end-aside
61 "edit your profile" >>description ;
63 : allow-edit-profile ( login -- login )
64 <edit-profile-action> <auth-boilerplate> "edit-profile" add-responder ;
66 : allow-edit-profile? ( -- ? )
67 realm get responders>> "edit-profile" swap key? ;