|
|
|
@ -5,10 +5,13 @@ import { useTranslation } from 'react-i18next'
|
|
|
|
import {
|
|
|
|
import {
|
|
|
|
RiArrowRightSLine,
|
|
|
|
RiArrowRightSLine,
|
|
|
|
RiBookOpenLine,
|
|
|
|
RiBookOpenLine,
|
|
|
|
|
|
|
|
RiBuildingLine,
|
|
|
|
RiEqualizer2Line,
|
|
|
|
RiEqualizer2Line,
|
|
|
|
RiExternalLinkLine,
|
|
|
|
RiExternalLinkLine,
|
|
|
|
|
|
|
|
RiGlobalLine,
|
|
|
|
RiLockLine,
|
|
|
|
RiLockLine,
|
|
|
|
RiPaintBrushLine,
|
|
|
|
RiPaintBrushLine,
|
|
|
|
|
|
|
|
RiVerifiedBadgeLine,
|
|
|
|
RiWindowLine,
|
|
|
|
RiWindowLine,
|
|
|
|
} from '@remixicon/react'
|
|
|
|
} from '@remixicon/react'
|
|
|
|
import SettingsModal from './settings'
|
|
|
|
import SettingsModal from './settings'
|
|
|
|
@ -248,12 +251,30 @@ function AppCard({
|
|
|
|
<div className='flex h-9 w-full cursor-pointer items-center gap-x-0.5 rounded-lg bg-components-input-bg-normal py-1 pl-2.5 pr-2'
|
|
|
|
<div className='flex h-9 w-full cursor-pointer items-center gap-x-0.5 rounded-lg bg-components-input-bg-normal py-1 pl-2.5 pr-2'
|
|
|
|
onClick={handleClickAccessControl}>
|
|
|
|
onClick={handleClickAccessControl}>
|
|
|
|
<div className='flex grow items-center gap-x-1.5 pr-1'>
|
|
|
|
<div className='flex grow items-center gap-x-1.5 pr-1'>
|
|
|
|
<RiLockLine className='h-4 w-4 shrink-0 text-text-secondary' />
|
|
|
|
{appDetail?.access_mode === AccessMode.ORGANIZATION
|
|
|
|
{appDetail?.access_mode === AccessMode.ORGANIZATION && <p className='system-sm-medium text-text-secondary'>{t('app.accessControlDialog.accessItems.organization')}</p>}
|
|
|
|
&& <>
|
|
|
|
{appDetail?.access_mode === AccessMode.SPECIFIC_GROUPS_MEMBERS && <p className='system-sm-medium text-text-secondary'>{t('app.accessControlDialog.accessItems.specific')}</p>}
|
|
|
|
<RiBuildingLine className='h-4 w-4 shrink-0 text-text-secondary' />
|
|
|
|
{appDetail?.access_mode === AccessMode.PUBLIC && <p className='system-sm-medium text-text-secondary'>{t('app.accessControlDialog.accessItems.anyone')}</p>}
|
|
|
|
<p className='system-sm-medium text-text-secondary'>{t('app.accessControlDialog.accessItems.organization')}</p>
|
|
|
|
{appDetail?.access_mode === AccessMode.EXTERNAL_MEMBERS && <p className='system-sm-medium text-text-secondary'>{t('app.accessControlDialog.accessItems.external')}</p>}
|
|
|
|
</>
|
|
|
|
</div>
|
|
|
|
}
|
|
|
|
|
|
|
|
{appDetail?.access_mode === AccessMode.SPECIFIC_GROUPS_MEMBERS
|
|
|
|
|
|
|
|
&& <>
|
|
|
|
|
|
|
|
<RiLockLine className='h-4 w-4 shrink-0 text-text-secondary' />
|
|
|
|
|
|
|
|
<p className='system-sm-medium text-text-secondary'>{t('app.accessControlDialog.accessItems.specific')}</p>
|
|
|
|
|
|
|
|
</>
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
{appDetail?.access_mode === AccessMode.PUBLIC
|
|
|
|
|
|
|
|
&& <>
|
|
|
|
|
|
|
|
<RiGlobalLine className='h-4 w-4 shrink-0 text-text-secondary' />
|
|
|
|
|
|
|
|
<p className='system-sm-medium text-text-secondary'>{t('app.accessControlDialog.accessItems.anyone')}</p>
|
|
|
|
|
|
|
|
</>
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
{appDetail?.access_mode === AccessMode.EXTERNAL_MEMBERS
|
|
|
|
|
|
|
|
&& <>
|
|
|
|
|
|
|
|
<RiVerifiedBadgeLine className='h-4 w-4 shrink-0 text-text-secondary' />
|
|
|
|
|
|
|
|
<p className='system-sm-medium text-text-secondary'>{t('app.accessControlDialog.accessItems.external')}</p>
|
|
|
|
|
|
|
|
</>
|
|
|
|
|
|
|
|
}</div>
|
|
|
|
{!isAppAccessSet && <p className='system-xs-regular shrink-0 text-text-tertiary'>{t('app.publishApp.notSet')}</p>}
|
|
|
|
{!isAppAccessSet && <p className='system-xs-regular shrink-0 text-text-tertiary'>{t('app.publishApp.notSet')}</p>}
|
|
|
|
<div className='flex h-4 w-4 shrink-0 items-center justify-center'>
|
|
|
|
<div className='flex h-4 w-4 shrink-0 items-center justify-center'>
|
|
|
|
<RiArrowRightSLine className='h-4 w-4 text-text-quaternary' />
|
|
|
|
<RiArrowRightSLine className='h-4 w-4 text-text-quaternary' />
|
|
|
|
|