added additional check for empty ExternalAuth data in case the provider api changes
This commit is contained in:
parent
0ac4c9e1fc
commit
93b3788448
|
@ -35,6 +35,7 @@ func (dao *Dao) FindExternalAuthByProvider(provider, providerId string) (*models
|
||||||
model := &models.ExternalAuth{}
|
model := &models.ExternalAuth{}
|
||||||
|
|
||||||
err := dao.ExternalAuthQuery().
|
err := dao.ExternalAuthQuery().
|
||||||
|
AndWhere(dbx.Not(dbx.HashExp{"providerId": ""})). // exclude empty providerIds
|
||||||
AndWhere(dbx.HashExp{
|
AndWhere(dbx.HashExp{
|
||||||
"provider": provider,
|
"provider": provider,
|
||||||
"providerId": providerId,
|
"providerId": providerId,
|
||||||
|
@ -71,6 +72,12 @@ func (dao *Dao) FindExternalAuthByUserIdAndProvider(userId, provider string) (*m
|
||||||
|
|
||||||
// SaveExternalAuth upserts the provided ExternalAuth model.
|
// SaveExternalAuth upserts the provided ExternalAuth model.
|
||||||
func (dao *Dao) SaveExternalAuth(model *models.ExternalAuth) error {
|
func (dao *Dao) SaveExternalAuth(model *models.ExternalAuth) error {
|
||||||
|
// extra check the model data in case the provider's API response
|
||||||
|
// changes and no longer returns the expected fields
|
||||||
|
if model.UserId == "" || model.Provider == "" || model.ProviderId == "" {
|
||||||
|
return errors.New("Missing required ExternalAuth fields.")
|
||||||
|
}
|
||||||
|
|
||||||
return dao.Save(model)
|
return dao.Save(model)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -123,6 +123,12 @@ func TestSaveExternalAuth(t *testing.T) {
|
||||||
app, _ := tests.NewTestApp()
|
app, _ := tests.NewTestApp()
|
||||||
defer app.Cleanup()
|
defer app.Cleanup()
|
||||||
|
|
||||||
|
// save with empty provider data
|
||||||
|
emptyAuth := &models.ExternalAuth{}
|
||||||
|
if err := app.Dao().SaveExternalAuth(emptyAuth); err == nil {
|
||||||
|
t.Fatal("Expected error, got nil")
|
||||||
|
}
|
||||||
|
|
||||||
auth := &models.ExternalAuth{
|
auth := &models.ExternalAuth{
|
||||||
UserId: "97cc3d3d-6ba2-383f-b42a-7bc84d27410c",
|
UserId: "97cc3d3d-6ba2-383f-b42a-7bc84d27410c",
|
||||||
Provider: "test",
|
Provider: "test",
|
||||||
|
|
Loading…
Reference in New Issue