MM-60987: Move message_export code to monorepo (#28674)
* move message_export code to monorepo * update license headers * moving over `dedicated filestore` (#1772) from enterprise master
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
1d04a2292d
Коммит
b8e462e198
58
server/enterprise/message_export/membership_map.go
Обычный файл
58
server/enterprise/message_export/membership_map.go
Обычный файл
@@ -0,0 +1,58 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.enterprise for license information.
|
||||
|
||||
package message_export
|
||||
|
||||
type MembershipMapUser struct {
|
||||
userId string
|
||||
email string
|
||||
username string
|
||||
}
|
||||
|
||||
// Provides a clean interface for tracking the users that are present in any number of channels by channel id and user email
|
||||
type MembershipMap map[string]map[string]MembershipMapUser
|
||||
|
||||
func (m *MembershipMap) init(channelId string) {
|
||||
if *m == nil {
|
||||
*m = make(map[string]map[string]MembershipMapUser)
|
||||
}
|
||||
if (*m)[channelId] == nil {
|
||||
(*m)[channelId] = make(map[string]MembershipMapUser)
|
||||
}
|
||||
}
|
||||
|
||||
func (m *MembershipMap) AddUserToChannel(channelId string, user MembershipMapUser) {
|
||||
m.init(channelId)
|
||||
if !m.IsUserInChannel(channelId, user.email) {
|
||||
(*m)[channelId][user.email] = user
|
||||
}
|
||||
}
|
||||
|
||||
func (m *MembershipMap) RemoveUserFromChannel(channelId string, userEmail string) {
|
||||
m.init(channelId)
|
||||
delete((*m)[channelId], userEmail)
|
||||
}
|
||||
|
||||
func (m *MembershipMap) IsUserInChannel(channelId string, userEmail string) bool {
|
||||
m.init(channelId)
|
||||
_, exists := (*m)[channelId][userEmail]
|
||||
return exists
|
||||
}
|
||||
|
||||
func (m *MembershipMap) GetUserEmailsInChannel(channelId string) []string {
|
||||
m.init(channelId)
|
||||
users := make([]string, 0, len((*m)[channelId]))
|
||||
for k := range (*m)[channelId] {
|
||||
users = append(users, k)
|
||||
}
|
||||
return users
|
||||
}
|
||||
|
||||
func (m *MembershipMap) GetUsersInChannel(channelId string) []MembershipMapUser {
|
||||
m.init(channelId)
|
||||
users := make([]MembershipMapUser, 0, len((*m)[channelId]))
|
||||
for _, v := range (*m)[channelId] {
|
||||
users = append(users, v)
|
||||
}
|
||||
return users
|
||||
}
|
||||
Ссылка в новой задаче
Block a user