]> git.localhorst.tv Git - alttp.git/blobdiff - app/Policies/RoundPolicy.php
allow admins to lock/unlock rounds
[alttp.git] / app / Policies / RoundPolicy.php
index 1e29803d24764f258b311c806c9456c98a064b57..230b2254d9c9469d29d388c56905aa9b0647464b 100644 (file)
@@ -101,6 +101,31 @@ class RoundPolicy
         */
        public function setSeed(User $user, Round $round)
        {
-               return $user->role === 'admin' || $user->isParticipant($round->tournament);
+               return $user->role === 'admin' || ($user->isParticipant($round->tournament) && !$round->locked);
        }
+
+       /**
+        * Determine whether the user can lock this round.
+        *
+        * @param  \App\Models\User  $user
+        * @param  \App\Models\Round  $round
+        * @return \Illuminate\Auth\Access\Response|bool
+        */
+       public function lock(User $user, Round $round)
+       {
+               return $user->role === 'admin' || $user->isTournamentAdmin($round->tournament);
+       }
+
+       /**
+        * Determine whether the user can unlock this round.
+        *
+        * @param  \App\Models\User  $user
+        * @param  \App\Models\Round  $round
+        * @return \Illuminate\Auth\Access\Response|bool
+        */
+       public function unlock(User $user, Round $round)
+       {
+               return $this->lock($user, $round);
+       }
+
 }