Resolve "Benutzerdaten-Abfrage: Mehrere Modi & OAuth-Modus" #207

Merged
savau merged 144 commits from 142-userdata-oauth-mode into oauth2 2024-03-13 17:24:06 +01:00
Showing only changes of commit e9bbeffd7e - Show all commits

View File

@ -7,7 +7,7 @@
module Auth.LDAP
( apLdap
, ADError(..), ADInvalidCredentials(..)
, campusLogin
, ldapLogin
, CampusUserException(..)
, ldapUser, ldapUser', ldapUser''
, ldapUserReTest, ldapUserReTest'
@ -263,18 +263,18 @@ campusForm = do
<*> areq passwordField (fslpI MsgCampusPassword (mr MsgCampusPasswordPlaceholder) & addAttr "autocomplete" "current-password") Nothing
campusLogin :: forall site.
( YesodAuth site
, RenderMessage site CampusMessage
, RenderAFormSite site
, RenderMessage site (ValueRequired site)
, RenderMessage site ADInvalidCredentials
, Button site ButtonSubmit
)
=> Failover (LdapConf, LdapPool)
-> FailoverMode
-> AuthPlugin site
campusLogin pool mode = AuthPlugin{..}
ldapLogin :: forall site.
( YesodAuth site
, RenderMessage site CampusMessage
, RenderAFormSite site
, RenderMessage site (ValueRequired site)
, RenderMessage site ADInvalidCredentials
, Button site ButtonSubmit
)
=> (LdapConf, LdapPool) -- TODO: reintroduce Failover
-> FailoverMode
-> AuthPlugin site
ldapLogin pool mode = AuthPlugin{..}
where
apName :: Text
apName = apLdap
@ -285,7 +285,7 @@ campusLogin pool mode = AuthPlugin{..}
tp <- getRouteToParent
resp <- formResultMaybe loginRes $ \CampusLogin{ campusIdent = CI.original -> campusIdent, ..} -> Just <$> do
ldapResult <- withLdapFailover _2 pool mode $ \(conf@LdapConf{..}, ldap) -> liftIO $ do
ldapResult <- withLdap _2 pool mode $ \(conf@LdapConf{..}, ldap) -> liftIO $ do
Ldap.bind ldap ldapDn ldapPassword
searchResults <- findUser conf ldap campusIdent [ldapUserPrincipalName]
case searchResults of