From 00a4d9fff0430da2e02a9f0f8ec6cd454532a2a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89mile=20R=C3=A9?= Date: Thu, 12 Feb 2026 11:43:42 +0400 Subject: [PATCH] Fix profiles totalcount MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Émile Ré --- .../src/pages/iam/organizations/people/PersonPageLoader.tsx | 6 ++---- .../iam/organizations/people/_components/PeopleList.tsx | 2 +- pkg/coredata/membership_profile.go | 5 ++++- pkg/iam/organization_service.go | 5 +++-- pkg/server/api/console/v1/v1_resolver.go | 2 +- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/apps/console/src/pages/iam/organizations/people/PersonPageLoader.tsx b/apps/console/src/pages/iam/organizations/people/PersonPageLoader.tsx index bff8eef21..33ec39912 100644 --- a/apps/console/src/pages/iam/organizations/people/PersonPageLoader.tsx +++ b/apps/console/src/pages/iam/organizations/people/PersonPageLoader.tsx @@ -16,10 +16,8 @@ function PersonPageQueryLoader() { const [queryRef, loadQuery] = useQueryLoader(personPageQuery); useEffect(() => { - if (!queryRef) { - loadQuery({ personId }); - } - }); + loadQuery({ personId }); + }, [personId, loadQuery]); if (!queryRef) return ; diff --git a/apps/console/src/pages/iam/organizations/people/_components/PeopleList.tsx b/apps/console/src/pages/iam/organizations/people/_components/PeopleList.tsx index db34291b7..269002ff0 100644 --- a/apps/console/src/pages/iam/organizations/people/_components/PeopleList.tsx +++ b/apps/console/src/pages/iam/organizations/people/_components/PeopleList.tsx @@ -28,7 +28,7 @@ const fragment = graphql` last: $last before: $before orderBy: $order - ) @connection(key: "PeopleListFragment_members") @required(action: THROW) { + ) @connection(key: "PeopleListFragment_members", filter: ["orderBy"]) @required(action: THROW) { __id totalCount edges @required(action: THROW) { diff --git a/pkg/coredata/membership_profile.go b/pkg/coredata/membership_profile.go index 3be047356..96d8017e1 100644 --- a/pkg/coredata/membership_profile.go +++ b/pkg/coredata/membership_profile.go @@ -503,6 +503,7 @@ func (p *MembershipProfiles) CountByOrganizationID( conn pg.Conn, scope Scoper, organizationID gid.GID, + filter *MembershipProfileFilter, ) (int, error) { q := ` SELECT @@ -511,13 +512,15 @@ FROM iam_membership_profiles WHERE %s + AND %s AND organization_id = @organization_id ` - q = fmt.Sprintf(q, scope.SQLFragment()) + q = fmt.Sprintf(q, scope.SQLFragment(), filter.SQLFragment()) args := pgx.StrictNamedArgs{"organization_id": organizationID} maps.Copy(args, scope.SQLArguments()) + maps.Copy(args, filter.SQLArguments()) rows, err := conn.Query(ctx, q, args) if err != nil { diff --git a/pkg/iam/organization_service.go b/pkg/iam/organization_service.go index e5ef70c6a..29cc2a7f6 100644 --- a/pkg/iam/organization_service.go +++ b/pkg/iam/organization_service.go @@ -1072,6 +1072,7 @@ func (s *OrganizationService) ListProfiles( func (s OrganizationService) CountProfiles( ctx context.Context, organizationID gid.GID, + filter *coredata.MembershipProfileFilter, ) (int, error) { var ( scope = coredata.NewScopeFromObjectID(organizationID) @@ -1082,7 +1083,7 @@ func (s OrganizationService) CountProfiles( ctx, func(conn pg.Conn) (err error) { profiles := coredata.MembershipProfiles{} - count, err = profiles.CountByOrganizationID(ctx, conn, scope, organizationID) + count, err = profiles.CountByOrganizationID(ctx, conn, scope, organizationID, filter) if err != nil { return fmt.Errorf("cannot count profiles: %w", err) } @@ -2057,7 +2058,7 @@ func (s OrganizationService) CreateSCIMBridge( ConnectorID: &connectorID, Type: bridgeType, State: coredata.SCIMBridgeStateActive, // Active immediately since connector already exists - ExcludedUserNames: []string{}, + ExcludedUserNames: []string{}, CreatedAt: now, UpdatedAt: now, } diff --git a/pkg/server/api/console/v1/v1_resolver.go b/pkg/server/api/console/v1/v1_resolver.go index f94bd2936..7b0745fc2 100644 --- a/pkg/server/api/console/v1/v1_resolver.go +++ b/pkg/server/api/console/v1/v1_resolver.go @@ -6470,7 +6470,7 @@ func (r *profileConnectionResolver) TotalCount(ctx context.Context, obj *types.P switch obj.Resolver.(type) { case *stateOfApplicabilityResolver: - count, err := r.iam.OrganizationService.CountProfiles(ctx, obj.ParentID) + count, err := r.iam.OrganizationService.CountProfiles(ctx, obj.ParentID, obj.Filters) if err != nil { panic(fmt.Errorf("cannot count profiles: %w", err)) }