mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
Make import compatible with scheme-roles. (#9028)
This doesn't introduce new fields as we would then break backwards compatability with old "roles" fields. We can add custom fields if/when we go to "version 2" of the bulk import format.
This commit is contained in:
committed by
Jesús Espino
parent
56ba06c016
commit
c371ae4db1
@@ -1062,10 +1062,24 @@ func (a *App) ImportUserTeams(user *model.User, data *[]UserTeamImportData) *mod
|
||||
}
|
||||
|
||||
var roles string
|
||||
isSchemeUser := true
|
||||
isSchemeAdmin := false
|
||||
|
||||
if tdata.Roles == nil {
|
||||
roles = model.TEAM_USER_ROLE_ID
|
||||
isSchemeUser = true
|
||||
} else {
|
||||
roles = *tdata.Roles
|
||||
rawRoles := *tdata.Roles
|
||||
explicitRoles := []string{}
|
||||
for _, role := range strings.Fields(rawRoles) {
|
||||
if role == model.TEAM_USER_ROLE_ID {
|
||||
isSchemeUser = true
|
||||
} else if role == model.TEAM_ADMIN_ROLE_ID {
|
||||
isSchemeAdmin = true
|
||||
} else {
|
||||
explicitRoles = append(explicitRoles, role)
|
||||
}
|
||||
}
|
||||
roles = strings.Join(explicitRoles, " ")
|
||||
}
|
||||
|
||||
var member *model.TeamMember
|
||||
@@ -1073,12 +1087,16 @@ func (a *App) ImportUserTeams(user *model.User, data *[]UserTeamImportData) *mod
|
||||
return err
|
||||
}
|
||||
|
||||
if member.Roles != roles {
|
||||
if member.ExplicitRoles != roles {
|
||||
if _, err := a.UpdateTeamMemberRoles(team.Id, user.Id, roles); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if member.SchemeAdmin != isSchemeAdmin || member.SchemeUser != isSchemeUser {
|
||||
a.UpdateTeamMemberSchemeRoles(team.Id, user.Id, isSchemeUser, isSchemeAdmin)
|
||||
}
|
||||
|
||||
if defaultChannel, err := a.GetChannelByName(model.DEFAULT_CHANNEL, team.Id); err != nil {
|
||||
return err
|
||||
} else if _, err = a.addUserToChannel(user, defaultChannel, member); err != nil {
|
||||
@@ -1108,10 +1126,24 @@ func (a *App) ImportUserChannels(user *model.User, team *model.Team, teamMember
|
||||
}
|
||||
|
||||
var roles string
|
||||
isSchemeUser := true
|
||||
isSchemeAdmin := false
|
||||
|
||||
if cdata.Roles == nil {
|
||||
roles = model.CHANNEL_USER_ROLE_ID
|
||||
isSchemeUser = true
|
||||
} else {
|
||||
roles = *cdata.Roles
|
||||
rawRoles := *cdata.Roles
|
||||
explicitRoles := []string{}
|
||||
for _, role := range strings.Fields(rawRoles) {
|
||||
if role == model.CHANNEL_USER_ROLE_ID {
|
||||
isSchemeUser = true
|
||||
} else if role == model.CHANNEL_ADMIN_ROLE_ID {
|
||||
isSchemeAdmin = true
|
||||
} else {
|
||||
explicitRoles = append(explicitRoles, role)
|
||||
}
|
||||
}
|
||||
roles = strings.Join(explicitRoles, " ")
|
||||
}
|
||||
|
||||
var member *model.ChannelMember
|
||||
@@ -1123,12 +1155,16 @@ func (a *App) ImportUserChannels(user *model.User, team *model.Team, teamMember
|
||||
}
|
||||
}
|
||||
|
||||
if member.Roles != roles {
|
||||
if member.ExplicitRoles != roles {
|
||||
if _, err := a.UpdateChannelMemberRoles(channel.Id, user.Id, roles); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if member.SchemeAdmin != isSchemeAdmin || member.SchemeUser != isSchemeUser {
|
||||
a.UpdateChannelMemberSchemeRoles(channel.Id, user.Id, isSchemeUser, isSchemeAdmin)
|
||||
}
|
||||
|
||||
if cdata.NotifyProps != nil {
|
||||
notifyProps := member.NotifyProps
|
||||
|
||||
|
||||
Reference in New Issue
Block a user