|
@@ -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(){
|