]> git.localhorst.tv Git - alttp.git/blobdiff - app/Policies/RoundPolicy.php
allow admins to lock/unlock rounds
[alttp.git] / app / Policies / RoundPolicy.php
index 045785d28047aed0bd5d9e177d767234e1471aea..230b2254d9c9469d29d388c56905aa9b0647464b 100644 (file)
@@ -91,4 +91,41 @@ class RoundPolicy
        {
                return false;
        }
+
+       /**
+        * Determine whether the user can set the seed for this round.
+        *
+        * @param  \App\Models\User  $user
+        * @param  \App\Models\Round  $round
+        * @return \Illuminate\Auth\Access\Response|bool
+        */
+       public function setSeed(User $user, Round $round)
+       {
+               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);
+       }
+
 }