Ver Fonte

资产private的acl调整

kely há 9 meses atrás
pai
commit
db2e1fab2c
1 ficheiros alterados com 20 adições e 4 exclusões
  1. 20 4
      app/Models/Asset.php

+ 20 - 4
app/Models/Asset.php

@@ -31,11 +31,27 @@ class Asset extends Model
 
     public function scopeAllowed(Builder $query): void
     {
-        $query->where(function (Builder $query) {
-            return $query->where('acl', AssetACL::PRIVATE->value)->where('owner', Auth::id());
-        })->orWhere(function (Builder $query) {
-            return $query->where('acl', AssetACL::CUSTOM->value)->where('whitelist', 'like', '%,' . Auth::id() . ',%');
+        $userId =  Auth::id();
+        $query->where(function (Builder $query) use ($userId){
+            return $query->whereIn('id', function ($query) use ($userId) {
+                $query->select('asset_id')
+                    ->from('project_asset')
+                    ->whereIn('project_id', function ($query) use ($userId) {
+                        $query->select('project_id')
+                            ->from('team_members')
+                            ->where('user_id', $userId);
+                    });
+            });
+        })->orWhere(function (Builder $query)use ($userId) {
+            return $query->where('acl', AssetACL::PRIVATE->value)->where('owner',$userId);
+        })->orWhere(function (Builder $query)use ($userId) {
+            return $query->where('acl', AssetACL::CUSTOM->value)->where('whitelist', 'like', '%,' .$userId . ',%');
         });
+//        $query->where(function (Builder $query) {
+//            return $query->where('acl', AssetACL::PRIVATE->value)->where('owner', Auth::id());
+//        })->orWhere(function (Builder $query) {
+//            return $query->where('acl', AssetACL::CUSTOM->value)->where('whitelist', 'like', '%,' . Auth::id() . ',%');
+//        });
     }
 
     public function children(){