Commit eb7dfa49 authored by Marek Veselý's avatar Marek Veselý
Browse files

Merge branch...

Merge branch '331-add-info-that-tokens-can-be-created-only-by-admins-and-add-potentially-missing-permission-for' into 'main'

Add error callout if token creation opened not by admin

Closes inject-issues#331

See merge request inject/frontend!896
parents 8dfb6cea 1f7f7459
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
import {
  Button,
  Callout,
  Checkbox,
  Dialog,
  DialogBody,
@@ -9,7 +10,7 @@ import {
} from '@blueprintjs/core'
import { css, cx } from '@emotion/css'
import type { CustomOperationContext, VariablesOf } from '@inject/graphql'
import { CreateBot, useTypedMutation } from '@inject/graphql'
import { CreateBot, useAuthIdentity, useTypedMutation } from '@inject/graphql'
import { useTranslationFrontend } from '@inject/locale'
import { dialog, dialogBody, notifyNoncommmit } from '@inject/shared'
import type { FormEvent } from 'react'
@@ -57,6 +58,7 @@ const allEndpointPermissions: VariablesOf<
export const ApiToken = () => {
  const { t } = useTranslationFrontend()
  const permissionLabel = usePermissionTranslation()
  const { whoAmI } = useAuthIdentity()
  const [open, setOpen] = useState(false)
  const [tokenName, setTokenName] = useState('')
  const [tokenValue, setTokenValue] = useState('')
@@ -131,6 +133,11 @@ export const ApiToken = () => {
        icon='key'
      >
        <DialogBody className={cx(dialogBody, body)}>
          {whoAmI?.group !== 'ADMIN' && (
            <Callout intent='danger'>
              {t('exercisePanel.tokens.error.contactAdmin')}
            </Callout>
          )}
          <div className={wrapper}>
            <form onSubmit={onSubmit}>
              <FormGroup
@@ -169,7 +176,12 @@ export const ApiToken = () => {
                  ))}
                </div>
              </FormGroup>
              <Button intent='primary' type='submit' loading={fetching}>
              <Button
                disabled={whoAmI?.group !== 'ADMIN'}
                intent='primary'
                type='submit'
                loading={fetching}
              >
                {t('exercisePanel.tokens.createToken')}
              </Button>
            </form>
+1 −0
Original line number Diff line number Diff line
@@ -783,6 +783,7 @@
      "error": {
        "tokenNameRequired": "Název tokenu je povinný",
        "atLeastOneEndpoint": "Vyberte alespoň jeden povolený endpoint",
        "contactAdmin": "Kontaktujte správce, aby vytvořil API tokeny",
        "generic": "Došlo k chybě při vytváření tokenu."
      },
      "copied": "Token byl zkopírován do schránky"
+1 −0
Original line number Diff line number Diff line
@@ -783,6 +783,7 @@
      "error": {
        "tokenNameRequired": "Token name is required",
        "atLeastOneEndpoint": "Select at least one endpoint",
        "contactAdmin": "Contact admin to create API tokens",
        "generic": "Error occurred."
      },
      "copied": "Token copied to clipboard"