diff options
Diffstat (limited to 'app/role.go')
-rw-r--r-- | app/role.go | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/app/role.go b/app/role.go index c9278e0bd..72cf43fe7 100644 --- a/app/role.go +++ b/app/role.go @@ -4,9 +4,9 @@ package app import ( - "reflect" - "net/http" + "reflect" + "strings" "github.com/mattermost/mattermost-server/model" ) @@ -90,3 +90,23 @@ func (a *App) sendUpdatedRoleEvent(role *model.Role) { a.Publish(message) }) } + +func RemoveRoles(rolesToRemove []string, roles string) string { + roleList := strings.Fields(roles) + newRoles := make([]string, 0) + + for _, role := range roleList { + shouldRemove := false + for _, roleToRemove := range rolesToRemove { + if role == roleToRemove { + shouldRemove = true + break + } + } + if !shouldRemove { + newRoles = append(newRoles, role) + } + } + + return strings.Join(newRoles, " ") +} |