feat: implement permission denial functionality and enhance permission saving state in AccessControl component

Signed-off-by: Noooste <83548733+Noooste@users.noreply.github.com>
This commit is contained in:
Noooste
2026-04-19 23:15:27 +02:00
parent a828020994
commit c951e5fa4b
5 changed files with 70 additions and 17 deletions
+7 -2
View File
@@ -132,6 +132,7 @@ export function AccessControl() {
const [permissionRead, setPermissionRead] = useState(false);
const [permissionWrite, setPermissionWrite] = useState(false);
const [permissionOwner, setPermissionOwner] = useState(false);
const [savingPermissions, setSavingPermissions] = useState(false);
// Key settings state (activation/expiration)
const [settingsDialogOpen, setSettingsDialogOpen] = useState(false);
@@ -384,6 +385,7 @@ export function AccessControl() {
return;
}
setSavingPermissions(true);
try {
// Call backend API to grant bucket permissions
await bucketsApi.grantPermission(selectedBucket, editingKey.accessKeyId, {
@@ -405,6 +407,8 @@ export function AccessControl() {
} catch (error) {
// Error toast is handled by API interceptor
console.error('Grant permission error:', error);
} finally {
setSavingPermissions(false);
}
};
@@ -1176,8 +1180,9 @@ export function AccessControl() {
<Button variant="secondary" onClick={() => setEditPermissionsDialogOpen(false)}>
Cancel
</Button>
<Button onClick={handleGrantBucketPermission} disabled={!selectedBucket}>
Save permissions
<Button onClick={handleGrantBucketPermission} disabled={!selectedBucket || savingPermissions}>
{savingPermissions && <Loader2 className="h-4 w-4 animate-spin" />}
{savingPermissions ? 'Saving...' : 'Save permissions'}
</Button>
</DialogFooter>
</DialogContent>