Revert "Avoid overwriting exiting redirect URI and trusted peers when updating the client"
This reverts commit 49fa5ee6e8
.
This commit is contained in:
parent
49fa5ee6e8
commit
9d1ec6c36b
@ -87,11 +87,12 @@ func (d dexAPI) UpdateClient(ctx context.Context, req *api.UpdateClientReq) (*ap
|
|||||||
|
|
||||||
err := d.s.UpdateClient(req.Id, func(old storage.Client) (storage.Client, error) {
|
err := d.s.UpdateClient(req.Id, func(old storage.Client) (storage.Client, error) {
|
||||||
if req.RedirectUris != nil && len(req.RedirectUris) > 0 {
|
if req.RedirectUris != nil && len(req.RedirectUris) > 0 {
|
||||||
old.RedirectURIs = mergeSlice(old.RedirectURIs, req.RedirectUris)
|
old.RedirectURIs = req.RedirectUris
|
||||||
}
|
}
|
||||||
if req.TrustedPeers != nil && len(req.TrustedPeers) > 0 {
|
if req.TrustedPeers != nil && len(req.TrustedPeers) > 0 {
|
||||||
old.TrustedPeers = mergeSlice(old.TrustedPeers, req.TrustedPeers)
|
old.TrustedPeers = req.TrustedPeers
|
||||||
}
|
}
|
||||||
|
old.Public = req.Public
|
||||||
if req.Name != "" {
|
if req.Name != "" {
|
||||||
old.Name = req.Name
|
old.Name = req.Name
|
||||||
}
|
}
|
||||||
@ -111,23 +112,6 @@ func (d dexAPI) UpdateClient(ctx context.Context, req *api.UpdateClientReq) (*ap
|
|||||||
return &api.UpdateClientResp{}, nil
|
return &api.UpdateClientResp{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func mergeSlice(s1 []string, s2 []string) []string {
|
|
||||||
isPresent := func(i string, s []string) bool {
|
|
||||||
for _, j := range s {
|
|
||||||
if j == i {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
for _, i := range s2 {
|
|
||||||
if !isPresent(i, s1) {
|
|
||||||
s1 = append(s1, i)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return s1
|
|
||||||
}
|
|
||||||
|
|
||||||
func (d dexAPI) DeleteClient(ctx context.Context, req *api.DeleteClientReq) (*api.DeleteClientResp, error) {
|
func (d dexAPI) DeleteClient(ctx context.Context, req *api.DeleteClientReq) (*api.DeleteClientResp, error) {
|
||||||
err := d.s.DeleteClient(req.Id)
|
err := d.s.DeleteClient(req.Id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -461,42 +461,3 @@ func find(item string, items []string) bool {
|
|||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMergeSlice(t *testing.T) {
|
|
||||||
tests := map[string]struct {
|
|
||||||
s1 []string
|
|
||||||
s2 []string
|
|
||||||
want []string
|
|
||||||
}{
|
|
||||||
"merge slice": {
|
|
||||||
s1: []string{"t1", "t2"},
|
|
||||||
s2: []string{"t3"},
|
|
||||||
want: []string{"t1", "t2", "t3"},
|
|
||||||
},
|
|
||||||
"merge slice with duplicates": {
|
|
||||||
s1: []string{"t1", "t2"},
|
|
||||||
s2: []string{"t3", "t2"},
|
|
||||||
want: []string{"t1", "t2", "t3"},
|
|
||||||
},
|
|
||||||
"merge slice with empty slice": {
|
|
||||||
s1: []string{"t1", "t2"},
|
|
||||||
s2: []string{},
|
|
||||||
want: []string{"t1", "t2"},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
for name, tc := range tests {
|
|
||||||
t.Run(name, func(t *testing.T) {
|
|
||||||
got := mergeSlice(tc.s1, tc.s2)
|
|
||||||
if len(got) != len(tc.want) {
|
|
||||||
t.Errorf("expected equal slice")
|
|
||||||
}
|
|
||||||
for _, want := range tc.want {
|
|
||||||
found := find(want, got)
|
|
||||||
if !found {
|
|
||||||
t.Errorf("missing element: %s", want)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Reference in New Issue
Block a user