48 lines
1.9 KiB
Haskell
48 lines
1.9 KiB
Haskell
-- SPDX-FileCopyrightText: 2023 Sarah Vaupel <sarah.vaupel@uniworx.de>
|
|
--
|
|
-- SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
module Handler.Admin.OAuth2
|
|
( getAdminOAuth2R
|
|
, postAdminOAuth2R
|
|
) where
|
|
|
|
import Import
|
|
-- import qualified Data.CaseInsensitive as CI
|
|
-- import qualified Data.Text as Text
|
|
-- import Handler.Utils
|
|
|
|
|
|
getAdminOAuth2R, postAdminOAuth2R :: Handler Html
|
|
getAdminOAuth2R = postAdminOAuth2R
|
|
postAdminOAuth2R =
|
|
((presult, pwidget), penctype) <- runFormPost $ identifyForm ("adminOAuth2Lookup"::Text) $ \html ->
|
|
flip (renderAForm FormStandard) html $ areq textField (fslI MsgAdminUserIdent) Nothing
|
|
|
|
let procFormPerson :: Text -> Handler (Maybe ())
|
|
procFormPerson lid = error "TODO"
|
|
|
|
((uresult, uwidget), uenctype) <- runFormPost $ identifyForm ("adminOAuth2Upsert"::Text) $ \html ->
|
|
flip (renderAForm FormStandard) html $ areq textField (fslI MsgAdminUserIdent) Nothing
|
|
let procFormUpsert :: Text -> Handler (Maybe (Either CampusUserConversionException (Entity User)))
|
|
procFormUpsert lid = pure <$> runDB (try $ ldapLookupAndUpsert lid)
|
|
mbLdapUpsert <- formResultMaybe uresult procFormUpsert
|
|
|
|
|
|
actionUrl <- fromMaybe AdminLdapR <$> getCurrentRoute
|
|
siteLayoutMsg MsgMenuLdap $ do
|
|
setTitleI MsgMenuLdap
|
|
let personForm = wrapForm pwidget def
|
|
{ formAction = Just $ SomeRoute actionUrl
|
|
, formEncoding = penctype
|
|
}
|
|
upsertForm = wrapForm uwidget def
|
|
{ formAction = Just $ SomeRoute actionUrl
|
|
, formEncoding = uenctype
|
|
}
|
|
presentUtf8 lv = Text.intercalate ", " (either tshow id . Text.decodeUtf8' <$> lv)
|
|
presentLatin1 lv = Text.intercalate ", " ( Text.decodeLatin1 <$> lv)
|
|
|
|
-- TODO: use i18nWidgetFile instead if this is to become permanent
|
|
$(widgetFile "oauth2")
|