From 9b6a4a9982d5d674834afa43107d79c659575269 Mon Sep 17 00:00:00 2001
From: acite <1498045907@qq.com>
Date: Sat, 13 Sep 2025 14:31:59 +0800
Subject: [PATCH] [fix] Bulk query permission
---
.idea/.idea.Abyss/.idea/workspace.xml | 9 +-
.../Controllers/Media/ImageController.cs | 12 +-
.../Controllers/Media/VideoController.cs | 8 +-
Abyss/Components/Services/ResourceService.cs | 127 +++++++++++++++++-
Abyss/Properties/launchSettings.json | 3 +-
5 files changed, 139 insertions(+), 20 deletions(-)
diff --git a/.idea/.idea.Abyss/.idea/workspace.xml b/.idea/.idea.Abyss/.idea/workspace.xml
index 85382ea..331c5e9 100644
--- a/.idea/.idea.Abyss/.idea/workspace.xml
+++ b/.idea/.idea.Abyss/.idea/workspace.xml
@@ -13,8 +13,8 @@
-
-
+
+
@@ -99,7 +99,7 @@
"vue.rearranger.settings.migration": "true"
}
}
-
+
@@ -206,7 +206,8 @@
-
+
+
diff --git a/Abyss/Components/Controllers/Media/ImageController.cs b/Abyss/Components/Controllers/Media/ImageController.cs
index 633a03b..6c3a2d2 100644
--- a/Abyss/Components/Controllers/Media/ImageController.cs
+++ b/Abyss/Components/Controllers/Media/ImageController.cs
@@ -54,19 +54,17 @@ public class ImageController(ILogger logger, ResourceService rs
List result = new List();
var db = id.Select(x => Helpers.SafePathCombine(ImageFolder, [x, "summary.json"])).ToArray();
- if(db.Any(x => x == null))
- return StatusCode(403, new { message = "403 Denied" });
+ if (db.Any(x => x == null))
+ return BadRequest();
- var rb = db.Select(x => rs.Get(x!, token, Ip)).ToArray();
- bool[] results = await Task.WhenAll(rb);
-
- if(results.Any(x => !x))
+ if(!await rs.GetAll(db!, token, Ip))
return StatusCode(403, new { message = "403 Denied" });
var rc = db.Select(x => System.IO.File.ReadAllTextAsync(x!)).ToArray();
string[] rcs = await Task.WhenAll(rc);
+ var rjs = rcs.Select(JsonConvert.DeserializeObject).Select(x => x!).ToArray();
- return Ok(rcs);
+ return Ok(JsonConvert.SerializeObject(rjs));
}
[HttpPost("{id}/bookmark")]
diff --git a/Abyss/Components/Controllers/Media/VideoController.cs b/Abyss/Components/Controllers/Media/VideoController.cs
index c9e4b9c..f90018e 100644
--- a/Abyss/Components/Controllers/Media/VideoController.cs
+++ b/Abyss/Components/Controllers/Media/VideoController.cs
@@ -84,16 +84,14 @@ public class VideoController(ILogger logger, ResourceService rs
if(db.Any(x => x == null))
return BadRequest();
- var rb = db.Select(x => rs.Get(x!, token, Ip)).ToArray();
- bool[] results = await Task.WhenAll(rb);
-
- if(results.Any(x => !x))
+ if(!await rs.GetAll(db!, token, Ip))
return StatusCode(403, new { message = "403 Denied" });
var rc = db.Select(x => System.IO.File.ReadAllTextAsync(x!)).ToArray();
string[] rcs = await Task.WhenAll(rc);
+ var rjs = rcs.Select(JsonConvert.DeserializeObject