From 2513f92fc3df95528a02fe6045913ea88dc98b32 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Tue, 29 Mar 2011 18:23:21 -0700 Subject: [PATCH] inherit from parent, not just the root --- .../ProjectMatrixAuthorizationStrategy.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/security/ProjectMatrixAuthorizationStrategy.java b/core/src/main/java/hudson/security/ProjectMatrixAuthorizationStrategy.java index d21768b557..bcdb59fe38 100644 --- a/core/src/main/java/hudson/security/ProjectMatrixAuthorizationStrategy.java +++ b/core/src/main/java/hudson/security/ProjectMatrixAuthorizationStrategy.java @@ -23,8 +23,11 @@ */ package hudson.security; +import hudson.model.AbstractItem; import hudson.model.Descriptor; import hudson.model.Hudson; +import hudson.model.Item; +import hudson.model.ItemGroup; import hudson.model.Job; import hudson.util.RobustReflectionConverter; import hudson.Extension; @@ -49,12 +52,25 @@ public class ProjectMatrixAuthorizationStrategy extends GlobalMatrixAuthorizatio public ACL getACL(Job project) { AuthorizationMatrixProperty amp = project.getProperty(AuthorizationMatrixProperty.class); if (amp != null) { - return amp.getACL().newInheritingACL(getRootACL()); + return amp.getACL().newInheritingACL(getACL(project.getParent())); } else { return getRootACL(); } } + public SidACL getACL(ItemGroup g) { + if (g instanceof Item) { + Item item = (Item) g; + return (SidACL)item.getACL(); + } + return getRootACL(); + } + + @Override + public SidACL getACL(AbstractItem item) { + return getACL(item.getParent()); + } + @Override public Set getGroups() { Set r = new HashSet(); -- GitLab