[MM-63504] When changing a channel to group synced, it doesn't always clear members (#30526)

* fix issue with channel and team membership after group constraints are enabled
Этот коммит содержится в:
Ben Cooke
2025-04-01 12:20:00 -04:00
коммит произвёл GitHub
родитель a47269cfe2
Коммит 2454de5b4a
10 изменённых файлов: 614 добавлений и 91 удалений

Просмотреть файл

@@ -257,18 +257,27 @@ func patchTeam(c *Context, w http.ResponseWriter, r *http.Request) {
return
}
if oldTeam, err := c.App.GetTeam(c.Params.TeamId); err == nil {
oldTeam, err := c.App.GetTeam(c.Params.TeamId)
if err == nil {
auditRec.AddEventPriorState(oldTeam)
auditRec.AddEventObjectType("team")
}
patchedTeam, err := c.App.PatchTeam(c.Params.TeamId, &team)
if err != nil {
c.Err = err
return
}
// If the team is now group constrained but wasn't previously, delete members that aren't part of the team's groups
if patchedTeam.GroupConstrained != nil && *patchedTeam.GroupConstrained && (oldTeam.GroupConstrained == nil || !*oldTeam.GroupConstrained) {
c.App.Srv().Go(func() {
if err := c.App.DeleteGroupConstrainedTeamMemberships(c.AppContext, &c.Params.TeamId); err != nil {
c.Logger.Warn("Error deleting group-constrained team memberships", mlog.Err(err))
}
})
}
c.App.SanitizeTeam(*c.AppContext.Session(), patchedTeam)
auditRec.Success()