]> _ Git - fluidbook-toolbox.git/commitdiff
wip #3753 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 27 Nov 2020 16:49:22 +0000 (17:49 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 27 Nov 2020 16:49:22 +0000 (17:49 +0100)
app/Models/Quiz.php
app/Policies/FluidbookQuotePolicy.php [new file with mode: 0644]
app/Policies/QuizPolicy.php
resources/views/vendor/backpack/base/inc/sidebar_content.blade.php

index 411d7adbd5c5766121ba804b0874aa8389423611..e3b5f35b5b2ba7974487aeffe099cefd4f60fa2a 100644 (file)
@@ -6,7 +6,6 @@ namespace App\Models;
 use App\Http\Controllers\Admin\Base\QuizController;
 use Cubist\Backpack\app\Magic\Models\CubistMagicAbstractModel;
 use Cubist\Util\Files\Files;
-use Cubist\Util\Zip;
 use Spatie\MediaLibrary\MediaCollections\Models\Media;
 use Spatie\Image\Manipulations;
 use App\Fields\User;
diff --git a/app/Policies/FluidbookQuotePolicy.php b/app/Policies/FluidbookQuotePolicy.php
new file mode 100644 (file)
index 0000000..f11313d
--- /dev/null
@@ -0,0 +1,97 @@
+<?php
+
+namespace App\Policies;
+
+use App\Models\FluidbookQuote;
+use App\Models\User;
+use Illuminate\Auth\Access\HandlesAuthorization;
+
+class FluidbookQuotePolicy
+{
+    use HandlesAuthorization;
+
+    /**
+     * Determine whether the user can view any models.
+     *
+     * @param User $user
+     * @return mixed
+     */
+    public function viewAny(User $user)
+    {
+        return $user->hasPermissionTo('fluidbook:quote:admin');
+    }
+
+    /**
+     * Determine whether the user can view the model.
+     *
+     * @param User $user
+     * @param FluidbookQuote $fluidbookQuote
+     * @return mixed
+     */
+    public function view(User $user, FluidbookQuote $fluidbookQuote)
+    {
+        if ($this->viewAny($user)) {
+            return true;
+        }
+        return $user->getKey() == $fluidbookQuote->reseller;
+    }
+
+    /**
+     * Determine whether the user can create models.
+     *
+     * @param User $user
+     * @return mixed
+     */
+    public function create(User $user)
+    {
+        return false;
+    }
+
+    /**
+     * Determine whether the user can update the model.
+     *
+     * @param User $user
+     * @param FluidbookQuote $fluidbookQuote
+     * @return mixed
+     */
+    public function update(User $user, FluidbookQuote $fluidbookQuote)
+    {
+        return $this->view($user, $fluidbookQuote);
+    }
+
+    /**
+     * Determine whether the user can delete the model.
+     *
+     * @param User $user
+     * @param FluidbookQuote $fluidbookQuote
+     * @return mixed
+     */
+    public function delete(User $user, FluidbookQuote $fluidbookQuote)
+    {
+        return false;
+    }
+
+    /**
+     * Determine whether the user can restore the model.
+     *
+     * @param User $user
+     * @param FluidbookQuote $fluidbookQuote
+     * @return mixed
+     */
+    public function restore(User $user, FluidbookQuote $fluidbookQuote)
+    {
+        return false;
+    }
+
+    /**
+     * Determine whether the user can permanently delete the model.
+     *
+     * @param User $user
+     * @param FluidbookQuote $fluidbookQuote
+     * @return mixed
+     */
+    public function forceDelete(User $user, FluidbookQuote $fluidbookQuote)
+    {
+        return false;
+    }
+}
index e37b60982aeaf7b2b5bd48bc7b7cd7cb42c23d48..0903a2749537f92fc9d3ba49f74cf5747568ff08 100644 (file)
@@ -2,8 +2,8 @@
 
 namespace App\Policies;
 
