feat: new editor user permission profile (#4435)

Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
Co-authored-by: crazywoola <427733928@qq.com>
This commit is contained in:
Charles Zhou
2024-06-14 07:34:25 -05:00
committed by GitHub
parent cdb6c801c1
commit 8bcc5a36bb
49 changed files with 246 additions and 126 deletions

View File

@@ -28,6 +28,7 @@ const MembersPage = () => {
const RoleMap = {
owner: t('common.members.owner'),
admin: t('common.members.admin'),
editor: t('common.members.editor'),
normal: t('common.members.normal'),
}
const { locale } = useContext(I18n)

View File

@@ -37,6 +37,10 @@ const InviteModal = ({
name: 'normal',
description: t('common.members.normalTip'),
},
{
name: 'editor',
description: t('common.members.editorTip'),
},
{
name: 'admin',
description: t('common.members.adminTip'),
@@ -120,7 +124,7 @@ const InviteModal = ({
<div className='flex flex-row'>
<span
className={cn(
'text-indigo-600 w-8',
'text-indigo-600 mr-2',
'flex items-center',
)}
>
@@ -130,7 +134,7 @@ const InviteModal = ({
<span className={`${selected ? 'font-medium' : 'font-normal'} capitalize block truncate`}>
{t(`common.members.${role.name}`)}
</span>
<span className={`${selected ? 'font-medium' : 'font-normal'} capitalize block truncate`}>
<span className={`${selected ? 'font-medium' : 'font-normal'} capitalize block text-gray-500`}>
{role.description}
</span>
</div>

View File

@@ -36,6 +36,7 @@ const Operation = ({
const RoleMap = {
owner: t('common.members.owner'),
admin: t('common.members.admin'),
editor: t('common.members.editor'),
normal: t('common.members.normal'),
}
const { notify } = useContext(ToastContext)
@@ -98,7 +99,7 @@ const Operation = ({
>
<div className="px-1 py-1">
{
['admin', 'normal'].map(role => (
['admin', 'editor', 'normal'].map(role => (
<Menu.Item key={role}>
<div className={itemClassName} onClick={() => handleUpdateMemberRole(role)}>
{

View File

@@ -47,6 +47,7 @@ import {
} from '@/app/components/base/portal-to-follow-elem'
import { useToastContext } from '@/app/components/base/toast'
import ConfirmCommon from '@/app/components/base/confirm/common'
import { useAppContext } from '@/context/app-context'
type ModelModalProps = {
provider: ModelProvider
@@ -74,7 +75,8 @@ const ModelModal: FC<ModelModalProps> = ({
providerFormSchemaPredefined && provider.custom_configuration.status === CustomConfigurationStatusEnum.active,
currentCustomConfigurationModelFixedFields,
)
const isEditMode = !!formSchemasValue
const { isCurrentWorkspaceManager } = useAppContext()
const isEditMode = !!formSchemasValue && isCurrentWorkspaceManager
const { t } = useTranslation()
const { notify } = useToastContext()
const language = useLanguage()
@@ -344,6 +346,7 @@ const ModelModal: FC<ModelModalProps> = ({
|| filteredRequiredFormSchemas.some(item => value[item.variable] === undefined)
|| (draftConfig?.enabled && (draftConfig?.configs.filter(config => config.enabled).length ?? 0) < 2)
}
>
{t('common.operation.save')}
</Button>

View File

@@ -23,6 +23,7 @@ import Button from '@/app/components/base/button'
import { useProviderContext } from '@/context/provider-context'
import { updateDefaultModel } from '@/service/common'
import { useToastContext } from '@/app/components/base/toast'
import { useAppContext } from '@/context/app-context'
type SystemModelSelectorProps = {
textGenerationDefaultModel: DefaultModelResponse | undefined
@@ -40,6 +41,7 @@ const SystemModel: FC<SystemModelSelectorProps> = ({
}) => {
const { t } = useTranslation()
const { notify } = useToastContext()
const { isCurrentWorkspaceManager } = useAppContext()
const { textGenerationModelList } = useProviderContext()
const updateModelList = useUpdateModelList()
const { data: embeddingModelList } = useModelList(ModelTypeEnum.textEmbedding)
@@ -248,6 +250,7 @@ const SystemModel: FC<SystemModelSelectorProps> = ({
type='primary'
className='!h-8 !text-[13px]'
onClick={handleSave}
disabled={!isCurrentWorkspaceManager}
>
{t('common.operation.save')}
</Button>