Auth: Implement the SSO Settings GET endpoint (#79144)
* Return data in camelCase from the OAuth fb strategy * changes * wip * Add defaults for oauth fb strategy * revert other changes * basic includeDefaults query param implementation * basic secret removal and etag implementation * correct imports * rebase * move default settings filter to models * only replace ClientSecret value if set * first GetForProvider test & use FNV for ETag to avoid Blocklisted import error * add tests * add annotation for the openapi spec & generate spec * remove TODO * use IsSecret, improve tests, remove DefaultOAuthSettings * add comment explaining generateFNVETag * add error handling for generateFNVETag * run go generate * Update pkg/services/ssosettings/api/api.go Co-authored-by: Mihai Doarna <mihai.doarna@grafana.com> * move isSecret to service, create GetForProviderWithRedactedSecrets func * add unit test for GetForProviderWithRedactedSecrets & remove duplicated code * regen openapi/swagger * revert dependency bumps --------- Co-authored-by: Mihaly Gyongyosi <mgyongyosi@users.noreply.github.com> Co-authored-by: Mihai Doarna <mihai.doarna@grafana.com>
This commit is contained in:
co-authored by
Mihai Doarna
Mihaly Gyongyosi
parent
505196bcd5
commit
062e772bb2
@@ -26,6 +26,23 @@ func (s SettingsSource) MarshalJSON() ([]byte, error) {
|
||||
}
|
||||
}
|
||||
|
||||
func (s *SettingsSource) UnmarshalJSON(data []byte) error {
|
||||
var source string
|
||||
if err := json.Unmarshal(data, &source); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
switch source {
|
||||
case "database":
|
||||
*s = DB
|
||||
case "system":
|
||||
*s = System
|
||||
default:
|
||||
return fmt.Errorf("unknown source: %s", source)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type SSOSettings struct {
|
||||
ID string `xorm:"id pk" json:"id"`
|
||||
Provider string `xorm:"provider" json:"provider"`
|
||||
|
||||
Reference in New Issue
Block a user