fix: redirect users lacking create permissions to /workspaces (#16659)

Closes [this issue](https://github.com/coder/internal/issues/394).

At the moment this behavior can be a bit confusing, but after [this
issue is
closed](https://github.com/coder/internal/issues/385#issuecomment-2667061358)
it should be more obvious what's going on here.
This commit is contained in:
brettkolodny
2025-02-21 16:33:54 -05:00
committed by GitHub
parent a85a220816
commit ce49ce4f41

View File

@ -1,5 +1,7 @@
import { createOrganization } from "api/queries/organizations"; import { createOrganization } from "api/queries/organizations";
import { displaySuccess } from "components/GlobalSnackbar/utils"; import { displaySuccess } from "components/GlobalSnackbar/utils";
import { useAuthenticated } from "contexts/auth/RequireAuth";
import { RequirePermission } from "contexts/auth/RequirePermission";
import { useFeatureVisibility } from "modules/dashboard/useFeatureVisibility"; import { useFeatureVisibility } from "modules/dashboard/useFeatureVisibility";
import type { FC } from "react"; import type { FC } from "react";
import { useMutation, useQueryClient } from "react-query"; import { useMutation, useQueryClient } from "react-query";
@ -9,6 +11,7 @@ import { CreateOrganizationPageView } from "./CreateOrganizationPageView";
const CreateOrganizationPage: FC = () => { const CreateOrganizationPage: FC = () => {
const navigate = useNavigate(); const navigate = useNavigate();
const feats = useFeatureVisibility(); const feats = useFeatureVisibility();
const { permissions } = useAuthenticated();
const queryClient = useQueryClient(); const queryClient = useQueryClient();
const createOrganizationMutation = useMutation( const createOrganizationMutation = useMutation(
@ -19,15 +22,17 @@ const CreateOrganizationPage: FC = () => {
return ( return (
<main className="py-7"> <main className="py-7">
<CreateOrganizationPageView <RequirePermission isFeatureVisible={permissions.createOrganization}>
error={error} <CreateOrganizationPageView
isEntitled={feats.multiple_organizations} error={error}
onSubmit={async (values) => { isEntitled={feats.multiple_organizations}
await createOrganizationMutation.mutateAsync(values); onSubmit={async (values) => {
displaySuccess("Organization created."); await createOrganizationMutation.mutateAsync(values);
navigate(`/organizations/${values.name}`); displaySuccess("Organization created.");
}} navigate(`/organizations/${values.name}`);
/> }}
/>
</RequirePermission>
</main> </main>
); );
}; };