From c6d340b8ac7d771314c41a82527d6442d6f25a16 Mon Sep 17 00:00:00 2001 From: aidencao Date: Tue, 14 Nov 2023 10:56:20 +0800 Subject: [PATCH] feat(dcellar-web-ui): fix readqutoa api auth expirated --- .../src/components/layout/Header/GlobalTasks.tsx | 14 +++++++++++--- apps/dcellar-web-ui/src/facade/object.ts | 2 +- .../object/components/CancelObjectOperation.tsx | 2 +- .../src/modules/object/components/ObjectList.tsx | 2 +- .../modules/object/components/ObjectNameColumn.tsx | 2 +- apps/dcellar-web-ui/src/pages/share/index.tsx | 2 +- apps/dcellar-web-ui/src/store/slices/bucket.ts | 2 +- 7 files changed, 17 insertions(+), 9 deletions(-) diff --git a/apps/dcellar-web-ui/src/components/layout/Header/GlobalTasks.tsx b/apps/dcellar-web-ui/src/components/layout/Header/GlobalTasks.tsx index 0bf955aa..987c072f 100644 --- a/apps/dcellar-web-ui/src/components/layout/Header/GlobalTasks.tsx +++ b/apps/dcellar-web-ui/src/components/layout/Header/GlobalTasks.tsx @@ -161,7 +161,9 @@ export const GlobalTasks = memo(function GlobalTasks() { .catch(async (e: Response | any) => { console.log('upload error', e); const { message } = await parseErrorXml(e); - const authExpired = message?.includes('invalid signature'); + const authExpired = + message?.includes('invalid signature') || + message?.includes('user public key is expired'); if (authExpired) { setOpenAuthModal(); setAuthModal(true); @@ -205,7 +207,7 @@ export const GlobalTasks = memo(function GlobalTasks() { privateKey: tmpAccount.privateKey, }).then(resolve, createTxFault); if (_createError) { - console.log('createError', _createError) + console.log('createError', _createError); return dispatch( setupUploadTaskErrorMsg({ account: loginAccount, @@ -250,7 +252,13 @@ export const GlobalTasks = memo(function GlobalTasks() { }), ); } - dispatch(updateUploadCreateHash({account: loginAccount, id: task.id, createHash: res.transactionHash})) + dispatch( + updateUploadCreateHash({ + account: loginAccount, + id: task.id, + createHash: res.transactionHash, + }), + ); }, [signTask]); // 3. upload diff --git a/apps/dcellar-web-ui/src/facade/object.ts b/apps/dcellar-web-ui/src/facade/object.ts index 46450c87..b711224e 100644 --- a/apps/dcellar-web-ui/src/facade/object.ts +++ b/apps/dcellar-web-ui/src/facade/object.ts @@ -110,7 +110,7 @@ export const getCanObjectAccess = async ( seedString, }; const [info, quota, error] = await getObjectInfoAndBucketQuota(params); - if (error === 'invalid signature') { + if (error === 'invalid signature' || error === 'user public key is expired') { return [false, E_OFF_CHAIN_AUTH]; } if (!info) return [false, E_NOT_FOUND]; diff --git a/apps/dcellar-web-ui/src/modules/object/components/CancelObjectOperation.tsx b/apps/dcellar-web-ui/src/modules/object/components/CancelObjectOperation.tsx index 59560a33..d1370502 100644 --- a/apps/dcellar-web-ui/src/modules/object/components/CancelObjectOperation.tsx +++ b/apps/dcellar-web-ui/src/modules/object/components/CancelObjectOperation.tsx @@ -50,7 +50,7 @@ export const renderFee = ( {key} - {key.toLowerCase() === 'gas fee' && ( + {key?.toLowerCase() === 'gas fee' && ( <> {' '} ( diff --git a/apps/dcellar-web-ui/src/modules/object/components/ObjectList.tsx b/apps/dcellar-web-ui/src/modules/object/components/ObjectList.tsx index 53e4c709..11943e60 100644 --- a/apps/dcellar-web-ui/src/modules/object/components/ObjectList.tsx +++ b/apps/dcellar-web-ui/src/modules/object/components/ObjectList.tsx @@ -204,7 +204,7 @@ export const ObjectList = memo(function ObjectList() { address: loginAccount, }; const [objectInfo, quotaData, error] = await getObjectInfoAndBucketQuota(gParams); - if (error === 'invalid signature') { + if (error === 'invalid signature' || error === 'user public key is expired') { return onError(E_OFF_CHAIN_AUTH); } if (!quotaData) { diff --git a/apps/dcellar-web-ui/src/modules/object/components/ObjectNameColumn.tsx b/apps/dcellar-web-ui/src/modules/object/components/ObjectNameColumn.tsx index 9b5a9d93..8d42514a 100644 --- a/apps/dcellar-web-ui/src/modules/object/components/ObjectNameColumn.tsx +++ b/apps/dcellar-web-ui/src/modules/object/components/ObjectNameColumn.tsx @@ -61,7 +61,7 @@ export const ObjectNameColumn = memo(function NameItem({ address: loginAccount, }; const [objectInfo, quotaData, error] = await getObjectInfoAndBucketQuota(gParams); - if (error === 'invalid signature') { + if (error === 'invalid signature' || error === 'user public key is expired') { return onError(E_OFF_CHAIN_AUTH); } if (objectInfo === null) { diff --git a/apps/dcellar-web-ui/src/pages/share/index.tsx b/apps/dcellar-web-ui/src/pages/share/index.tsx index 5bddb297..e794b62a 100644 --- a/apps/dcellar-web-ui/src/pages/share/index.tsx +++ b/apps/dcellar-web-ui/src/pages/share/index.tsx @@ -96,7 +96,7 @@ const SharePage: NextPage = (props) => { } const [objectInfo, quotaData, error] = await getObjectInfoAndBucketQuota(params); - if (error === 'invalid signature') { + if (error === 'invalid signature' || error === 'user public key is expired') { logout(true); } setObjectInfo(objectInfo); diff --git a/apps/dcellar-web-ui/src/store/slices/bucket.ts b/apps/dcellar-web-ui/src/store/slices/bucket.ts index 48716cca..d69d2a7f 100644 --- a/apps/dcellar-web-ui/src/store/slices/bucket.ts +++ b/apps/dcellar-web-ui/src/store/slices/bucket.ts @@ -190,7 +190,7 @@ export const setupBucketQuota = }); dispatch(setQuotaLoading(false)); if (quota === null) { - if (error === 'invalid signature') { + if (['invalid signature', 'user public key is expired'].includes(error)) { dispatch(setAuthModalOpen([true, { action: 'quota', params: { bucketName } }])); } else { console.error({ description: error || 'Get bucket read quota error' });