diff --git a/app/policies/project_policy.rb b/app/policies/project_policy.rb
index 4380b00d96236ba33204e8d01fe09c8c45244145..8a1148dece4e76f2b858f36812ff6c77fd3a2a15 100644
--- a/app/policies/project_policy.rb
+++ b/app/policies/project_policy.rb
@@ -1,4 +1,31 @@
 class ProjectPolicy < BasePolicy
+  def rules
+    team_access!(user)
+
+    owner = user.admin? ||
+            project.owner == user ||
+            (project.group && project.group.has_owner?(user))
+
+    owner_access! if owner
+
+    if project.public? || (project.internal? && !user.external?)
+      guest_access!
+      public_access!
+
+      # Allow to read builds for internal projects
+      can! :read_build if project.public_builds?
+
+      if project.request_access_enabled &&
+         !(owner || project.team.member?(user) || project_group_member?(user))
+        can! :request_access
+      end
+    end
+
+    archived_access! if project.archived?
+
+    disabled_features!
+  end
+
   def project
     @subject
   end
@@ -158,33 +185,6 @@ class ProjectPolicy < BasePolicy
     end
   end
 
-  def rules
-    team_access!(user)
-
-    owner = user.admin? ||
-            project.owner == user ||
-            (project.group && project.group.has_owner?(user))
-
-    owner_access! if owner
-
-    if project.public? || (project.internal? && !user.external?)
-      guest_access!
-      public_access!
-
-      # Allow to read builds for internal projects
-      can! :read_build if project.public_builds?
-
-      if project.request_access_enabled &&
-         !(owner || project.team.member?(user) || project_group_member?(user))
-        can! :request_access
-      end
-    end
-
-    archived_access! if project.archived?
-
-    disabled_features!
-  end
-
   def anonymous_rules
     return unless project.public?