Auth: Remove types from SSOSettings struct in SSO service (#79459)
* replace SSOSettings with SSOSettingsDTO * fix database tests * fix oauth strategy * fix sso settings service tests * add secrets encryption on update * rename SSOSettingsDTO to SSOSettings * remove extraKeys from strategy * change back settings type from createOAuthConnector to OAuthInfo * do not parse multi-value fields in oauth strategy
This commit is contained in:
@@ -60,21 +60,10 @@ func (api *Api) RegisterAPIEndpoints() {
|
||||
func (api *Api) listAllProvidersSettings(c *contextmodel.ReqContext) response.Response {
|
||||
providers, err := api.getAuthorizedList(c.Req.Context(), c.SignedInUser)
|
||||
if err != nil {
|
||||
return response.Error(500, "Failed to get providers", err)
|
||||
return response.Error(http.StatusInternalServerError, "Failed to get providers", err)
|
||||
}
|
||||
|
||||
dtos := make([]*models.SSOSettingsDTO, 0)
|
||||
for _, provider := range providers {
|
||||
dto, err := provider.ToSSOSettingsDTO()
|
||||
if err != nil {
|
||||
api.Log.Warn("Failed to convert SSO Settings for provider " + provider.Provider)
|
||||
continue
|
||||
}
|
||||
|
||||
dtos = append(dtos, dto)
|
||||
}
|
||||
|
||||
return response.JSON(http.StatusOK, dtos)
|
||||
return response.JSON(http.StatusOK, providers)
|
||||
}
|
||||
|
||||
func (api *Api) getAuthorizedList(ctx context.Context, identity identity.Requester) ([]*models.SSOSettings, error) {
|
||||
@@ -113,12 +102,7 @@ func (api *Api) getProviderSettings(c *contextmodel.ReqContext) response.Respons
|
||||
return response.Error(http.StatusNotFound, "The provider was not found", err)
|
||||
}
|
||||
|
||||
dto, err := settings.ToSSOSettingsDTO()
|
||||
if err != nil {
|
||||
return response.Error(http.StatusInternalServerError, "The provider is invalid", err)
|
||||
}
|
||||
|
||||
return response.JSON(http.StatusOK, dto)
|
||||
return response.JSON(http.StatusOK, settings)
|
||||
}
|
||||
|
||||
func (api *Api) updateProviderSettings(c *contextmodel.ReqContext) response.Response {
|
||||
@@ -127,19 +111,14 @@ func (api *Api) updateProviderSettings(c *contextmodel.ReqContext) response.Resp
|
||||
return response.Error(http.StatusBadRequest, "Missing key", nil)
|
||||
}
|
||||
|
||||
var settingsDTO models.SSOSettingsDTO
|
||||
if err := web.Bind(c.Req, &settingsDTO); err != nil {
|
||||
var settings models.SSOSettings
|
||||
if err := web.Bind(c.Req, &settings); err != nil {
|
||||
return response.Error(http.StatusBadRequest, "Failed to parse request body", err)
|
||||
}
|
||||
|
||||
settings, err := settingsDTO.ToSSOSettings()
|
||||
if err != nil {
|
||||
return response.Error(http.StatusBadRequest, "Invalid request body", err)
|
||||
}
|
||||
|
||||
settings.Provider = key
|
||||
|
||||
err = api.SSOSettingsService.Upsert(c.Req.Context(), *settings)
|
||||
err := api.SSOSettingsService.Upsert(c.Req.Context(), settings)
|
||||
// TODO: first check whether the error is referring to validation errors
|
||||
|
||||
// other error
|
||||
|
||||
Reference in New Issue
Block a user