-use App\Quiz;
-use App\User;
+use App\Models\Quiz;
+use App\Models\User;
 use Illuminate\Auth\Access\HandlesAuthorization;
 
 class QuizPolicy
@@ -13,7 +13,7 @@ class QuizPolicy
     /**
      * Determine whether the user can view any quizzes.
      *
-     * @param \App\User $user
+     * @param User $user
      * @return mixed
      */
     public function viewAny(User $user)
@@ -24,8 +24,8 @@ class QuizPolicy
     /**
      * Determine whether the user can view the quiz.
      *
-     * @param \App\User $user
-     * @param \App\Quiz $quiz
+     * @param User $user
+     * @param Quiz $quiz
      * @return mixed
      */
     public function view(User $user, Quiz $quiz)
@@ -39,7 +39,7 @@ class QuizPolicy
     /**
      * Determine whether the user can create quizzes.
      *
-     * @param \App\User $user
+     * @param User $user
      * @return mixed
      */
     public function create(User $user)
@@ -50,8 +50,8 @@ class QuizPolicy
     /**
      * Determine whether the user can update the quiz.
      *
-     * @param \App\User $user
-     * @param \App\Quiz $quiz
+     * @param User $user
+     * @param Quiz $quiz
      * @return mixed
      */
     public function update(User $user, Quiz $quiz)
@@ -62,8 +62,8 @@ class QuizPolicy
     /**
      * Determine whether the user can delete the quiz.
      *
-     * @param \App\User $user
-     * @param \App\Quiz $quiz
+     * @param User $user
+     * @param Quiz $quiz
      * @return mixed
      */
     public function delete(User $user, Quiz $quiz)
@@ -74,8 +74,8 @@ class QuizPolicy
     /**
      * Determine whether the user can restore the quiz.
      *
-     * @param \App\User $user
-     * @param \App\Quiz $quiz
+     * @param User $user
+     * @param Quiz $quiz
      * @return mixed
      */
     public function restore(User $user, Quiz $quiz)
@@ -86,8 +86,8 @@ class QuizPolicy
     /**
      * Determine whether the user can permanently delete the quiz.
      *
-     * @param \App\User $user
-     * @param \App\Quiz $quiz
+     * @param User $user
+     * @param Quiz $quiz
      * @return mixed
      */
     public function forceDelete(User $user, Quiz $quiz)
index 5df30c6fdbfbe7046c6bcb07d88638af457f8878..da9b5169150f9b72160f5d02801f944ea59c5a05 100644 (file)
     </li>
 @endcanany
 
-@can('fluidbook:admin')
+@canany(['fluidbook:admin','fluidbook:quote'])
     <li class='nav-item nav-dropdown open'><a class='nav-link nav-dropdown-toggle' href='#'><i
                 class="nav-icon la"><img src="/images/icons/icon-fluidbook.svg"/></i>Fluidbook</a>
         <ul class='nav-dropdown-items'>
-            <li class="nav-item"><a class="nav-link" href="{{ backpack_url('signature') }}"><i
-                        class="la la-signature nav-icon"></i> Signatures</a></li>
-            <li class="nav-item"><a class="nav-link" href="{{ backpack_url('fluidbook-quote') }}"><i
-                        class="la la-wpforms nav-icon"></i> Demandes de devis</a></li>
+            @can('fluidbook:admin')
+                <li class="nav-item"><a class="nav-link" href="{{ backpack_url('signature') }}"><i
+                            class="la la-signature nav-icon"></i> Signatures</a></li>
+            @endcan
+            @can('fluidbook:quote')
+                <li class="nav-item"><a class="nav-link" href="{{ backpack_url('fluidbook-quote') }}"><i
+                            class="la la-wpforms nav-icon"></i> Demandes de devis</a></li>
+            @endcan
         </ul>
     </li>
-@endcan
+@endcanany
 
 
 @can('toolbox:maintenance')