Merge "Add logging for how block permission is evaluated"
diff --git a/java/com/google/gerrit/server/permissions/RefControl.java b/java/com/google/gerrit/server/permissions/RefControl.java
index 5dd6be0..8165cab 100644
--- a/java/com/google/gerrit/server/permissions/RefControl.java
+++ b/java/com/google/gerrit/server/permissions/RefControl.java
@@ -392,6 +392,9 @@
         }
         if (overrideFound) {
           // Found an exclusive override, nothing further to do in this project.
+          logger.atFine().log(
+              "Exclusive override found for permission %s and user %s",
+              permissionName, getUser().getLoggableName());
           continue projectLoop;
         }
 
@@ -403,6 +406,9 @@
           }
 
           if (isBlock(pr, withForce) && projectControl.match(pr, isChangeOwner)) {
+            logger.atFine().log(
+                "Block rule found for permission %s and user %s",
+                permissionName, getUser().getLoggableName());
             blocked = true;
             break;
           }
@@ -412,6 +418,10 @@
           // ALLOW in the same AccessSection (ie. in the same Permission) overrides the BLOCK.
           for (PermissionRule pr : p.getRules()) {
             if (isAllow(pr, withForce) && projectControl.match(pr, isChangeOwner)) {
+              logger.atFine().log(
+                  "Allow rule found in the same access section which overrides the BLOCK for"
+                      + " permission %s and user %s",
+                  permissionName, getUser().getLoggableName());
               blocked = false;
               break;
             }
@@ -419,6 +429,8 @@
         }
 
         if (blocked) {
+          logger.atFine().log(
+              "Permission %s is blocked for user %s", permissionName, getUser().getLoggableName());
           return true;
         }
       }