mirror of
https://github.com/portainer/portainer.git
synced 2025-08-02 20:35:25 +02:00
feat(auth): add useIsEdgeAdmin hook [EE-6627] (#11057)
Some checks are pending
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
ci / build_images (map[arch:arm platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:s390x platform:linux version:]) (push) Waiting to run
ci / build_manifests (push) Blocked by required conditions
/ triage (push) Waiting to run
Lint / Run linters (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
Test / test-client (push) Waiting to run
Test / test-server (map[arch:amd64 platform:linux]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
Test / test-server (map[arch:arm64 platform:linux]) (push) Waiting to run
Some checks are pending
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
ci / build_images (map[arch:arm platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:s390x platform:linux version:]) (push) Waiting to run
ci / build_manifests (push) Blocked by required conditions
/ triage (push) Waiting to run
Lint / Run linters (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
Test / test-client (push) Waiting to run
Test / test-server (map[arch:amd64 platform:linux]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
Test / test-server (map[arch:arm64 platform:linux]) (push) Waiting to run
This commit is contained in:
parent
7a6c872948
commit
31f5b42962
48 changed files with 389 additions and 198 deletions
|
@ -1,6 +1,6 @@
|
|||
import { useMemo } from 'react';
|
||||
|
||||
import { useCurrentUser } from '@/react/hooks/useUser';
|
||||
import { useIsEdgeAdmin } from '@/react/hooks/useUser';
|
||||
|
||||
import { Link } from '@@/Link';
|
||||
import { TextTip } from '@@/Tip/TextTip';
|
||||
|
@ -22,11 +22,14 @@ export function StackName({
|
|||
inputClassName,
|
||||
textTip = "Enter or select a 'stack' name to group multiple deployments together, or else leave empty to ignore.",
|
||||
}: Props) {
|
||||
const { isAdmin } = useCurrentUser();
|
||||
const isAdminQuery = useIsEdgeAdmin();
|
||||
const stackResults = useMemo(
|
||||
() => stacks.filter((stack) => stack.includes(stackName ?? '')),
|
||||
[stacks, stackName]
|
||||
);
|
||||
|
||||
const { isAdmin } = isAdminQuery;
|
||||
|
||||
const tooltip = (
|
||||
<>
|
||||
You may specify a stack name to label resources that you want to group.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { Plus, RefreshCw } from 'lucide-react';
|
||||
import { FormikErrors } from 'formik';
|
||||
|
||||
import { useCurrentUser } from '@/react/hooks/useUser';
|
||||
import { useIsEdgeAdmin } from '@/react/hooks/useUser';
|
||||
import { useEnvironment } from '@/react/portainer/environments/queries';
|
||||
import { useEnvironmentId } from '@/react/hooks/useEnvironmentId';
|
||||
|
||||
|
@ -39,7 +39,8 @@ export function LoadBalancerServicesForm({
|
|||
namespace,
|
||||
isEditMode,
|
||||
}: Props) {
|
||||
const { isAdmin } = useCurrentUser();
|
||||
const isAdminQuery = useIsEdgeAdmin();
|
||||
|
||||
const environmentId = useEnvironmentId();
|
||||
const { data: loadBalancerEnabled, ...loadBalancerEnabledQuery } =
|
||||
useEnvironment(
|
||||
|
@ -47,6 +48,12 @@ export function LoadBalancerServicesForm({
|
|||
(environment) => environment?.Kubernetes.Configuration.UseLoadBalancer
|
||||
);
|
||||
|
||||
if (isAdminQuery.isLoading) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const { isAdmin } = isAdminQuery;
|
||||
|
||||
const loadBalancerServiceCount = services.filter(
|
||||
(service) => service.Type === 'LoadBalancer'
|
||||
).length;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { FormikErrors } from 'formik';
|
||||
|
||||
import { useCurrentUser } from '@/react/hooks/useUser';
|
||||
import { useIsEdgeAdmin } from '@/react/hooks/useUser';
|
||||
|
||||
import { SwitchField } from '@@/form-components/SwitchField';
|
||||
import { Link } from '@@/Link';
|
||||
|
@ -113,7 +113,13 @@ export function AutoScalingFormSection({
|
|||
}
|
||||
|
||||
function NoMetricsServerWarning() {
|
||||
const { isAdmin } = useCurrentUser();
|
||||
const isAdminQuery = useIsEdgeAdmin();
|
||||
if (isAdminQuery.isLoading) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const { isAdmin } = isAdminQuery;
|
||||
|
||||
return (
|
||||
<TextTip color="orange">
|
||||
{isAdmin && (
|
||||
|
|
|
@ -12,7 +12,6 @@ export function ConfigureView() {
|
|||
useUnauthorizedRedirect(
|
||||
{
|
||||
authorizations: 'K8sClusterW',
|
||||
forceEnvironmentId: environment?.Id,
|
||||
adminOnlyCE: false,
|
||||
},
|
||||
{
|
||||
|
|
|
@ -12,7 +12,6 @@ export function CreateNamespaceView() {
|
|||
useUnauthorizedRedirect(
|
||||
{
|
||||
authorizations: 'K8sResourcePoolsW',
|
||||
forceEnvironmentId: environmentId,
|
||||
adminOnlyCE: !isBE,
|
||||
},
|
||||
{
|
||||
|
|
|
@ -19,13 +19,13 @@ export function RegistriesSelector({
|
|||
options = [],
|
||||
inputId,
|
||||
}: Props) {
|
||||
const { isAdmin } = useCurrentUser();
|
||||
const { isPureAdmin } = useCurrentUser();
|
||||
|
||||
return (
|
||||
<>
|
||||
{options.length === 0 && (
|
||||
<p className="text-muted text-xs mb-1 mt-2">
|
||||
{isAdmin ? (
|
||||
{isPureAdmin ? (
|
||||
<span>
|
||||
No registries available. Head over to the{' '}
|
||||
<Link to="portainer.registries" target="_blank">
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue