diff --git a/backend/router/proxy.go b/backend/router/proxy.go
index 73c6a16..1f5da1a 100644
--- a/backend/router/proxy.go
+++ b/backend/router/proxy.go
@@ -1,8 +1,11 @@
package router
import (
+ "bytes"
"fmt"
+ "io"
"khairul169/garage-webui/utils"
+ "log"
"net/http"
"net/http/httputil"
"net/url"
@@ -10,6 +13,16 @@ import (
)
func ProxyHandler(w http.ResponseWriter, r *http.Request) {
+ // Log CreateBucket requests
+ if strings.Contains(r.URL.Path, "CreateBucket") && r.Method == "POST" {
+ body, err := io.ReadAll(r.Body)
+ if err == nil {
+ log.Printf("CreateBucket request body: %s", string(body))
+ // Restore body for proxy
+ r.Body = io.NopCloser(bytes.NewReader(body))
+ }
+ }
+
target, err := url.Parse(utils.Garage.GetAdminEndpoint())
if err != nil {
utils.ResponseError(w, err)
diff --git a/src/pages/buckets/components/bucket-card.tsx b/src/pages/buckets/components/bucket-card.tsx
index 6f5eee4..4de649d 100644
--- a/src/pages/buckets/components/bucket-card.tsx
+++ b/src/pages/buckets/components/bucket-card.tsx
@@ -14,9 +14,16 @@ const BucketCard = ({ data }: Props) => {
-
- {data.aliases?.join(", ")}
-
+
+
+
+ {data.aliases?.join(", ")}
+
+ {data.websiteAccess && (
+
Website
+ )}
+
+
diff --git a/src/pages/buckets/hooks.ts b/src/pages/buckets/hooks.ts
index ac21c87..b1a8184 100644
--- a/src/pages/buckets/hooks.ts
+++ b/src/pages/buckets/hooks.ts
@@ -29,7 +29,7 @@ export const useCreateBucket = (
options?: UseMutationOptions
) => {
return useMutation({
- mutationFn: (body) => api.post("/v2/CreateBucket", { body }),
+ mutationFn: (body) => api.post("/v2/CreateBucket", body),
...options,
});
};
diff --git a/src/pages/buckets/manage/permissions/permissions-tab.tsx b/src/pages/buckets/manage/permissions/permissions-tab.tsx
index 2f10f28..2f6b9b1 100644
--- a/src/pages/buckets/manage/permissions/permissions-tab.tsx
+++ b/src/pages/buckets/manage/permissions/permissions-tab.tsx
@@ -1,20 +1,18 @@
import { useDenyKey } from "../hooks";
import { Card, Checkbox, Table } from "react-daisyui";
import Button from "@/components/ui/button";
-import { Trash, Shield, Lock, Settings } from "lucide-react";
+import { Trash, Shield } from "lucide-react";
import AllowKeyDialog from "./allow-key-dialog";
import { useMemo, useState } from "react";
import { toast } from "sonner";
import { handleError } from "@/lib/utils";
import { useBucketContext } from "../context";
import KeyPermissionsEditor from "@/components/s3-permissions/key-permissions-editor";
-import ObjectLockingManager from "@/components/s3-permissions/object-locking-manager";
const PermissionsTab = () => {
const { bucket, refetch } = useBucketContext();
const [selectedKey, setSelectedKey] = useState<{accessKeyId: string, name: string} | null>(null);
const [showKeyEditor, setShowKeyEditor] = useState(false);
- const [showObjectLocking, setShowObjectLocking] = useState(false);
const denyKey = useDenyKey(bucket.id, {
onSuccess: () => {
@@ -55,13 +53,6 @@ const PermissionsTab = () => {
Access Keys
-
key.accessKeyId)} />
@@ -140,15 +131,6 @@ const PermissionsTab = () => {
/>
)}
- {/* Object Locking Manager Modal */}
- {showObjectLocking && (
- setShowObjectLocking(false)}
- />
- )}
);
};