Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit2e5cd29

Browse files
authored
chore: load 'assign_default' value from legacy value (#17428)
If this value was set before v2.19.0, then assign_default was in a jsonfield that would not match. And it would default to `false`. Thiscorrects that.
1 parentc4d3dd2 commit2e5cd29

File tree

2 files changed

+79
-0
lines changed

2 files changed

+79
-0
lines changed

‎coderd/idpsync/organization.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,17 @@ type OrganizationSyncSettings struct {
213213
}
214214

215215
func (s*OrganizationSyncSettings)Set(vstring)error {
216+
legacyCheck:=make(map[string]any)
217+
err:=json.Unmarshal([]byte(v),&legacyCheck)
218+
ifassign,ok:=legacyCheck["AssignDefault"];err==nil&&ok {
219+
// The legacy JSON key was 'AssignDefault' instead of 'assign_default'
220+
// Set the default value from the legacy if it exists.
221+
isBool,ok:=assign.(bool)
222+
ifok {
223+
s.AssignDefault=isBool
224+
}
225+
}
226+
216227
returnjson.Unmarshal([]byte(v),s)
217228
}
218229

‎coderd/idpsync/organizations_test.go

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package idpsync_test
22

33
import (
44
"database/sql"
5+
"fmt"
56
"testing"
67

78
"github.com/golang-jwt/jwt/v4"
@@ -19,6 +20,73 @@ import (
1920
"github.com/coder/coder/v2/testutil"
2021
)
2122

23+
funcTestFromLegacySettings(t*testing.T) {
24+
t.Parallel()
25+
26+
legacy:=func(assignDefaultbool)string {
27+
returnfmt.Sprintf(`{
28+
"Field":"groups",
29+
"Mapping":{
30+
"engineering":[
31+
"10b2bd19-f5ca-4905-919f-bf02e95e3b6a"
32+
]
33+
},
34+
"AssignDefault":%t
35+
}`,assignDefault)
36+
}
37+
38+
t.Run("AssignDefault,True",func(t*testing.T) {
39+
t.Parallel()
40+
41+
varsettings idpsync.OrganizationSyncSettings
42+
settings.AssignDefault=true
43+
err:=settings.Set(legacy(true))
44+
require.NoError(t,err)
45+
46+
require.Equal(t,settings.Field,"groups","field")
47+
require.Equal(t,settings.Mapping,map[string][]uuid.UUID{
48+
"engineering": {
49+
uuid.MustParse("10b2bd19-f5ca-4905-919f-bf02e95e3b6a"),
50+
},
51+
},"mapping")
52+
require.True(t,settings.AssignDefault,"assign default")
53+
})
54+
55+
t.Run("AssignDefault,False",func(t*testing.T) {
56+
t.Parallel()
57+
58+
varsettings idpsync.OrganizationSyncSettings
59+
settings.AssignDefault=true
60+
err:=settings.Set(legacy(false))
61+
require.NoError(t,err)
62+
63+
require.Equal(t,settings.Field,"groups","field")
64+
require.Equal(t,settings.Mapping,map[string][]uuid.UUID{
65+
"engineering": {
66+
uuid.MustParse("10b2bd19-f5ca-4905-919f-bf02e95e3b6a"),
67+
},
68+
},"mapping")
69+
require.False(t,settings.AssignDefault,"assign default")
70+
})
71+
72+
t.Run("CorrectAssign",func(t*testing.T) {
73+
t.Parallel()
74+
75+
varsettings idpsync.OrganizationSyncSettings
76+
settings.AssignDefault=true
77+
err:=settings.Set(legacy(false))
78+
require.NoError(t,err)
79+
80+
require.Equal(t,settings.Field,"groups","field")
81+
require.Equal(t,settings.Mapping,map[string][]uuid.UUID{
82+
"engineering": {
83+
uuid.MustParse("10b2bd19-f5ca-4905-919f-bf02e95e3b6a"),
84+
},
85+
},"mapping")
86+
require.False(t,settings.AssignDefault,"assign default")
87+
})
88+
}
89+
2290
funcTestParseOrganizationClaims(t*testing.T) {
2391
t.Parallel()
2492

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp