bolt provider: fix error handling for get users with username filter

This commit is contained in:
Nicola Murino
2020-03-22 15:37:08 +01:00
parent c1194d558c
commit 0787e3e595
2 changed files with 13 additions and 11 deletions

View File

@@ -336,9 +336,14 @@ func (p BoltProvider) getUsers(limit int, offset int, order string, username str
} }
if len(username) > 0 { if len(username) > 0 {
if offset == 0 { if offset == 0 {
user, err := p.userExists(username) var user User
user, err = p.userExists(username)
if err == nil { if err == nil {
users = append(users, HideUserSensitiveData(&user)) users = append(users, HideUserSensitiveData(&user))
return users, nil
}
if _, ok := err.(*RecordNotFoundError); ok {
err = nil
} }
} }
return users, err return users, err

View File

@@ -983,7 +983,7 @@ func TestUserBaseDir(t *testing.T) {
providerConf.UsersBaseDir = homeBasePath providerConf.UsersBaseDir = homeBasePath
err := dataprovider.Initialize(providerConf, configDir) err := dataprovider.Initialize(providerConf, configDir)
if err != nil { if err != nil {
t.Errorf("error initializing data provider with users base dir") t.Errorf("error initializing data provider with users base dir: %v", err)
} }
httpd.SetDataProvider(dataprovider.GetProvider()) httpd.SetDataProvider(dataprovider.GetProvider())
u := getTestUser() u := getTestUser()
@@ -1014,9 +1014,6 @@ func TestUserBaseDir(t *testing.T) {
} }
func TestProviderErrors(t *testing.T) { func TestProviderErrors(t *testing.T) {
if providerDriverName == dataprovider.BoltDataProviderName {
t.Skip("skipping test provider errors for bolt provider")
}
dataProvider := dataprovider.GetProvider() dataProvider := dataprovider.GetProvider()
dataprovider.Close(dataProvider) dataprovider.Close(dataProvider)
_, _, err := httpd.GetUserByID(0, http.StatusInternalServerError) _, _, err := httpd.GetUserByID(0, http.StatusInternalServerError)
@@ -1061,7 +1058,7 @@ func TestProviderErrors(t *testing.T) {
os.RemoveAll(credentialsPath) os.RemoveAll(credentialsPath)
err = dataprovider.Initialize(providerConf, configDir) err = dataprovider.Initialize(providerConf, configDir)
if err != nil { if err != nil {
t.Errorf("error initializing data provider") t.Errorf("error initializing data provider: %v", err)
} }
httpd.SetDataProvider(dataprovider.GetProvider()) httpd.SetDataProvider(dataprovider.GetProvider())
sftpd.SetDataProvider(dataprovider.GetProvider()) sftpd.SetDataProvider(dataprovider.GetProvider())
@@ -1074,7 +1071,7 @@ func TestDumpdata(t *testing.T) {
providerConf := config.GetProviderConf() providerConf := config.GetProviderConf()
err := dataprovider.Initialize(providerConf, configDir) err := dataprovider.Initialize(providerConf, configDir)
if err != nil { if err != nil {
t.Errorf("error initializing data provider") t.Errorf("error initializing data provider:_%v", err)
} }
httpd.SetDataProvider(dataprovider.GetProvider()) httpd.SetDataProvider(dataprovider.GetProvider())
sftpd.SetDataProvider(dataprovider.GetProvider()) sftpd.SetDataProvider(dataprovider.GetProvider())
@@ -1107,6 +1104,9 @@ func TestDumpdata(t *testing.T) {
} }
os.Chmod(backupsPath, 0755) os.Chmod(backupsPath, 0755)
} }
dataProvider = dataprovider.GetProvider()
dataprovider.Close(dataProvider)
config.LoadConfig(configDir, "")
providerConf = config.GetProviderConf() providerConf = config.GetProviderConf()
providerConf.CredentialsPath = credentialsPath providerConf.CredentialsPath = credentialsPath
os.RemoveAll(credentialsPath) os.RemoveAll(credentialsPath)
@@ -2248,9 +2248,6 @@ func TestWebUserGCSMock(t *testing.T) {
} }
func TestProviderClosedMock(t *testing.T) { func TestProviderClosedMock(t *testing.T) {
if providerDriverName == dataprovider.BoltDataProviderName {
t.Skip("skipping test provider errors for bolt provider")
}
dataProvider := dataprovider.GetProvider() dataProvider := dataprovider.GetProvider()
dataprovider.Close(dataProvider) dataprovider.Close(dataProvider)
req, _ := http.NewRequest(http.MethodGet, webUsersPath, nil) req, _ := http.NewRequest(http.MethodGet, webUsersPath, nil)
@@ -2270,7 +2267,7 @@ func TestProviderClosedMock(t *testing.T) {
os.RemoveAll(credentialsPath) os.RemoveAll(credentialsPath)
err := dataprovider.Initialize(providerConf, configDir) err := dataprovider.Initialize(providerConf, configDir)
if err != nil { if err != nil {
t.Errorf("error initializing data provider") t.Errorf("error initializing data provider: %v", err)
} }
httpd.SetDataProvider(dataprovider.GetProvider()) httpd.SetDataProvider(dataprovider.GetProvider())
sftpd.SetDataProvider(dataprovider.GetProvider()) sftpd.SetDataProvider(dataprovider.GetProvider())