]> git.localhorst.tv Git - alttp.git/blobdiff - app/Policies/TournamentPolicy.php
respond to whispers
[alttp.git] / app / Policies / TournamentPolicy.php
index 2cc6b6ed2932dd3c1eb60d4424cfe4b322a563d0..f58eee76dc12be424ddf5c26f89d49a57a80d676 100644 (file)
@@ -41,7 +41,7 @@ class TournamentPolicy
         */
        public function create(User $user)
        {
-               return $user->role === 'admin';
+               return $user->isAdmin();
        }
 
        /**
@@ -53,7 +53,7 @@ class TournamentPolicy
         */
        public function update(User $user, Tournament $tournament)
        {
-               return $user->role === 'admin';
+               return $user->isAdmin() || $user->isTournamentAdmin($tournament);
        }
 
        /**
@@ -101,7 +101,19 @@ class TournamentPolicy
         */
        public function addRound(User $user, Tournament $tournament)
        {
-               return $user->role === 'admin' || (!$tournament->locked && $user->isParticipant($tournament));
+               return !$tournament->locked && ($user->isRunner($tournament) || $user->isTournamentAdmin($tournament));
+       }
+
+       /**
+        * Determine whether the user can apply to participate.
+        *
+        * @param  \App\Models\User  $user
+        * @param  \App\Models\Tournament  $tournament
+        * @return \Illuminate\Auth\Access\Response|bool
+        */
+       public function apply(User $user, Tournament $tournament)
+       {
+               return $tournament->accept_applications && !$user->isRunner($tournament) && !$user->isApplicant($tournament);
        }
 
        /**
@@ -113,7 +125,7 @@ class TournamentPolicy
         */
        public function viewProtocol(User $user, Tournament $tournament)
        {
-               return $user->role === 'admin';
+               return $user->isTournamentCrew($tournament);
        }
 
 }