Fix 5xx when scim filter not present
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
@@ -23,6 +23,7 @@ import (
|
|||||||
"github.com/elimity-com/scim"
|
"github.com/elimity-com/scim"
|
||||||
scimerrors "github.com/elimity-com/scim/errors"
|
scimerrors "github.com/elimity-com/scim/errors"
|
||||||
"github.com/elimity-com/scim/optional"
|
"github.com/elimity-com/scim/optional"
|
||||||
|
scimfilter "github.com/scim2/filter-parser/v2"
|
||||||
"go.gearno.de/kit/httpserver"
|
"go.gearno.de/kit/httpserver"
|
||||||
"go.gearno.de/kit/log"
|
"go.gearno.de/kit/log"
|
||||||
"go.probo.inc/probo/pkg/bearertoken"
|
"go.probo.inc/probo/pkg/bearertoken"
|
||||||
@@ -222,11 +223,15 @@ func (h *scimResourceHandler) GetAll(r *http.Request, params scim.ListRequestPar
|
|||||||
handler: h,
|
handler: h,
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := params.FilterValidator.Validate(); err != nil {
|
var filterExpr scimfilter.Expression
|
||||||
return scim.Page{}, rc.logAndWrapError(scimerrors.ScimErrorBadRequest(err.Error()), "invalid filter")
|
if params.FilterValidator != nil {
|
||||||
|
if err := params.FilterValidator.Validate(); err != nil {
|
||||||
|
return scim.Page{}, rc.logAndWrapError(scimerrors.ScimErrorBadRequest(err.Error()), "invalid filter")
|
||||||
|
}
|
||||||
|
filterExpr = params.FilterValidator.GetFilter()
|
||||||
}
|
}
|
||||||
|
|
||||||
resources, totalCount, err := h.handler.iam.SCIMService.ListUsers(rc.ctx, rc.config, params.FilterValidator.GetFilter(), params.StartIndex, params.Count)
|
resources, totalCount, err := h.handler.iam.SCIMService.ListUsers(rc.ctx, rc.config, filterExpr, params.StartIndex, params.Count)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return scim.Page{}, rc.logAndWrapError(err, "cannot list users")
|
return scim.Page{}, rc.logAndWrapError(err, "cannot list users")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user