@@ -71,6 +71,29 @@ module Wire.BrigAPIAccess
7171 deleteGroupInternal ,
7272 deleteApp ,
7373 DeleteGroupManagedError (.. ),
74+
75+ -- * SAML / SCIM user management
76+ createSAML ,
77+ createNoSAML ,
78+ updateEmail ,
79+ getAccount ,
80+ getAccountByHandle ,
81+ getByEmail ,
82+ setName ,
83+ setHandle ,
84+ setManagedBy ,
85+ setSSOId ,
86+ setRichInfo ,
87+ setLocale ,
88+ getRichInfo ,
89+ checkHandleAvailable ,
90+ ssoLogin ,
91+ getStatus ,
92+ getStatusMaybe ,
93+ setStatus ,
94+ getDefaultUserLocale ,
95+ checkAdminGetTeamId ,
96+ sendSAMLIdPChangedEmail ,
7497 )
7598where
7699
@@ -86,17 +109,22 @@ import Network.HTTP.Types.Status
86109import Network.Wai.Utilities.Error qualified as Wai
87110import Polysemy
88111import Polysemy.Error
112+ import SAML2.WebSSO qualified as SAML
113+ import Web.Cookie (SetCookie )
89114import Web.Scim.Filter qualified as Scim
90115import Wire.API.Connection
91116import Wire.API.Error.Galley
117+ import Wire.API.Locale
92118import Wire.API.MLS.CipherSuite
93119import Wire.API.Routes.Internal.Brig
94120import Wire.API.Routes.Internal.Brig.Connection
95121import Wire.API.Routes.Internal.Galley.TeamFeatureNoConfigMulti qualified as Multi
96122import Wire.API.Team.Export
97123import Wire.API.Team.Feature
124+ import Wire.API.Team.Role (Role )
98125import Wire.API.Team.Size
99126import Wire.API.User
127+ import Wire.API.User.Auth (CookieLabel )
100128import Wire.API.User.Auth.ReAuth
101129import Wire.API.User.Client
102130import Wire.API.User.Client.Prekey
@@ -170,6 +198,46 @@ data BrigAPIAccess m a where
170198 UpdateGroup :: UpdateGroupInternalRequest -> BrigAPIAccess m (Either Wai. Error () )
171199 DeleteGroupInternal :: ManagedBy -> TeamId -> UserGroupId -> BrigAPIAccess m (Either DeleteGroupManagedError () )
172200 DeleteApp :: TeamId -> UserId -> BrigAPIAccess m ()
201+ -- SAML / SCIM user management (migrated from Spar.Sem.BrigAccess)
202+ CreateSAML ::
203+ SAML. UserRef ->
204+ UserId ->
205+ TeamId ->
206+ Name ->
207+ ManagedBy ->
208+ Maybe Handle ->
209+ Maybe RichInfo ->
210+ Maybe Locale ->
211+ Role ->
212+ BrigAPIAccess m UserId
213+ CreateNoSAML ::
214+ Text ->
215+ EmailAddress ->
216+ UserId ->
217+ TeamId ->
218+ Name ->
219+ Maybe Locale ->
220+ Role ->
221+ BrigAPIAccess m UserId
222+ UpdateEmail :: UserId -> EmailAddress -> EmailActivation -> BrigAPIAccess m ()
223+ GetAccount :: HavePendingInvitations -> UserId -> BrigAPIAccess m (Maybe User )
224+ GetAccountByHandle :: Handle -> BrigAPIAccess m (Maybe User )
225+ GetByEmail :: EmailAddress -> BrigAPIAccess m (Maybe User )
226+ SetName :: UserId -> Name -> BrigAPIAccess m ()
227+ SetHandle :: UserId -> Handle -> BrigAPIAccess m ()
228+ SetManagedBy :: UserId -> ManagedBy -> BrigAPIAccess m ()
229+ SetSSOId :: UserId -> UserSSOId -> BrigAPIAccess m ()
230+ SetRichInfo :: UserId -> RichInfo -> BrigAPIAccess m ()
231+ SetLocale :: UserId -> Maybe Locale -> BrigAPIAccess m ()
232+ GetRichInfo :: UserId -> BrigAPIAccess m RichInfo
233+ CheckHandleAvailable :: Handle -> BrigAPIAccess m Bool
234+ SsoLogin :: UserId -> Maybe CookieLabel -> BrigAPIAccess m SetCookie
235+ GetStatus :: UserId -> BrigAPIAccess m AccountStatus
236+ GetStatusMaybe :: UserId -> BrigAPIAccess m (Maybe AccountStatus )
237+ SetStatus :: UserId -> AccountStatus -> BrigAPIAccess m ()
238+ GetDefaultUserLocale :: BrigAPIAccess m Locale
239+ CheckAdminGetTeamId :: UserId -> BrigAPIAccess m TeamId
240+ SendSAMLIdPChangedEmail :: IdpChangedNotification -> BrigAPIAccess m ()
173241
174242makeSem ''BrigAPIAccess
175243
0 commit comments