[MM-22368] Log Channel Moderation events (#14042)
* MM-22368 Log Channel Moderation events * Modify wording * Use structured fields * Update app/channel.go
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
010dac2195
Коммит
911e636ec3
@@ -696,7 +696,7 @@ func (a *App) GetTeamSchemeChannelRoles(teamId string) (guestRoleName, userRoleN
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// PatchChannelModerationsForChannel Gets a channels ChannelModerations from either the higherScoped roles or from the channel scheme roles.
|
// GetChannelModerationsForChannel Gets a channels ChannelModerations from either the higherScoped roles or from the channel scheme roles.
|
||||||
func (a *App) GetChannelModerationsForChannel(channel *model.Channel) ([]*model.ChannelModeration, *model.AppError) {
|
func (a *App) GetChannelModerationsForChannel(channel *model.Channel) ([]*model.ChannelModeration, *model.AppError) {
|
||||||
guestRoleName, memberRoleName, _, _ := a.GetSchemeRolesForChannel(channel.Id)
|
guestRoleName, memberRoleName, _, _ := a.GetSchemeRolesForChannel(channel.Id)
|
||||||
memberRole, err := a.GetRoleByName(memberRoleName)
|
memberRole, err := a.GetRoleByName(memberRoleName)
|
||||||
@@ -753,6 +753,7 @@ func (a *App) PatchChannelModerationsForChannel(channel *model.Channel, channelM
|
|||||||
if _, err = a.CreateChannelScheme(channel); err != nil {
|
if _, err = a.CreateChannelScheme(channel); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
mlog.Info("Permission scheme created.", mlog.String("channel_id", channel.Id), mlog.String("channel_name", channel.Name))
|
||||||
}
|
}
|
||||||
|
|
||||||
guestRoleName, memberRoleName, _, _ := a.GetSchemeRolesForChannel(channel.Id)
|
guestRoleName, memberRoleName, _, _ := a.GetSchemeRolesForChannel(channel.Id)
|
||||||
@@ -769,6 +770,25 @@ func (a *App) PatchChannelModerationsForChannel(channel *model.Channel, channelM
|
|||||||
memberRolePatch := memberRole.RolePatchFromChannelModerationsPatch(channelModerationsPatch, "members")
|
memberRolePatch := memberRole.RolePatchFromChannelModerationsPatch(channelModerationsPatch, "members")
|
||||||
guestRolePatch := guestRole.RolePatchFromChannelModerationsPatch(channelModerationsPatch, "guests")
|
guestRolePatch := guestRole.RolePatchFromChannelModerationsPatch(channelModerationsPatch, "guests")
|
||||||
|
|
||||||
|
for _, channelModerationPatch := range channelModerationsPatch {
|
||||||
|
permissionModified := *channelModerationPatch.Name
|
||||||
|
if channelModerationPatch.Roles.Guests != nil && utils.StringInSlice(permissionModified, model.ChannelModeratedPermissionsChangedByPatch(guestRole, guestRolePatch)) {
|
||||||
|
if *channelModerationPatch.Roles.Guests {
|
||||||
|
mlog.Info("Permission enabled for guests.", mlog.String("permission", permissionModified), mlog.String("channel_id", channel.Id), mlog.String("channel_name", channel.Name))
|
||||||
|
} else {
|
||||||
|
mlog.Info("Permission disabled for guests.", mlog.String("permission", permissionModified), mlog.String("channel_id", channel.Id), mlog.String("channel_name", channel.Name))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if channelModerationPatch.Roles.Members != nil && utils.StringInSlice(permissionModified, model.ChannelModeratedPermissionsChangedByPatch(memberRole, memberRolePatch)) {
|
||||||
|
if *channelModerationPatch.Roles.Members {
|
||||||
|
mlog.Info("Permission enabled for members.", mlog.String("permission", permissionModified), mlog.String("channel_id", channel.Id), mlog.String("channel_name", channel.Name))
|
||||||
|
} else {
|
||||||
|
mlog.Info("Permission disabled for members.", mlog.String("permission", permissionModified), mlog.String("channel_id", channel.Id), mlog.String("channel_name", channel.Name))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
memberRolePermissionsUnmodified := len(model.ChannelModeratedPermissionsChangedByPatch(higherScopedMemberRole, memberRolePatch)) == 0
|
memberRolePermissionsUnmodified := len(model.ChannelModeratedPermissionsChangedByPatch(higherScopedMemberRole, memberRolePatch)) == 0
|
||||||
guestRolePermissionsUnmodified := len(model.ChannelModeratedPermissionsChangedByPatch(higherScopedGuestRole, guestRolePatch)) == 0
|
guestRolePermissionsUnmodified := len(model.ChannelModeratedPermissionsChangedByPatch(higherScopedGuestRole, guestRolePatch)) == 0
|
||||||
if memberRolePermissionsUnmodified && guestRolePermissionsUnmodified {
|
if memberRolePermissionsUnmodified && guestRolePermissionsUnmodified {
|
||||||
@@ -778,6 +798,7 @@ func (a *App) PatchChannelModerationsForChannel(channel *model.Channel, channelM
|
|||||||
}
|
}
|
||||||
memberRole = higherScopedMemberRole
|
memberRole = higherScopedMemberRole
|
||||||
guestRole = higherScopedGuestRole
|
guestRole = higherScopedGuestRole
|
||||||
|
mlog.Info("Permission scheme deleted.", mlog.String("channel_id", channel.Id), mlog.String("channel_name", channel.Name))
|
||||||
} else {
|
} else {
|
||||||
memberRole, err = a.PatchRole(memberRole, memberRolePatch)
|
memberRole, err = a.PatchRole(memberRole, memberRolePatch)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user