From da3193673c5f556c50353516a9035d41cf43f8d2 Mon Sep 17 00:00:00 2001 From: Yang Luo Date: Sun, 30 Jul 2023 23:43:10 +0800 Subject: [PATCH] Add empty provider check --- storage/storage.go | 16 ++++++++++++++++ web/src/FileTreePage.js | 2 +- web/src/HomePage.js | 2 +- web/src/StoreEditPage.js | 2 +- 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/storage/storage.go b/storage/storage.go index 9edd7dd..c593218 100644 --- a/storage/storage.go +++ b/storage/storage.go @@ -32,6 +32,10 @@ type Object struct { } func ListObjects(provider string, prefix string) ([]*Object, error) { + if provider == "" { + return nil, fmt.Errorf("storage provider is empty") + } + resources, err := casdoor.ListResources(provider, prefix) if err != nil { return nil, err @@ -50,6 +54,10 @@ func ListObjects(provider string, prefix string) ([]*Object, error) { } func GetObject(provider string, key string) (io.ReadCloser, error) { + if provider == "" { + return nil, fmt.Errorf("storage provider is empty") + } + res, err := casdoor.GetResource(provider, key) if err != nil { return nil, err @@ -64,6 +72,10 @@ func GetObject(provider string, key string) (io.ReadCloser, error) { } func PutObject(provider string, user string, parent string, key string, fileBuffer *bytes.Buffer) error { + if provider == "" { + return fmt.Errorf("storage provider is empty") + } + _, _, err := casdoorsdk.UploadResource(user, "Casibase", parent, fmt.Sprintf("Direct/%s/%s", provider, key), fileBuffer.Bytes()) if err != nil { return err @@ -72,6 +84,10 @@ func PutObject(provider string, user string, parent string, key string, fileBuff } func DeleteObject(provider string, key string) error { + if provider == "" { + return fmt.Errorf("storage provider is empty") + } + _, err := casdoorsdk.DeleteResource(fmt.Sprintf("Direct/%s/%s", provider, key)) if err != nil { return err diff --git a/web/src/FileTreePage.js b/web/src/FileTreePage.js index 96910bf..f690bf3 100644 --- a/web/src/FileTreePage.js +++ b/web/src/FileTreePage.js @@ -38,7 +38,7 @@ class FileTreePage extends React.Component { StoreBackend.getStore(this.state.owner, this.state.storeName) .then((res) => { if (res.status === "ok") { - if (res.data2 !== null && res.data?.includes("error")) { + if (typeof res.data2 === "string" && res.data2 !== "") { res.data.error = res.data2; } diff --git a/web/src/HomePage.js b/web/src/HomePage.js index 1d8d11d..e158270 100644 --- a/web/src/HomePage.js +++ b/web/src/HomePage.js @@ -35,7 +35,7 @@ class HomePage extends React.Component { StoreBackend.getStore("admin", "_casibase_default_store_") .then((res) => { if (res.status === "ok") { - if (res.data2 !== null && res.data2.includes("error")) { + if (typeof res.data2 === "string" && res.data2 !== "") { res.data.error = res.data2; } diff --git a/web/src/StoreEditPage.js b/web/src/StoreEditPage.js index 0002917..6da947d 100644 --- a/web/src/StoreEditPage.js +++ b/web/src/StoreEditPage.js @@ -38,7 +38,7 @@ class StoreEditPage extends React.Component { StoreBackend.getStore(this.state.owner, this.state.storeName) .then((res) => { if (res.status === "ok") { - if (res.data2 !== null && res.data2.includes("error")) { + if (typeof res.data2 === "string" && res.data2 !== "") { res.data.error = res.data2; }