-- SPDX-FileCopyrightText: 2023 Sarah Vaupel -- -- 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")