diff --git a/packages/features/users/components/UserTable/UserListTable.tsx b/packages/features/users/components/UserTable/UserListTable.tsx index 34e6f605bf..9343c17eea 100644 --- a/packages/features/users/components/UserTable/UserListTable.tsx +++ b/packages/features/users/components/UserTable/UserListTable.tsx @@ -77,6 +77,7 @@ const initalColumnVisibility = { teams: true, createdAt: false, updatedAt: false, + twoFactorEnabled: false, actions: true, }; @@ -416,6 +417,26 @@ function UserListTableContent({ org, attributes, teams, facetedTeamValues }: Use }, cell: ({ row }) =>
{row.original.updatedAt || ""}
, }, + { + id: "twoFactorEnabled", + accessorKey: "twoFactorEnabled", + header: t("2fa"), + enableHiding: adminOrOwner, + enableSorting: false, + enableColumnFilter: false, + size: 80, + cell: ({ row }) => { + const { twoFactorEnabled } = row.original; + if (!adminOrOwner || twoFactorEnabled === undefined) { + return null; + } + return ( + + {twoFactorEnabled ? t("enabled") : t("disabled")} + + ); + }, + }, { id: "actions", enableHiding: false, diff --git a/packages/trpc/server/routers/viewer/organizations/listMembers.handler.ts b/packages/trpc/server/routers/viewer/organizations/listMembers.handler.ts index f681e7985f..117b506493 100644 --- a/packages/trpc/server/routers/viewer/organizations/listMembers.handler.ts +++ b/packages/trpc/server/routers/viewer/organizations/listMembers.handler.ts @@ -225,6 +225,7 @@ export const listMembersHandler = async ({ ctx, input }: GetOptions) => { disableImpersonation: true, completedOnboarding: true, lastActiveAt: true, + ...(ctx.user.organization.isOrgAdmin && { twoFactorEnabled: true }), teams: { select: { team: { @@ -311,6 +312,7 @@ export const listMembersHandler = async ({ ctx, input }: GetOptions) => { .toLowerCase() : null, avatarUrl: user.avatarUrl, + ...(ctx.user.organization.isOrgAdmin && { twoFactorEnabled: user.twoFactorEnabled }), teams: user.teams .filter((team) => team.team.id !== organizationId) // In this context we dont want to return the org team .map((team) => {