web client login: redirect to setup page if no admin is found

This commit is contained in:
Nicola Murino 2021-09-25 14:50:08 +02:00
parent ad8ebcc031
commit ae9c540640
No known key found for this signature in database
GPG key ID: 2F1FB59433D5A8CB
2 changed files with 9 additions and 0 deletions

View file

@ -5944,6 +5944,11 @@ func TestWebAdminSetupMock(t *testing.T) {
rr = executeRequest(req) rr = executeRequest(req)
checkResponseCode(t, http.StatusFound, rr) checkResponseCode(t, http.StatusFound, rr)
assert.Equal(t, webAdminSetupPath, rr.Header().Get("Location")) assert.Equal(t, webAdminSetupPath, rr.Header().Get("Location"))
req, err = http.NewRequest(http.MethodGet, webClientLoginPath, nil)
assert.NoError(t, err)
rr = executeRequest(req)
checkResponseCode(t, http.StatusFound, rr)
assert.Equal(t, webAdminSetupPath, rr.Header().Get("Location"))
csrfToken, err := getCSRFToken(httpBaseURL + webAdminSetupPath) csrfToken, err := getCSRFToken(httpBaseURL + webAdminSetupPath)
assert.NoError(t, err) assert.NoError(t, err)

View file

@ -253,6 +253,10 @@ func renderCredentialsPage(w http.ResponseWriter, r *http.Request, pwdError stri
} }
func handleClientWebLogin(w http.ResponseWriter, r *http.Request) { func handleClientWebLogin(w http.ResponseWriter, r *http.Request) {
if !dataprovider.HasAdmin() {
http.Redirect(w, r, webAdminSetupPath, http.StatusFound)
return
}
renderClientLoginPage(w, "") renderClientLoginPage(w, "")
} }