Skip to content

Commit

Permalink
endpoint and dummy handler for requesting a dns token for a team
Browse files Browse the repository at this point in the history
  • Loading branch information
battermann committed Jan 20, 2025
1 parent f504d3f commit 482c6aa
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,15 @@ type DomainVerificationAPI =
:> "token"
:> Post '[JSON] DomainVerificationTokenResponse
)
:<|> Named
"domain-verification-token-team"
( Summary "Get a DNS verification token"
:> ZLocalUser
:> "domain-verification"
:> Capture "domain" Domain
:> "team-token"
:> Post '[JSON] DomainVerificationTokenResponse
)
:<|> Named
"update-domain-redirect"
( Summary "Verify DNS record and save domain redirect configuration"
Expand Down Expand Up @@ -56,7 +65,7 @@ type DomainVerificationAPI =
)

data DomainVerificationTokenResponse = DomainVerificationTokenResponse
{ authToken :: DomainVerificationAuthToken,
{ authToken :: Maybe DomainVerificationAuthToken,
dnsToken :: DomainVerificationToken
}
deriving (A.ToJSON, A.FromJSON, S.ToSchema) via (Schema DomainVerificationTokenResponse)
Expand All @@ -65,7 +74,7 @@ instance ToSchema DomainVerificationTokenResponse where
schema =
object "DomainVerificationTokenResponse" $
DomainVerificationTokenResponse
<$> (.authToken) .= field "auth_token" schema
<$> (.authToken) .= maybe_ (optField "auth_token" schema)
<*> (.dnsToken) .= field "dns_verification_token" schema

data DomainRedirectConfig
Expand Down
4 changes: 4 additions & 0 deletions libs/wire-subsystems/src/Wire/EnterpriseLoginSubsystem.hs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ data EnterpriseLoginSubsystem m a where
Maybe DomainVerificationAuthToken ->
Domain ->
EnterpriseLoginSubsystem m DomainVerificationTokenResponse
RequestDomainVerificationTeamToken ::
Local UserId ->
Domain ->
EnterpriseLoginSubsystem m DomainVerificationTokenResponse
UpdateDomainRedirect ::
DomainVerificationAuthToken ->
Domain ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,9 @@ runEnterpriseLoginSubsystem = interpret $
RequestDomainVerificationToken mAuthToken domain ->
runInputSem (wireServerEnterpriseEndpoint <$> input) $
requestDomainVerificationTokenImpl mAuthToken domain
RequestDomainVerificationTeamToken lusr domain ->
runInputSem (wireServerEnterpriseEndpoint <$> input) $
requestDomainVerificationTeamTokenImpl lusr domain
UpdateDomainRedirect mAuthToken domain config ->
runInputSem (wireServerEnterpriseEndpoint <$> input) $
updateDomainRedirectImpl mAuthToken domain config
Expand Down Expand Up @@ -448,16 +451,17 @@ requestDomainVerificationTokenImpl ::
Domain ->
Sem r DomainVerificationTokenResponse
requestDomainVerificationTokenImpl mAuthToken domain = do
authToken <- case mAuthToken of
Nothing -> generateAuthToken
Just token -> pure token
authToken <- maybe generateAuthToken pure mAuthToken
dnsToken <- getDomainVerificationToken domain authToken
pure
DomainVerificationTokenResponse
{ authToken,
dnsToken
{ authToken = Just authToken,
dnsToken = dnsToken
}

requestDomainVerificationTeamTokenImpl :: Local UserId -> Domain -> Sem (Input Endpoint : r) DomainVerificationTokenResponse
requestDomainVerificationTeamTokenImpl = todo

updateDomainRedirectImpl ::
( Member (Error EnterpriseLoginSubsystemError) r,
Member (Error ParseException) r,
Expand Down
10 changes: 10 additions & 0 deletions services/brig/src/Brig/API/Public.hs
Original file line number Diff line number Diff line change
Expand Up @@ -552,6 +552,7 @@ servantSitemap =
domainVerificationAPI :: ServerT DomainVerificationAPI (Handler r)
domainVerificationAPI =
Named @"domain-verification-token" requestDomainVerificationToken
:<|> Named @"domain-verification-token-team" requestDomainVerificationTeamToken
:<|> Named @"update-domain-redirect" updateDomainRedirect
:<|> Named @"update-team-invite" updateTeamInvite
:<|> Named @"get-domain-registration" getDomainRegistration
Expand Down Expand Up @@ -1519,6 +1520,15 @@ requestDomainVerificationToken ::
requestDomainVerificationToken (fmap unBearer -> mAuthToken) domain =
lift . liftSem $ EnterpriseLogin.requestDomainVerificationToken mAuthToken domain

requestDomainVerificationTeamToken ::
forall r.
(_) =>
Local UserId ->
Domain ->
Handler r DomainVerificationTokenResponse
requestDomainVerificationTeamToken lusr domain =
lift . liftSem $ EnterpriseLogin.requestDomainVerificationTeamToken lusr domain

updateDomainRedirect ::
(_) =>
Bearer DomainVerificationAuthToken ->
Expand Down

0 comments on commit 482c6aa

Please sign in to comment.