mirror of
https://github.com/commercialhaskell/stackage-server.git
synced 2026-01-12 20:28:32 +01:00
31 lines
904 B
Haskell
31 lines
904 B
Haskell
module Handler.Profile where
|
|
|
|
import Import
|
|
import Data.Slug (slugField)
|
|
|
|
userForm :: User -> Form User
|
|
userForm user = renderBootstrap2 $ User
|
|
<$> areq slugField "User handle"
|
|
{ fsTooltip = Just "Used for URLs"
|
|
} (Just $ userHandle user)
|
|
<*> areq textField "Display name" (Just $ userDisplay user)
|
|
<*> pure (userToken user)
|
|
|
|
getProfileR :: Handler Html
|
|
getProfileR = do
|
|
Entity uid user <- requireAuth
|
|
((result, userWidget), enctype) <- runFormPost $ userForm user
|
|
case result of
|
|
FormSuccess user' -> do
|
|
runDB $ replace uid user'
|
|
setMessage "Profile updated"
|
|
redirect ProfileR
|
|
_ -> return ()
|
|
emails <- runDB $ selectList [EmailUser ==. uid] [Asc EmailEmail]
|
|
defaultLayout $ do
|
|
setTitle "Your Profile"
|
|
$(widgetFile "profile")
|
|
|
|
putProfileR :: Handler Html
|
|
putProfileR = getProfileR
|