Skip to content

Commit 76d2049

Browse files
committed
Remove user from groups on user deletion
1 parent 5bc773d commit 76d2049

File tree

4 files changed

+23
-9
lines changed

4 files changed

+23
-9
lines changed

services/brig/src/Brig/API/Internal.hs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ import Wire.Sem.Random (Random)
127127
import Wire.SparAPIAccess (SparAPIAccess)
128128
import Wire.TeamInvitationSubsystem
129129
import Wire.TeamSubsystem (TeamSubsystem)
130+
import Wire.UserGroupSubsystem
130131
import Wire.UserKeyStore
131132
import Wire.UserStore as UserStore
132133
import Wire.UserSubsystem
@@ -148,6 +149,7 @@ servantSitemap ::
148149
Member GalleyAPIAccess r,
149150
Member NotificationSubsystem r,
150151
Member UserSubsystem r,
152+
Member UserGroupSubsystem r,
151153
Member TeamSubsystem r,
152154
Member TeamInvitationSubsystem r,
153155
Member UserStore r,
@@ -222,6 +224,7 @@ accountAPI ::
222224
Member (Embed HttpClientIO) r,
223225
Member NotificationSubsystem r,
224226
Member UserSubsystem r,
227+
Member UserGroupSubsystem r,
225228
Member UserKeyStore r,
226229
Member (Input (Local ())) r,
227230
Member UserStore r,
@@ -626,7 +629,8 @@ deleteUserNoAuthH ::
626629
Member Events r,
627630
Member UserSubsystem r,
628631
Member PropertySubsystem r,
629-
Member AuthenticationSubsystem r
632+
Member AuthenticationSubsystem r,
633+
Member UserGroupSubsystem r
630634
) =>
631635
UserId ->
632636
(Handler r) DeleteUserResponse

services/brig/src/Brig/API/Public.hs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1418,7 +1418,8 @@ deleteSelfUser ::
14181418
Member Events r,
14191419
Member HashPassword r,
14201420
Member RateLimit r,
1421-
Member AuthenticationSubsystem r
1421+
Member AuthenticationSubsystem r,
1422+
Member UserGroupSubsystem r
14221423
) =>
14231424
Local UserId ->
14241425
Public.DeleteUser ->
@@ -1436,7 +1437,8 @@ verifyDeleteUser ::
14361437
Member PropertySubsystem r,
14371438
Member UserSubsystem r,
14381439
Member Events r,
1439-
Member AuthenticationSubsystem r
1440+
Member AuthenticationSubsystem r,
1441+
Member UserGroupSubsystem r
14401442
) =>
14411443
Public.VerifyDeleteUser ->
14421444
Handler r ()

services/brig/src/Brig/API/User.hs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ import Wire.Sem.Paging.Cassandra
150150
import Wire.StoredUser
151151
import Wire.TeamSubsystem (TeamSubsystem)
152152
import Wire.TeamSubsystem qualified as TeamSubsystem
153+
import Wire.UserGroupSubsystem
153154
import Wire.UserKeyStore
154155
import Wire.UserStore (UserStore)
155156
import Wire.UserStore qualified as UserStore
@@ -903,7 +904,8 @@ deleteSelfUser ::
903904
Member PropertySubsystem r,
904905
Member HashPassword r,
905906
Member RateLimit r,
906-
Member AuthenticationSubsystem r
907+
Member AuthenticationSubsystem r,
908+
Member UserGroupSubsystem r
907909
) =>
908910
Local UserId ->
909911
Maybe PlainTextPassword6 ->
@@ -975,7 +977,8 @@ verifyDeleteUser ::
975977
Member Events r,
976978
Member UserSubsystem r,
977979
Member PropertySubsystem r,
978-
Member AuthenticationSubsystem r
980+
Member AuthenticationSubsystem r,
981+
Member UserGroupSubsystem r
979982
) =>
980983
VerifyDeleteUser ->
981984
ExceptT DeleteUserError (AppT r) ()
@@ -1003,7 +1006,8 @@ ensureAccountDeleted ::
10031006
Member Events r,
10041007
Member UserSubsystem r,
10051008
Member PropertySubsystem r,
1006-
Member AuthenticationSubsystem r
1009+
Member AuthenticationSubsystem r,
1010+
Member UserGroupSubsystem r
10071011
) =>
10081012
Local UserId ->
10091013
AppT r DeleteUserResult
@@ -1052,7 +1056,8 @@ deleteAccount ::
10521056
Member PropertySubsystem r,
10531057
Member UserSubsystem r,
10541058
Member Events r,
1055-
Member AuthenticationSubsystem r
1059+
Member AuthenticationSubsystem r,
1060+
Member UserGroupSubsystem r
10561061
) =>
10571062
User ->
10581063
Sem r ()
@@ -1064,9 +1069,10 @@ deleteAccount user = do
10641069
for_ (userEmail user) $ deleteKeyForUser uid . mkEmailKey
10651070

10661071
PropertySubsystem.onUserDeleted uid
1067-
10681072
UserStore.deleteUser user
10691073

1074+
traverse_ (removeUserFromAllGroups uid) user.userTeam
1075+
10701076
Intra.rmUser uid (userAssets user)
10711077
embed $ Data.lookupClients uid >>= mapM_ (Data.rmClient uid . (.clientId))
10721078
luid <- embed $ qualifyLocal uid

services/brig/src/Brig/InternalEvent/Process.hs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import Wire.Events (Events)
4040
import Wire.NotificationSubsystem
4141
import Wire.PropertySubsystem
4242
import Wire.Sem.Delay
43+
import Wire.UserGroupSubsystem
4344
import Wire.UserKeyStore
4445
import Wire.UserStore (UserStore)
4546
import Wire.UserSubsystem
@@ -59,7 +60,8 @@ onEvent ::
5960
Member PropertySubsystem r,
6061
Member UserSubsystem r,
6162
Member Events r,
62-
Member AuthenticationSubsystem r
63+
Member AuthenticationSubsystem r,
64+
Member UserGroupSubsystem r
6365
) =>
6466
InternalNotification ->
6567
Sem r ()

0 commit comments

Comments
 (0)