diff --git a/server/routers/user/listUsers.ts b/server/routers/user/listUsers.ts index 2e23f401..83c1e492 100644 --- a/server/routers/user/listUsers.ts +++ b/server/routers/user/listUsers.ts @@ -49,7 +49,8 @@ async function queryUsers(orgId: string, limit: number, offset: number) { roleName: roles.name, isOwner: userOrgs.isOwner, idpName: idp.name, - idpId: users.idpId + idpId: users.idpId, + twoFactorEnabled: users.twoFactorEnabled, }) .from(users) .leftJoin(userOrgs, eq(users.userId, userOrgs.userId)) diff --git a/src/app/[orgId]/settings/access/users/UsersTable.tsx b/src/app/[orgId]/settings/access/users/UsersTable.tsx index d3ee404e..017ab875 100644 --- a/src/app/[orgId]/settings/access/users/UsersTable.tsx +++ b/src/app/[orgId]/settings/access/users/UsersTable.tsx @@ -34,6 +34,7 @@ export type UserRow = { status: string; role: string; isOwner: boolean; + isTwoFactorEnabled: boolean; }; type UsersTableProps = { @@ -170,6 +171,39 @@ export default function UsersTable({ users: u }: UsersTableProps) { ); } }, + { + accessorKey: "isTwoFactorEnabled", + header: ({ column }) => { + return ( + + ); + }, + cell: ({ row }) => { + const userRow = row.original; + + return ( +
When enabled, the user will be required to set up their authenticator app on their next login. {user.twoFactorEnabled && ( - This user currently has 2FA enabled. + This user currently has 2FA enabled. )}
@@ -246,6 +243,8 @@ export default function AccessControlsPage() { + + ); } diff --git a/src/app/[orgId]/settings/access/users/page.tsx b/src/app/[orgId]/settings/access/users/page.tsx index 27b227fa..49637f71 100644 --- a/src/app/[orgId]/settings/access/users/page.tsx +++ b/src/app/[orgId]/settings/access/users/page.tsx @@ -81,7 +81,8 @@ export default async function UsersPage(props: UsersPageProps) { idpName: user.idpName || t('idpNameInternal'), status: t('userConfirmed'), role: user.isOwner ? t('accessRoleOwner') : user.roleName || t('accessRoleMember'), - isOwner: user.isOwner || false + isOwner: user.isOwner || false, + isTwoFactorEnabled: user.twoFactorEnabled || false, }; });