|
@@ -5854,6 +5854,27 @@ func TestWebAPIChangeUserPwdMock(t *testing.T) {
|
|
|
assert.NoError(t, err)
|
|
assert.NoError(t, err)
|
|
|
assert.NotEmpty(t, token)
|
|
assert.NotEmpty(t, token)
|
|
|
|
|
|
|
|
|
|
+ // remove the change password permission
|
|
|
|
|
+ user.Filters.WebClient = []string{sdk.WebClientPasswordChangeDisabled}
|
|
|
|
|
+ user, _, err = httpdtest.UpdateUser(user, http.StatusOK, "")
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
+ assert.Len(t, user.Filters.WebClient, 1)
|
|
|
|
|
+ assert.Contains(t, user.Filters.WebClient, sdk.WebClientPasswordChangeDisabled)
|
|
|
|
|
+
|
|
|
|
|
+ token, err = getJWTAPIUserTokenFromTestServer(defaultUsername, altAdminPassword)
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
+ assert.NotEmpty(t, token)
|
|
|
|
|
+
|
|
|
|
|
+ pwd["current_password"] = altAdminPassword
|
|
|
|
|
+ pwd["new_password"] = defaultPassword
|
|
|
|
|
+ asJSON, err = json.Marshal(pwd)
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
+ req, err = http.NewRequest(http.MethodPut, userPwdPath, bytes.NewBuffer(asJSON))
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
+ setBearerForReq(req, token)
|
|
|
|
|
+ rr = executeRequest(req)
|
|
|
|
|
+ checkResponseCode(t, http.StatusForbidden, rr)
|
|
|
|
|
+
|
|
|
_, err = httpdtest.RemoveUser(user, http.StatusOK)
|
|
_, err = httpdtest.RemoveUser(user, http.StatusOK)
|
|
|
assert.NoError(t, err)
|
|
assert.NoError(t, err)
|
|
|
err = os.RemoveAll(user.GetHomeDir())
|
|
err = os.RemoveAll(user.GetHomeDir())
|
|
@@ -7568,6 +7589,24 @@ func TestWebClientChangePwd(t *testing.T) {
|
|
|
_, err = getJWTWebClientTokenFromTestServer(defaultUsername, defaultPassword+"1")
|
|
_, err = getJWTWebClientTokenFromTestServer(defaultUsername, defaultPassword+"1")
|
|
|
assert.NoError(t, err)
|
|
assert.NoError(t, err)
|
|
|
|
|
|
|
|
|
|
+ // remove the change password permission
|
|
|
|
|
+ user.Filters.WebClient = []string{sdk.WebClientPasswordChangeDisabled}
|
|
|
|
|
+ user, _, err = httpdtest.UpdateUser(user, http.StatusOK, "")
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
+ assert.Len(t, user.Filters.WebClient, 1)
|
|
|
|
|
+ assert.Contains(t, user.Filters.WebClient, sdk.WebClientPasswordChangeDisabled)
|
|
|
|
|
+
|
|
|
|
|
+ webToken, err = getJWTWebClientTokenFromTestServer(defaultUsername, defaultPassword+"1")
|
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
|
+ form.Set("current_password", defaultPassword+"1")
|
|
|
|
|
+ form.Set("new_password1", defaultPassword)
|
|
|
|
|
+ form.Set("new_password2", defaultPassword)
|
|
|
|
|
+ req, _ = http.NewRequest(http.MethodPost, webChangeClientPwdPath, bytes.NewBuffer([]byte(form.Encode())))
|
|
|
|
|
+ req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
|
|
|
|
|
+ setJWTCookieForReq(req, webToken)
|
|
|
|
|
+ rr = executeRequest(req)
|
|
|
|
|
+ checkResponseCode(t, http.StatusForbidden, rr)
|
|
|
|
|
+
|
|
|
_, err = httpdtest.RemoveUser(user, http.StatusOK)
|
|
_, err = httpdtest.RemoveUser(user, http.StatusOK)
|
|
|
assert.NoError(t, err)
|
|
assert.NoError(t, err)
|
|
|
err = os.RemoveAll(user.GetHomeDir())
|
|
err = os.RemoveAll(user.GetHomeDir())
|