]> git.localhorst.tv Git - alttp.git/blobdiff - app/Policies/TournamentPolicy.php
lock tournaments
[alttp.git] / app / Policies / TournamentPolicy.php
index b79f8c17b11e2dac8cf359f4241f7fe75e22bc18..2cc6b6ed2932dd3c1eb60d4424cfe4b322a563d0 100644 (file)
@@ -16,7 +16,7 @@ class TournamentPolicy
         * @param  \App\Models\User  $user
         * @return \Illuminate\Auth\Access\Response|bool
         */
-       public function viewAny(User $user)
+       public function viewAny(?User $user)
        {
                return true;
        }
@@ -28,7 +28,7 @@ class TournamentPolicy
         * @param  \App\Models\Tournament  $tournament
         * @return \Illuminate\Auth\Access\Response|bool
         */
-       public function view(User $user, Tournament $tournament)
+       public function view(?User $user, Tournament $tournament)
        {
                return true;
        }
@@ -91,4 +91,29 @@ class TournamentPolicy
        {
                return false;
        }
+
+       /**
+        * Determine whether the user can add rounds the model.
+        *
+        * @param  \App\Models\User  $user
+        * @param  \App\Models\Tournament  $tournament
+        * @return \Illuminate\Auth\Access\Response|bool
+        */
+       public function addRound(User $user, Tournament $tournament)
+       {
+               return $user->role === 'admin' || (!$tournament->locked && $user->isParticipant($tournament));
+       }
+
+       /**
+        * Determine whether the user can view the tournament protocol.
+        *
+        * @param  \App\Models\User  $user
+        * @param  \App\Models\Tournament  $tournament
+        * @return \Illuminate\Auth\Access\Response|bool
+        */
+       public function viewProtocol(User $user, Tournament $tournament)
+       {
+               return $user->role === 'admin';
+       }
+
 }