fix(users): fix #112 working now
This commit is contained in:
parent
35096ace01
commit
88bf21c9c5
@ -442,6 +442,14 @@ defNavLink navLabel navRoute = NavLink {..}
|
||||
navQuick' = mempty
|
||||
navForceActive = False
|
||||
|
||||
defNavLinkModal :: (RenderMessage UniWorX msg, HasRoute UniWorX route) => msg -> route -> NavLink
|
||||
defNavLinkModal navLabel navRoute = NavLink {..}
|
||||
where
|
||||
navAccess' = NavAccessTrue
|
||||
navType = NavTypeLink { navModal = True}
|
||||
navQuick' = mempty
|
||||
navForceActive = False
|
||||
|
||||
navBaseRoute :: NavLink -> Route UniWorX
|
||||
navBaseRoute NavLink{navRoute} = urlRoute navRoute
|
||||
|
||||
@ -1196,8 +1204,9 @@ pageActions (AdminUserR cID) = return
|
||||
{ navLink = defNavLink MsgMenuUserEdit $ ForProfileR cID
|
||||
, navChildren = []
|
||||
}
|
||||
, NavPageActionSecondary
|
||||
{ navLink = (defNavLink MsgUserHijack $ AdminHijackUserR cID){ navType = NavTypeLink { navModal = True }}
|
||||
, NavPageActionPrimary
|
||||
{ navLink = defNavLinkModal MsgUserHijack $ AdminHijackUserR cID
|
||||
, navChildren = []
|
||||
}
|
||||
]
|
||||
pageActions InfoR = return
|
||||
|
||||
@ -413,22 +413,27 @@ hijackUser uid = do
|
||||
User{userIdent} <- runDB $ get404 uid
|
||||
setCredsRedirect $ Creds apDummy (CI.original userIdent) []
|
||||
|
||||
getAdminHijackUserR :: CryptoUUIDUser -> Handler TypedContent
|
||||
getAdminHijackUserR = postAdminHijackUserR
|
||||
getAdminHijackUserR :: CryptoUUIDUser -> Handler Html
|
||||
getAdminHijackUserR cID = do
|
||||
(hijackWgt, hijackEnctype) <- generateFormPost hijackUserForm
|
||||
let hjForm = wrapForm hijackWgt def{ formSubmit = FormNoSubmit, formEncoding = hijackEnctype, formAction = Just . SomeRoute $ AdminHijackUserR cID }
|
||||
uid :: UserId <- decrypt cID
|
||||
usr <- runDB $ get404 uid
|
||||
siteLayoutMsg MsgUserHijack $ do
|
||||
setTitleI MsgUserHijack
|
||||
[whamlet|
|
||||
^{userWidget usr}
|
||||
^{hjForm}
|
||||
|]
|
||||
|
||||
postAdminHijackUserR :: CryptoUUIDUser -> Handler TypedContent
|
||||
postAdminHijackUserR cID = do
|
||||
postAdminHijackUserR cID = do
|
||||
((hijackRes, _), _) <- runFormPost hijackUserForm
|
||||
$logWarnS "HIJACK" $ "Form Result is: " <> tshow hijackRes
|
||||
uid <- decrypt cID
|
||||
((hijackRes, hijackWgt), hijackEnctype) <- runFormPost hijackUserForm
|
||||
case hijackRes of
|
||||
(FormSuccess ()) -> hijackUser uid
|
||||
_ -> selectRep $ do
|
||||
provideRep . siteLayoutMsg MsgUserHijack $ do
|
||||
setTitleI MsgUserHijack
|
||||
let hjForm = wrapForm hijackWgt def{ formEncoding = hijackEnctype }
|
||||
[whamlet|
|
||||
^{hjForm}
|
||||
|]
|
||||
ret <- formResultMaybe hijackRes $ \() -> Just <$> hijackUser uid
|
||||
maybe (redirect UsersR) return ret
|
||||
|
||||
|
||||
data ButtonAuthMode = BtnAuthLDAP | BtnAuthPWHash | BtnPasswordReset
|
||||
deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic)
|
||||
|
||||
Reference in New Issue
Block a user