Skip to content

Commit

Permalink
New EnterpriseLogin action: get domain registration by email.
Browse files Browse the repository at this point in the history
  • Loading branch information
fisx committed Jan 31, 2025
1 parent 4936823 commit 93de4c3
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 2 deletions.
17 changes: 17 additions & 0 deletions libs/wire-subsystems/src/Wire/EnterpriseLoginSubsystem.hs
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,12 @@ import Data.Id
import Data.Qualified
import Imports
import Polysemy
import Text.Email.Validate
import Wire.API.EnterpriseLogin
import Wire.API.Routes.Public.Brig.DomainVerification
import Wire.API.User.EmailAddress

-- | FUTUREWORK: Rename this to `DomainRegistrationSubsystem`
data EnterpriseLoginSubsystem m a where
LockDomain :: Domain -> EnterpriseLoginSubsystem m ()
UnlockDomain :: Domain -> EnterpriseLoginSubsystem m ()
Expand Down Expand Up @@ -42,3 +45,17 @@ data EnterpriseLoginSubsystem m a where
AuthorizeTeam :: Local UserId -> Domain -> DomainOwnershipToken -> EnterpriseLoginSubsystem m ()

makeSem ''EnterpriseLoginSubsystem

getDomainRegistrationByEmail ::
forall r.
(Member EnterpriseLoginSubsystem r) =>
EmailAddress ->
Sem r (Maybe DomainRegistrationResponse)
getDomainRegistrationByEmail email = do
case emailDomain email of
Left _ ->
-- this can only be nothing if EmailAddress and Domain parsers disagree on what
-- constitutes a valid domain.
pure Nothing
Right domain ->
getDomainRegistration domain
Original file line number Diff line number Diff line change
Expand Up @@ -272,8 +272,7 @@ guardEmailDomainRegistration ::
EmailAddress ->
Sem r ()
guardEmailDomainRegistration invitationFlow tid email = do
domain <- mapError (const TeamInvitationInvalidEmail) $ fromEither $ emailDomain email
mReg <- getDomainRegistration domain
mReg <- getDomainRegistrationByEmail email
for_ mReg $ \reg -> do
-- Check if domain has certain restrictions
case reg.domainRedirect of
Expand Down

0 comments on commit 93de4c3

Please sign in to comment.