]> _ Git - fluidbook-toolbox.git/commitdiff
wait #6098 @0.25
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 30 Jun 2023 09:55:49 +0000 (11:55 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 30 Jun 2023 09:55:49 +0000 (11:55 +0200)
app/Models/FluidbookPublication.php

index 995d35c194370f4fa3709c1aacc47e34780383af..557b989b8ba0f82aec6a69e390257378a44d69cc 100644 (file)
@@ -54,7 +54,9 @@ use Cubist\Util\Graphics\Image;
 use Cubist\Util\Json;
 use Cubist\Util\Str;
 use Datetime;
+use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Support\Facades\Artisan;
+use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Log;
 
@@ -109,6 +111,23 @@ class FluidbookPublication extends ToolboxSettingsModel
     use SCORMVersionTrait;
     use CheckHash;
 
+    public static function addOwnerClause(Builder $builder)
+    {
+        if (null === backpack_user() || null === Auth::id()) {
+            return;
+        }
+        if (Auth::user()->hasPermissionTo(static::$_permissionBase . ':admin')) {
+            return;
+        }
+        if (null === static::$_ownerAttribute) {
+            return;
+        }
+        $builder->whereIn(static::$_ownerAttribute, backpack_user()->getManagedUsers());
+        if (!Auth::user()->hasPermissionTo(static::$_permissionBase . ':write')) {
+            $builder->where('status', '>', 0);
+        }
+    }
+
     public function setFields()
     {
         parent::setFields();