import React, { FC, useState } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import { Input, Field, Form, Button, FieldSet, VerticalGroup } from '@grafana/ui'; import { TeamRolePicker } from 'app/core/components/RolePicker/TeamRolePicker'; import { updateTeamRoles } from 'app/core/components/RolePicker/api'; import { useRoleOptions } from 'app/core/components/RolePicker/hooks'; import { SharedPreferences } from 'app/core/components/SharedPreferences/SharedPreferences'; import { contextSrv } from 'app/core/services/context_srv'; import { AccessControlAction, Role, Team } from 'app/types'; import { updateTeam } from './state/actions'; const mapDispatchToProps = { updateTeam, }; const connector = connect(null, mapDispatchToProps); interface OwnProps { team: Team; } export type Props = ConnectedProps & OwnProps; export const TeamSettings: FC = ({ team, updateTeam }) => { const canWriteTeamSettings = contextSrv.hasPermissionInMetadata(AccessControlAction.ActionTeamsWrite, team); const currentOrgId = contextSrv.user.orgId; const [{ roleOptions }] = useRoleOptions(currentOrgId); const [pendingRoles, setPendingRoles] = useState([]); const canUpdateRoles = contextSrv.hasPermission(AccessControlAction.ActionUserRolesAdd) && contextSrv.hasPermission(AccessControlAction.ActionUserRolesRemove); return (
{ if (contextSrv.licensedAccessControlEnabled() && canUpdateRoles) { await updateTeamRoles(pendingRoles, team.id); } updateTeam(formTeam.name, formTeam.email || ''); }} disabled={!canWriteTeamSettings} > {({ register, errors }) => (
{contextSrv.licensedAccessControlEnabled() && ( )}
)}
); }; export default connector(TeamSettings);