Procházet zdrojové kódy

任务附件改名删除操作需要校验团队用户是否被限制

kely před 8 měsíci
rodič
revize
c3f33917c9

+ 9 - 3
app/Http/Controllers/API/FileController.php

@@ -39,10 +39,13 @@ class FileController extends Controller
 
     public function changeName(Request $request,string $id)
     {
+        $isAction = $request->input('is_action', null);
+        $result = ($isAction === '0') ? true : ($isAction === '1' ? false : false);
+
         $file = File::query()->findOrFail($id);
 
         $fileObjectType = FileObjectType::from($file->object_type);
-        $object = $fileObjectType->modelBuilderAllowed($file->object_id)->find($file->object_id);
+        $object = $fileObjectType->modelBuilderAllowed($file->object_id,$result)->find($file->object_id);
         if(! $object){
             return $this->badRequest(sprintf("File ID: %s, no permission to access", $file->id));
         }
@@ -55,11 +58,14 @@ class FileController extends Controller
         return $this->noContent();
     }
 
-    public function destroy(string $id){
+    public function destroy(Request $request,string $id){
+        $isAction = $request->input('is_action', null);
+        $result = ($isAction === '0') ? true : ($isAction === '1' ? false : false);
+
         $file = File::query()->findOrFail($id);
 
         $fileObjectType = FileObjectType::from($file->object_type);
-        $object = $fileObjectType->modelBuilderAllowed($file->object_id)->find($file->object_id);
+        $object = $fileObjectType->modelBuilderAllowed($file->object_id,$result)->find($file->object_id);
         if(! $object){
             return $this->badRequest(sprintf("File ID: %s, no permission to access", $file->id));
         }

+ 2 - 2
app/Models/Enums/FileObjectType.php

@@ -39,12 +39,12 @@ enum FileObjectType: string
         };
     }
 
-    public function modelBuilderAllowed(string $id = null): \Illuminate\Database\Eloquent\Builder
+    public function modelBuilderAllowed(string $id = null,bool $isAction=false): \Illuminate\Database\Eloquent\Builder
     {
         return match ($this) {
             self::ASSET => Asset::query(),
             self::PROJECT => Project::query()->allowed($id),
-            self::TASK => Task::query()->allowed($id),
+            self::TASK => Task::query()->allowed($id,$isAction),
             self::REQUIREMENT => Requirement::query(),
             self::ACTION => Action::query(),
             self::PLAN => Plan::query(),