]> git.localhorst.tv Git - alttp.git/blobdiff - app/Policies/RoundPolicy.php
simple result hiding on initial tournament request
[alttp.git] / app / Policies / RoundPolicy.php
index c1a1a4845beb157e0ddcc50547ced4d28b440531..f9f2d461bd76ff0b425f1a4f8b3dc6c688e45178 100644 (file)
@@ -92,6 +92,23 @@ class RoundPolicy
                return false;
        }
 
+       /**
+        * Determine whether the user can see the results for this round.
+        *
+        * @param  \App\Models\User  $user
+        * @param  \App\Models\Round  $round
+        * @return \Illuminate\Auth\Access\Response|bool
+        */
+       public function seeResults(?User $user, Round $round)
+       {
+               return
+                       $round->locked ||
+                       ($user && $user->hasFinished($round)) ||
+                       ($user && $user->isTournamentMonitor($round->tournament)) ||
+                       ($user && $user->isTournamentAdmin($round->tournament) && !$user->isRunner($round->tournament)) ||
+                       $round->isComplete();
+       }
+
        /**
         * Determine whether the user can set the seed for this round.
         *
@@ -101,7 +118,7 @@ class RoundPolicy
         */
        public function setSeed(User $user, Round $round)
        {
-               return $user->isAdmin() || (!$round->locked && ($user->isRunner($round->tournament) || $user->isTournamentAdmin($round->tournament)));
+               return !$round->locked && ($user->isAdmin() || $user->isRunner($round->tournament) || $user->isTournamentAdmin($round->tournament));
        }
 
        /**
@@ -113,7 +130,7 @@ class RoundPolicy
         */
        public function lock(User $user, Round $round)
        {
-               return $user->isAdmin() || $user->isTournamentAdmin($round->tournament);
+               return !$round->tournament->locked && ($user->isAdmin() || $user->isTournamentAdmin($round->tournament));
        }
 
        /**