diff --git a/changes/issue-3157-observers-cannot-see-create-new-query b/changes/issue-3157-observers-cannot-see-create-new-query new file mode 100644 index 0000000000..fb5812a2f0 --- /dev/null +++ b/changes/issue-3157-observers-cannot-see-create-new-query @@ -0,0 +1 @@ +* No queries UI hides the Create new query button from global and team observers \ No newline at end of file diff --git a/cypress/integration/all/app/activateuser.spec.ts b/cypress/integration/all/app/activateuser.spec.ts index ed70073cf5..0484ce9888 100644 --- a/cypress/integration/all/app/activateuser.spec.ts +++ b/cypress/integration/all/app/activateuser.spec.ts @@ -63,6 +63,7 @@ describe("User invite and activation", () => { cy.login(); cy.visit("/settings/organization"); + cy.wait(1000); // eslint-disable-line cypress/no-unnecessary-waiting cy.findByRole("tab", { name: /^users$/i }).click(); diff --git a/frontend/pages/queries/ManageQueriesPage/ManageQueriesPage.tsx b/frontend/pages/queries/ManageQueriesPage/ManageQueriesPage.tsx index 1ba042f50b..22e2c3d759 100644 --- a/frontend/pages/queries/ManageQueriesPage/ManageQueriesPage.tsx +++ b/frontend/pages/queries/ManageQueriesPage/ManageQueriesPage.tsx @@ -240,6 +240,7 @@ const ManageQueriesPage = (): JSX.Element => { searchable={!!queriesList} customControl={renderPlatformDropdown} selectedDropdownFilter={selectedDropdownFilter} + isOnlyObserver={isOnlyObserver} /> )} diff --git a/frontend/pages/queries/ManageQueriesPage/components/QueriesListWrapper/QueriesListWrapper.tsx b/frontend/pages/queries/ManageQueriesPage/components/QueriesListWrapper/QueriesListWrapper.tsx index bbcdce8846..555e7604a0 100644 --- a/frontend/pages/queries/ManageQueriesPage/components/QueriesListWrapper/QueriesListWrapper.tsx +++ b/frontend/pages/queries/ManageQueriesPage/components/QueriesListWrapper/QueriesListWrapper.tsx @@ -23,6 +23,7 @@ interface IQueriesListWrapperProps { searchable: boolean; customControl?: () => JSX.Element; selectedDropdownFilter: string; + isOnlyObserver?: boolean; } const QueriesListWrapper = ({ @@ -33,6 +34,7 @@ const QueriesListWrapper = ({ searchable, customControl, selectedDropdownFilter, + isOnlyObserver, }: IQueriesListWrapperProps): JSX.Element | null => { const { currentUser } = useContext(AppContext); const [searchString, setSearchString] = useState(""); @@ -52,20 +54,24 @@ const QueriesListWrapper = ({

A query is a specific question you can ask about your devices.

-

- Create a new query, or go to GitHub to{" "} - - import Fleet’s standard query library - - . -

- + {!isOnlyObserver && ( + <> +

+ Create a new query, or go to GitHub to{" "} + + import Fleet’s standard query library + + . +

+ + + )} ) : ( <>