Skip to content

Commit

Permalink
Explicitly handle values in audit type conversion (mattermost#18768)
Browse files Browse the repository at this point in the history
(cherry picked from commit 01f2b20)
  • Loading branch information
streamer45 authored and mattermost-build committed Oct 20, 2021
1 parent 7358104 commit 9f8bebd
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 1 deletion.
40 changes: 40 additions & 0 deletions model/auditconv.go
Expand Up @@ -15,44 +15,84 @@ func AuditModelTypeConv(val interface{}) (newVal interface{}, converted bool) {
switch v := val.(type) {
case *Channel:
return newAuditChannel(v), true
case Channel:
return newAuditChannel(&v), true
case *Team:
return newAuditTeam(v), true
case Team:
return newAuditTeam(&v), true
case *User:
return newAuditUser(v), true
case User:
return newAuditUser(&v), true
case *Command:
return newAuditCommand(v), true
case Command:
return newAuditCommand(&v), true
case *CommandArgs:
return newAuditCommandArgs(v), true
case CommandArgs:
return newAuditCommandArgs(&v), true
case *Bot:
return newAuditBot(v), true
case Bot:
return newAuditBot(&v), true
case *ChannelModerationPatch:
return newAuditChannelModerationPatch(v), true
case ChannelModerationPatch:
return newAuditChannelModerationPatch(&v), true
case *Emoji:
return newAuditEmoji(v), true
case Emoji:
return newAuditEmoji(&v), true
case *FileInfo:
return newAuditFileInfo(v), true
case FileInfo:
return newAuditFileInfo(&v), true
case *Group:
return newAuditGroup(v), true
case Group:
return newAuditGroup(&v), true
case *Job:
return newAuditJob(v), true
case Job:
return newAuditJob(&v), true
case *OAuthApp:
return newAuditOAuthApp(v), true
case OAuthApp:
return newAuditOAuthApp(&v), true
case *Post:
return newAuditPost(v), true
case Post:
return newAuditPost(&v), true
case *Role:
return newAuditRole(v), true
case Role:
return newAuditRole(&v), true
case *Scheme:
return newAuditScheme(v), true
case Scheme:
return newAuditScheme(&v), true
case *SchemeRoles:
return newAuditSchemeRoles(v), true
case SchemeRoles:
return newAuditSchemeRoles(&v), true
case *Session:
return newAuditSession(v), true
case Session:
return newAuditSession(&v), true
case *IncomingWebhook:
return newAuditIncomingWebhook(v), true
case IncomingWebhook:
return newAuditIncomingWebhook(&v), true
case *OutgoingWebhook:
return newAuditOutgoingWebhook(v), true
case OutgoingWebhook:
return newAuditOutgoingWebhook(&v), true
case *RemoteCluster:
return newRemoteCluster(v), true
case RemoteCluster:
return newRemoteCluster(&v), true
}
return val, false
}
Expand Down
3 changes: 2 additions & 1 deletion model/auditconv_test.go
Expand Up @@ -37,7 +37,8 @@ func TestAuditModelTypeConv(t *testing.T) {
{name: "int array", args: args{val: []int{77, 68}}, wantConverted: false, wantNewVal: []int{77, 68}},
{name: "struct pointer value", args: args{val: sample}, wantConverted: false, wantNewVal: sample},
{name: "struct pointer array", args: args{val: sampleArr}, wantConverted: false, wantNewVal: sampleArr},
{name: "model user", args: args{val: user}, wantConverted: true, wantNewVal: "XXX"},
{name: "model user pointer", args: args{val: user}, wantConverted: true, wantNewVal: "XXX"},
{name: "model user value", args: args{val: *user}, wantConverted: true, wantNewVal: "XXX"},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
Expand Down

0 comments on commit 9f8bebd

Please sign in to comment.