diff --git a/site/src/components/UsersTable/UsersTable.tsx b/site/src/components/UsersTable/UsersTable.tsx index 6729c3e7e0f4f..8163884a18f39 100644 --- a/site/src/components/UsersTable/UsersTable.tsx +++ b/site/src/components/UsersTable/UsersTable.tsx @@ -27,6 +27,7 @@ export interface UsersTableProps { onActivateUser: (user: TypesGen.User) => void onDeleteUser: (user: TypesGen.User) => void onListWorkspaces: (user: TypesGen.User) => void + onViewActivity: (user: TypesGen.User) => void onResetUserPassword: (user: TypesGen.User) => void onUpdateUserRoles: ( user: TypesGen.User, @@ -42,6 +43,7 @@ export const UsersTable: FC> = ({ onSuspendUser, onDeleteUser, onListWorkspaces, + onViewActivity, onActivateUser, onResetUserPassword, onUpdateUserRoles, @@ -80,6 +82,7 @@ export const UsersTable: FC> = ({ onActivateUser={onActivateUser} onDeleteUser={onDeleteUser} onListWorkspaces={onListWorkspaces} + onViewActivity={onViewActivity} onResetUserPassword={onResetUserPassword} onSuspendUser={onSuspendUser} onUpdateUserRoles={onUpdateUserRoles} diff --git a/site/src/components/UsersTable/UsersTableBody.tsx b/site/src/components/UsersTable/UsersTableBody.tsx index a1317e9e4b267..aa297a52ad569 100644 --- a/site/src/components/UsersTable/UsersTableBody.tsx +++ b/site/src/components/UsersTable/UsersTableBody.tsx @@ -37,6 +37,7 @@ interface UsersTableBodyProps { onSuspendUser: (user: TypesGen.User) => void onDeleteUser: (user: TypesGen.User) => void onListWorkspaces: (user: TypesGen.User) => void + onViewActivity: (user: TypesGen.User) => void onActivateUser: (user: TypesGen.User) => void onResetUserPassword: (user: TypesGen.User) => void onUpdateUserRoles: ( @@ -55,6 +56,7 @@ export const UsersTableBody: FC< onSuspendUser, onDeleteUser, onListWorkspaces, + onViewActivity, onActivateUser, onResetUserPassword, onUpdateUserRoles, @@ -183,14 +185,19 @@ export const UsersTableBody: FC< onClick: onDeleteUser, disabled: user.id === actorID, }, + { + label: t("resetPasswordMenuItem"), + onClick: onResetUserPassword, + disabled: false, + }, { label: t("listWorkspacesMenuItem"), onClick: onListWorkspaces, disabled: false, }, { - label: t("resetPasswordMenuItem"), - onClick: onResetUserPassword, + label: "View activity", + onClick: onViewActivity, disabled: false, }, ) diff --git a/site/src/pages/UsersPage/UsersPage.tsx b/site/src/pages/UsersPage/UsersPage.tsx index dd5cae8330dee..7760e0a262219 100644 --- a/site/src/pages/UsersPage/UsersPage.tsx +++ b/site/src/pages/UsersPage/UsersPage.tsx @@ -112,6 +112,11 @@ export const UsersPage: FC<{ children?: ReactNode }> = () => { encodeURIComponent(`owner:${user.username}`), ) }} + onViewActivity={(user) => { + navigate( + "/audit?filter=" + encodeURIComponent(`username:${user.username}`), + ) + }} onDeleteUser={(user) => { usersSend({ type: "DELETE_USER", diff --git a/site/src/pages/UsersPage/UsersPageView.tsx b/site/src/pages/UsersPage/UsersPageView.tsx index a47d29a1e3c8b..078c46585bf5e 100644 --- a/site/src/pages/UsersPage/UsersPageView.tsx +++ b/site/src/pages/UsersPage/UsersPageView.tsx @@ -23,6 +23,7 @@ export interface UsersPageViewProps { onSuspendUser: (user: TypesGen.User) => void onDeleteUser: (user: TypesGen.User) => void onListWorkspaces: (user: TypesGen.User) => void + onViewActivity: (user: TypesGen.User) => void onActivateUser: (user: TypesGen.User) => void onResetUserPassword: (user: TypesGen.User) => void onUpdateUserRoles: ( @@ -44,6 +45,7 @@ export const UsersPageView: FC> = ({ onSuspendUser, onDeleteUser, onListWorkspaces, + onViewActivity, onActivateUser, onResetUserPassword, onUpdateUserRoles, @@ -86,6 +88,7 @@ export const UsersPageView: FC> = ({ onSuspendUser={onSuspendUser} onDeleteUser={onDeleteUser} onListWorkspaces={onListWorkspaces} + onViewActivity={onViewActivity} onActivateUser={onActivateUser} onResetUserPassword={onResetUserPassword} onUpdateUserRoles={onUpdateUserRoles}