MM-60240 Sanitize Channels based on user permissions (#28086)
* initial commit * add unit tests * update tests, self review * update tests to verify something returned. * update app-layer * update unit tests * fix tests * add check for PermissionSysconsoleReadComplianceDataRetentionPolicy * revert package-lock * review suggestions --------- Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
d99961f106
Коммит
c12e6d9e9c
@@ -356,6 +356,15 @@ func (o *Channel) GetOtherUserIdForDM(userId string) string {
|
||||
return otherUserId
|
||||
}
|
||||
|
||||
func (o *Channel) Sanitize() Channel {
|
||||
return Channel{
|
||||
Id: o.Id,
|
||||
TeamId: o.TeamId,
|
||||
Type: o.Type,
|
||||
DisplayName: o.DisplayName,
|
||||
}
|
||||
}
|
||||
|
||||
func (t ChannelType) MarshalJSON() ([]byte, error) {
|
||||
return json.Marshal(string(t))
|
||||
}
|
||||
|
||||
@@ -114,3 +114,49 @@ func TestGetGroupNameFromUserIds(t *testing.T) {
|
||||
|
||||
require.LessOrEqual(t, len(name), ChannelNameMaxLength)
|
||||
}
|
||||
|
||||
func TestSanitize(t *testing.T) {
|
||||
schemaId := NewId()
|
||||
o := Channel{
|
||||
Id: NewId(),
|
||||
CreateAt: 1,
|
||||
UpdateAt: 1,
|
||||
DeleteAt: 1,
|
||||
Name: NewId(),
|
||||
DisplayName: NewId(),
|
||||
Header: NewId(),
|
||||
Purpose: NewId(),
|
||||
LastPostAt: 1,
|
||||
TotalMsgCount: 1,
|
||||
ExtraUpdateAt: 1,
|
||||
CreatorId: NewId(),
|
||||
SchemeId: &schemaId,
|
||||
Props: make(map[string]any),
|
||||
GroupConstrained: NewPointer(true),
|
||||
Shared: NewPointer(true),
|
||||
TotalMsgCountRoot: 1,
|
||||
PolicyID: &schemaId,
|
||||
LastRootPostAt: 1,
|
||||
}
|
||||
s := o.Sanitize()
|
||||
|
||||
require.NotEqual(t, "", s.Id)
|
||||
require.Equal(t, int64(0), s.CreateAt)
|
||||
require.Equal(t, int64(0), s.UpdateAt)
|
||||
require.Equal(t, int64(0), s.DeleteAt)
|
||||
require.Equal(t, "", s.Name)
|
||||
require.NotEqual(t, "", s.DisplayName)
|
||||
require.Equal(t, "", s.Header)
|
||||
require.Equal(t, "", s.Purpose)
|
||||
require.Equal(t, int64(0), s.LastPostAt)
|
||||
require.Equal(t, int64(0), s.TotalMsgCount)
|
||||
require.Equal(t, int64(0), s.ExtraUpdateAt)
|
||||
require.Equal(t, "", s.CreatorId)
|
||||
require.Nil(t, s.SchemeId)
|
||||
require.Nil(t, s.Props)
|
||||
require.Nil(t, s.GroupConstrained)
|
||||
require.Nil(t, s.Shared)
|
||||
require.Equal(t, int64(0), s.TotalMsgCountRoot)
|
||||
require.Nil(t, s.PolicyID)
|
||||
require.Equal(t, int64(0), s.LastRootPostAt)
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user