version bump
This commit is contained in:
parent
6e0ab2bbbb
commit
7f0c582450
2 changed files with 74 additions and 3 deletions
|
@ -14,7 +14,7 @@
|
||||||
-- You should have received a copy of the GNU Affero General Public License
|
-- You should have received a copy of the GNU Affero General Public License
|
||||||
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
{-# LANGUAGE FlexibleInstances #-}
|
{-# LANGUAGE FlexibleInstances, PackageImports #-}
|
||||||
|
|
||||||
module Foundation where
|
module Foundation where
|
||||||
|
|
||||||
|
@ -39,6 +39,9 @@ import Network.Wai
|
||||||
import Helper hiding (hmacKeccak)
|
import Helper hiding (hmacKeccak)
|
||||||
import Yesod.Auth
|
import Yesod.Auth
|
||||||
import Yesod.Auth.HmacKeccak
|
import Yesod.Auth.HmacKeccak
|
||||||
|
import "yesod-auth-hmac-keccak" Yesod.Auth.Types (gimmeFile)
|
||||||
|
import "yesod-auth-hmac-keccak" Yesod.Auth.Message as Auth
|
||||||
|
import Yesod.Form.Bootstrap3
|
||||||
import System.IO.Unsafe (unsafePerformIO)
|
import System.IO.Unsafe (unsafePerformIO)
|
||||||
|
|
||||||
-- | The site argument for your application. This can be a good place to
|
-- | The site argument for your application. This can be a good place to
|
||||||
|
@ -273,6 +276,74 @@ instance RenderMessage App FormMessage where
|
||||||
instance YesodHmacKeccak (HmacPersistDB App User Token) App where
|
instance YesodHmacKeccak (HmacPersistDB App User Token) App where
|
||||||
runHmacDB = runHmacPersistDB
|
runHmacDB = runHmacPersistDB
|
||||||
rawLoginRoute = Just LoginRawR
|
rawLoginRoute = Just LoginRawR
|
||||||
|
getNewAccountR = do
|
||||||
|
master <- lift $ getYesod
|
||||||
|
if not (appSignupBlocked $ appSettings master)
|
||||||
|
then do
|
||||||
|
tm <- getRouteToParent
|
||||||
|
lift $ defaultLayout $ do
|
||||||
|
((_, widget), enctype) <- liftHandlerT $ runFormPost $
|
||||||
|
renderBootstrap3 BootstrapBasicForm $ eidolonAccountForm
|
||||||
|
(appTos1 $ appSettings master)
|
||||||
|
(appTos2 $ appSettings master)
|
||||||
|
render <- getUrlRenderParams
|
||||||
|
toWidgetHead $ gimmeFile render
|
||||||
|
setTitleI MsgRegisterLong
|
||||||
|
[whamlet|
|
||||||
|
<div .newaccount>
|
||||||
|
<form method="post" enctype=#{enctype} action=@{tm newAccountR}>
|
||||||
|
^{widget}
|
||||||
|
|]
|
||||||
|
else do
|
||||||
|
setMessage "User signup has been disabled"
|
||||||
|
redirect LoginR
|
||||||
|
|
||||||
|
postNewAccountR = do
|
||||||
|
master <- lift $ getYesod
|
||||||
|
if not (appSignupBlocked $ appSettings master)
|
||||||
|
then do
|
||||||
|
tm <- getRouteToParent
|
||||||
|
((result, _), _) <- lift $ runFormPost $
|
||||||
|
renderBootstrap3 BootstrapBasicForm $ eidolonAccountForm
|
||||||
|
(appTos1 $ appSettings master)
|
||||||
|
(appTos2 $ appSettings master)
|
||||||
|
case result of
|
||||||
|
FormMissing -> invalidArgs ["Form is missing"]
|
||||||
|
FormFailure m -> do
|
||||||
|
lift $ setMessage $ toHtml $ T.concat m
|
||||||
|
redirect newAccountR
|
||||||
|
FormSuccess d -> do
|
||||||
|
case (eadTos1 d, eadTos2 d) of
|
||||||
|
(Just True, Just True) -> do
|
||||||
|
lift $ setMessageI MsgActivationSent
|
||||||
|
lift $ createNewAccount
|
||||||
|
(NewAccountData (eadUsername d) (eadEmail d))
|
||||||
|
tm
|
||||||
|
redirect LoginR
|
||||||
|
_ -> do
|
||||||
|
lift $ setMessage "Please Accept the Terms of Service"
|
||||||
|
redirect newAccountR
|
||||||
|
else do
|
||||||
|
lift $ setMessage "User signup has been disabled"
|
||||||
|
redirect LoginR
|
||||||
|
|
||||||
|
data EidolonAccountData = EidolonAccountData
|
||||||
|
{ eadUsername :: T.Text
|
||||||
|
, eadEmail :: T.Text
|
||||||
|
, eadTos1 :: Maybe Bool
|
||||||
|
, eadTos2 :: Maybe Bool
|
||||||
|
}
|
||||||
|
|
||||||
|
eidolonAccountForm tos1 tos2= EidolonAccountData
|
||||||
|
<$> areq (checkM checkValidUsername textField) userSettings Nothing
|
||||||
|
<*> areq emailField emailSettings Nothing
|
||||||
|
<*> aopt checkBoxField (tosSettings tos1) Nothing
|
||||||
|
<*> aopt checkBoxField (tosSettings tos2) Nothing
|
||||||
|
<* bootstrapSubmit ("Sign up" :: BootstrapSubmit T.Text)
|
||||||
|
where
|
||||||
|
userSettings = bfs (SomeMessage MsgUsername)
|
||||||
|
emailSettings = bfs (SomeMessage MsgEmail)
|
||||||
|
tosSettings t = bfs (SomeMessage t)
|
||||||
|
|
||||||
instance UserCredentials (Entity User) where
|
instance UserCredentials (Entity User) where
|
||||||
userUserName = userName . entityVal
|
userUserName = userName . entityVal
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
name: eidolon
|
name: eidolon
|
||||||
version: 0.1.11.9
|
version: 0.1.11.10
|
||||||
synopsis: Image gallery in Yesod
|
synopsis: Image gallery in Yesod
|
||||||
homepage: https://eidolon.nek0.eu
|
homepage: https://eidolon.nek0.eu
|
||||||
license: AGPL-3
|
license: AGPL-3
|
||||||
|
@ -148,7 +148,7 @@ library
|
||||||
, texmath
|
, texmath
|
||||||
, fuzzy
|
, fuzzy
|
||||||
, yesod-auth
|
, yesod-auth
|
||||||
, yesod-auth-hmac-keccak
|
, yesod-auth-hmac-keccak >= 0.0.0.4
|
||||||
|
|
||||||
executable eidolon
|
executable eidolon
|
||||||
if flag(library-only)
|
if flag(library-only)
|
||||||
|
|
Loading…
Reference in a new issue