瀏覽代碼

返回复制文件字段

moell 4 月之前
父節點
當前提交
f4bde33f40

+ 6 - 3
app/Http/Controllers/API/ApprovalController.php

@@ -43,10 +43,10 @@ class ApprovalController extends Controller
         $query = Approval::with(['createdBy']);
 
         match ($request->get("tab")) {
-            'wait_for_me' => $query->allowed(true),
+            'wait_for_me' => $query->allowed(),
             'pr' => $query->where("created_by", Auth::id()),
             'my_approval' => $query->where("action_users", 'like', '%,'.Auth::id().',%'),
-            default => $query->allowed(),
+            default => $query->allowed(true),
         };
 
         $approvals = $query->filter($request->all())->orderByDesc("created_at")->paginate($pageSize);
@@ -115,6 +115,9 @@ class ApprovalController extends Controller
                 'approval_logs' => ActionByApprovalLogResource::collection($actions),
                 'sub_objects' => $subObjects,
                 'file_copied' => $approval->file_copied,
+                'copy_file_permission' => $approvalObjectType == ApprovalObjectType::CONTAINER_FILE
+                    && $approval->last_action_user_id == Auth::id()
+                    && $approval->status == ObjectApprovalStatus::APPROVED->value,
             ]
         ]);
     }
@@ -122,7 +125,7 @@ class ApprovalController extends Controller
     public function action(ActionRequest $request, string $id, ActionService $actionService)
     {
         $approval = Approval::query()
-            ->allowed(true)
+            ->allowed()
             ->whereIn("status", [
                 ObjectApprovalStatus::DOING->value,
             ])

+ 5 - 0
app/Http/Resources/API/ApprovalCollection.php

@@ -3,11 +3,13 @@
 namespace App\Http\Resources\API;
 
 use App\Models\Enums\ApprovalObjectType;
+use App\Models\Enums\ObjectApprovalStatus;
 use App\Models\File;
 use App\Models\User;
 use Illuminate\Http\Request;
 use Illuminate\Http\Resources\Json\ResourceCollection;
 use Illuminate\Support\Collection;
+use Illuminate\Support\Facades\Auth;
 
 class ApprovalCollection extends ResourceCollection
 {
@@ -47,6 +49,9 @@ class ApprovalCollection extends ResourceCollection
                 ],
                 'sub_objects' => $this->getSubContainerFiles($containerFiles, $approval->sub_object_ids),
                 'file_copied' => $approval->file_copied,
+                'copy_file_permission' => $approval->object_type == ApprovalObjectType::CONTAINER_FILE->value
+                    && $approval->last_action_user_id == Auth::id()
+                    && $approval->status == ObjectApprovalStatus::APPROVED->value,
             ];
         }
 

+ 2 - 2
app/Models/Approval.php

@@ -62,7 +62,7 @@ class Approval extends Model
                     ApprovalMode::SEQUENTIAL_APPROVAL->value,
                 ]);
         })
-            ->when(! $isView, fn(Builder $query) => $query->orWhere("created_by", Auth::id()))
-            ->when(! $isView, fn(Builder $query) => $query->orWhere("action_users", 'like', '%,'.Auth::id().',%'));
+            ->when($isView, fn(Builder $query) => $query->orWhere("created_by", Auth::id()))
+            ->when($isView, fn(Builder $query) => $query->orWhere("action_users", 'like', '%,'.Auth::id().',%'));
     }
 }