fix: handle group memberships in secret versions history and fix secret versions query to always return all versions

This commit is contained in:
Scott Wilson
2025-11-05 16:55:41 -08:00
parent 190717e134
commit 27ac81ef5c
7 changed files with 90 additions and 20 deletions
@@ -1,4 +1,4 @@
import { useMemo } from "react";
import { useEffect, useMemo } from "react";
import {
faArrowDown,
faArrowUp,
@@ -7,6 +7,7 @@ import {
faSearch
} from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { useNavigate, useSearch } from "@tanstack/react-router";
import { createNotification } from "@app/components/notifications";
import {
@@ -48,6 +49,7 @@ enum GroupMembersOrderBy {
}
export const GroupMembersTable = ({ groupMembership }: Props) => {
const navigate = useNavigate();
const {
search,
setSearch,
@@ -62,6 +64,21 @@ export const GroupMembersTable = ({ groupMembership }: Props) => {
initPerPage: getUserTablePreference("projectGroupMembersTable", PreferenceKey.PerPage, 20)
});
// this handles links from secret versions when the actor is in a group membership
const { username, ...restSearch } = useSearch({
strict: false
});
useEffect(() => {
if (username) {
setSearch(username);
navigate({
to: ".",
replace: true,
search: restSearch
});
}
}, [username]);
const { handlePopUpToggle, popUp, handlePopUpOpen } = usePopUp(["assumePrivileges"] as const);
const handlePerPageChange = (newPerPage: number) => {
@@ -1,4 +1,6 @@
import { createFileRoute, linkOptions } from "@tanstack/react-router";
import { zodValidator } from "@tanstack/zod-adapter";
import { z } from "zod";
import { ProjectAccessControlTabs } from "@app/types/project";
@@ -8,6 +10,11 @@ export const Route = createFileRoute(
"/_authenticate/_inject-org-details/_org-layout/projects/secret-management/$projectId/_secret-manager-layout/groups/$groupId"
)({
component: GroupDetailsByIDPage,
validateSearch: zodValidator(
z.object({
username: z.string().optional().catch(undefined)
})
),
beforeLoad: ({ context, params }) => {
return {
breadcrumbs: [