Fix blocking of Owner access right

Blocking the Owner access right on a parent project had no effect.

Change-Id: Iba00e29fcf434da8a9263353e80b47d82caa8503
Signed-off-by: Edwin Kempin <ekempin@google.com>
This commit is contained in:
Edwin Kempin
2016-09-07 16:43:56 +02:00
parent 715a565bd7
commit 14922f6db2
2 changed files with 11 additions and 2 deletions

View File

@@ -307,8 +307,9 @@ public class ProjectControl {
/** Is this user a project owner? Ownership does not imply {@link #isVisible()} */
public boolean isOwner() {
return isDeclaredOwner()
|| user.getCapabilities().canAdministrateServer();
return (isDeclaredOwner()
&& !controlForRef("refs/*").isBlocked(Permission.OWNER))
|| user.getCapabilities().canAdministrateServer();
}
private boolean isDeclaredOwner() {

View File

@@ -861,6 +861,14 @@ public class RefControlTest {
assertCannotVote(2, range);
}
@Test
public void testBlockOwner() {
block(parent, OWNER, ANONYMOUS_USERS, "refs/*");
allow(local, OWNER, DEVS, "refs/*");
assertThat(user(local, DEVS).isOwner()).isFalse();
}
@Test
public void testValidateRefPatternsOK() throws Exception {
RefPattern.validate("refs/*");