mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-30 18:48:55 +00:00
Move app owner (#2280)
* feat: app owner change (#2271) * feat(app): changeOwner api * feat: changeOwner api * feat: ChangeOwnerModal * feat: update change owner api * chore: move change owner api into pro version feat(fe): change owner modal * feat: add change owner button and modal to InfoModal * change owner ux * feat: doc * perf: remove info change owner btn --------- Co-authored-by: Finley Ge <32237950+FinleyGe@users.noreply.github.com>
This commit is contained in:
@@ -7,7 +7,8 @@ import {
|
||||
Input,
|
||||
Textarea,
|
||||
ModalFooter,
|
||||
ModalBody
|
||||
ModalBody,
|
||||
useDisclosure
|
||||
} from '@chakra-ui/react';
|
||||
import { useForm } from 'react-hook-form';
|
||||
import { AppSchema } from '@fastgpt/global/core/app/type.d';
|
||||
@@ -15,7 +16,7 @@ import { useToast } from '@fastgpt/web/hooks/useToast';
|
||||
import { useSelectFile } from '@/web/common/file/hooks/useSelectFile';
|
||||
import { compressImgFileAndUpload } from '@/web/common/file/controller';
|
||||
import { getErrText } from '@fastgpt/global/common/error/utils';
|
||||
import { useRequest, useRequest2 } from '@fastgpt/web/hooks/useRequest';
|
||||
import { useRequest2 } from '@fastgpt/web/hooks/useRequest';
|
||||
import Avatar from '@fastgpt/web/components/common/Avatar';
|
||||
import MyModal from '@fastgpt/web/components/common/MyModal';
|
||||
import { useTranslation } from 'next-i18next';
|
||||
@@ -35,7 +36,6 @@ import {
|
||||
import DefaultPermissionList from '@/components/support/permission/DefaultPerList';
|
||||
import MyIcon from '@fastgpt/web/components/common/Icon';
|
||||
import { UpdateClbPermissionProps } from '@fastgpt/global/support/permission/collaborator';
|
||||
import { useConfirm } from '@fastgpt/web/hooks/useConfirm';
|
||||
import { resumeInheritPer } from '@/web/core/app/api';
|
||||
import { useI18n } from '@/web/context/I18n';
|
||||
import ResumeInherit from '@/components/support/permission/ResumeInheritText';
|
||||
@@ -61,6 +61,7 @@ const InfoModal = ({ onClose }: { onClose: () => void }) => {
|
||||
defaultValues: appDetail
|
||||
});
|
||||
const avatar = getValues('avatar');
|
||||
const name = getValues('name');
|
||||
|
||||
// submit config
|
||||
const { runAsync: saveSubmitSuccess, loading: btnLoading } = useRequest2(
|
||||
@@ -135,6 +136,7 @@ const InfoModal = ({ onClose }: { onClose: () => void }) => {
|
||||
appId: appDetail._id
|
||||
});
|
||||
};
|
||||
|
||||
const onDelCollaborator = async (tmbId: string) => {
|
||||
await deleteAppCollaborators({
|
||||
appId: appDetail._id,
|
||||
|
@@ -53,7 +53,7 @@ const Provider = () => {
|
||||
export async function getServerSideProps(context: any) {
|
||||
return {
|
||||
props: {
|
||||
...(await serviceSideProps(context, ['app', 'chat', 'file', 'publish', 'workflow']))
|
||||
...(await serviceSideProps(context, ['app', 'chat', 'user', 'file', 'publish', 'workflow']))
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@@ -1,7 +1,7 @@
|
||||
import React, { useMemo, useState } from 'react';
|
||||
import { Box, Grid, Flex, IconButton, HStack } from '@chakra-ui/react';
|
||||
import { useRouter } from 'next/router';
|
||||
import { delAppById, putAppById, resumeInheritPer } from '@/web/core/app/api';
|
||||
import { delAppById, putAppById, resumeInheritPer, changeOwner } from '@/web/core/app/api';
|
||||
import { useConfirm } from '@fastgpt/web/hooks/useConfirm';
|
||||
import MyIcon from '@fastgpt/web/components/common/Icon';
|
||||
import Avatar from '@fastgpt/web/components/common/Avatar';
|
||||
@@ -399,6 +399,12 @@ const ListItem = () => {
|
||||
)}
|
||||
{!!editPerApp && (
|
||||
<ConfigPerModal
|
||||
onChangeOwner={(tmbId: string) =>
|
||||
changeOwner({
|
||||
appId: editPerApp._id,
|
||||
ownerId: tmbId
|
||||
}).then(() => loadMyApps())
|
||||
}
|
||||
refetchResource={loadMyApps}
|
||||
hasParent={Boolean(parentId)}
|
||||
resumeInheritPermission={onResumeInheritPermission}
|
||||
|
@@ -326,7 +326,7 @@ export default ContextRender;
|
||||
export async function getServerSideProps(content: any) {
|
||||
return {
|
||||
props: {
|
||||
...(await serviceSideProps(content, ['app']))
|
||||
...(await serviceSideProps(content, ['app', 'user']))
|
||||
}
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user