diff --git a/apps/console/src/__generated__/iam/PeopleListFragment_RefetchQuery.graphql.ts b/apps/console/src/__generated__/iam/PeopleListFragment_RefetchQuery.graphql.ts index e2cee00c0..6a79beb3e 100644 --- a/apps/console/src/__generated__/iam/PeopleListFragment_RefetchQuery.graphql.ts +++ b/apps/console/src/__generated__/iam/PeopleListFragment_RefetchQuery.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<> + * @generated SignedSource<<167a4c7cc44ce2cc44e9b4680b6fc285>> * @lightSyntaxTransform * @nogrep */ @@ -11,7 +11,7 @@ import { ConcreteRequest } from 'relay-runtime'; import { FragmentRefs } from "relay-runtime"; export type OrderDirection = "ASC" | "DESC"; -export type ProfileOrderField = "CREATED_AT" | "FULL_NAME" | "KIND" | "ORGANIZATION_NAME"; +export type ProfileOrderField = "CREATED_AT" | "FULL_NAME" | "KIND" | "ORGANIZATION_NAME" | "STATE"; export type ProfileOrder = { direction: OrderDirection; field: ProfileOrderField; diff --git a/apps/console/src/pages/iam/organizations/people/PersonPage.tsx b/apps/console/src/pages/iam/organizations/people/PersonPage.tsx index 52683cef0..01b67e995 100644 --- a/apps/console/src/pages/iam/organizations/people/PersonPage.tsx +++ b/apps/console/src/pages/iam/organizations/people/PersonPage.tsx @@ -106,7 +106,7 @@ export function PersonPage(props: { queryRef: PreloadedQuery })
{person.emailAddress}
- {person.canDelete && ( + {person.canDelete && person.source !== "SCIM" && ( {__("Name")} - {__("Status")} + {__("Status")} {__("Email")} {__("Role")} {__("Created on")} diff --git a/apps/console/src/pages/iam/organizations/people/_components/PeopleListItem.tsx b/apps/console/src/pages/iam/organizations/people/_components/PeopleListItem.tsx index c78b9c6be..632851a90 100644 --- a/apps/console/src/pages/iam/organizations/people/_components/PeopleListItem.tsx +++ b/apps/console/src/pages/iam/organizations/people/_components/PeopleListItem.tsx @@ -112,6 +112,9 @@ export function PeopleListItem(props: { const isInactive = profile.state === "INACTIVE"; + const canSendActivationMail = isInactive && profile.source !== "SCIM" && profile.canInvite; + const canDelete = profile.canDelete && profile.source !== "SCIM"; + const [inviteUser] = useMutationWithToasts(inviteUserMutation, { successMessage: __("Invitation sent successfully"), @@ -248,25 +251,27 @@ export function PeopleListItem(props: { {new Date(profile.createdAt).toLocaleDateString()} - - {isInactive && profile.source !== "SCIM" && profile.canInvite && ( - - {lastInvitation ? __("Resend activation mail") : __("Send activation mail")} - - )} - {profile.canDelete && profile.source !== "SCIM" && ( - - {__("Remove person")} - - )} - + {(canSendActivationMail || canDelete) && ( + + {canSendActivationMail && ( + + {lastInvitation ? __("Resend activation mail") : __("Send activation mail")} + + )} + {canDelete && ( + + {__("Remove person")} + + )} + + )} ); diff --git a/pkg/coredata/membership_profile.go b/pkg/coredata/membership_profile.go index ee31ac3e0..aab2846f7 100644 --- a/pkg/coredata/membership_profile.go +++ b/pkg/coredata/membership_profile.go @@ -61,6 +61,8 @@ func (p MembershipProfile) CursorKey(orderBy MembershipProfileOrderField) page.C return page.NewCursorKey(p.ID, p.Kind) case MembershipProfileOrderFieldOrganizationName: return page.NewCursorKey(p.ID, p.OrganizationName) + case MembershipProfileOrderFieldState: + return page.NewCursorKey(p.ID, p.State) } panic(fmt.Sprintf("unsupported order by: %s", orderBy)) diff --git a/pkg/coredata/membership_profile_order_field.go b/pkg/coredata/membership_profile_order_field.go index 8cc64a4d2..55f496d95 100644 --- a/pkg/coredata/membership_profile_order_field.go +++ b/pkg/coredata/membership_profile_order_field.go @@ -23,6 +23,7 @@ const ( MembershipProfileOrderFieldFullName MembershipProfileOrderField = "FULL_NAME" MembershipProfileOrderFieldKind MembershipProfileOrderField = "KIND" MembershipProfileOrderFieldOrganizationName MembershipProfileOrderField = "ORGANIZATION_NAME" + MembershipProfileOrderFieldState MembershipProfileOrderField = "STATE" ) func (p MembershipProfileOrderField) Column() string { diff --git a/pkg/server/api/connect/v1/schema.graphql b/pkg/server/api/connect/v1/schema.graphql index 42effd70d..7cae2904d 100644 --- a/pkg/server/api/connect/v1/schema.graphql +++ b/pkg/server/api/connect/v1/schema.graphql @@ -511,6 +511,10 @@ enum ProfileOrderField @goEnum( value: "go.probo.inc/probo/pkg/coredata.MembershipProfileOrderFieldOrganizationName" ) + STATE + @goEnum( + value: "go.probo.inc/probo/pkg/coredata.MembershipProfileOrderFieldState" + ) } input ProfileFilter { diff --git a/pkg/server/api/connect/v1/schema/schema.go b/pkg/server/api/connect/v1/schema/schema.go index 3885e7ee3..2b6fdd164 100644 --- a/pkg/server/api/connect/v1/schema/schema.go +++ b/pkg/server/api/connect/v1/schema/schema.go @@ -2983,6 +2983,10 @@ enum ProfileOrderField @goEnum( value: "go.probo.inc/probo/pkg/coredata.MembershipProfileOrderFieldOrganizationName" ) + STATE + @goEnum( + value: "go.probo.inc/probo/pkg/coredata.MembershipProfileOrderFieldState" + ) } input ProfileFilter { @@ -22105,12 +22109,14 @@ var ( "CREATED_AT": coredata.MembershipProfileOrderFieldCreatedAt, "KIND": coredata.MembershipProfileOrderFieldKind, "ORGANIZATION_NAME": coredata.MembershipProfileOrderFieldOrganizationName, + "STATE": coredata.MembershipProfileOrderFieldState, } marshalNProfileOrderField2goᚗproboᚗincᚋproboᚋpkgᚋcoredataᚐMembershipProfileOrderField = map[coredata.MembershipProfileOrderField]string{ coredata.MembershipProfileOrderFieldFullName: "FULL_NAME", coredata.MembershipProfileOrderFieldCreatedAt: "CREATED_AT", coredata.MembershipProfileOrderFieldKind: "KIND", coredata.MembershipProfileOrderFieldOrganizationName: "ORGANIZATION_NAME", + coredata.MembershipProfileOrderFieldState: "STATE", } )