diff options
author | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2019-04-15 10:05:14 +0200 |
---|---|---|
committer | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2019-04-15 10:18:15 +0200 |
commit | c0cfa08a3f6d538a684135e2711442a18bd7ddf0 (patch) | |
tree | 26ef1d9866327847f9056fa91cf81816a7e128d6 /controller-api | |
parent | c5c5015d4c4aeb1615f86a1b1aa3744bd3ff0722 (diff) |
Make Roles static
Diffstat (limited to 'controller-api')
2 files changed, 18 insertions, 31 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/user/Roles.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/user/Roles.java index 5f63ad1f185..0eff7de3f9f 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/user/Roles.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/user/Roles.java @@ -16,18 +16,17 @@ import java.util.List; */ public class Roles { - /** Creates a new UserRoles which can be used for serialisation and listing of bound user roles. */ - public Roles() { } + private Roles() { } /** Returns the list of {@link TenantRole}s a {@link UserId} may be a member of. */ - public List<TenantRole> tenantRoles(TenantName tenant) { + public static List<TenantRole> tenantRoles(TenantName tenant) { return List.of(Role.tenantOwner(tenant), Role.tenantAdmin(tenant), Role.tenantOperator(tenant)); } /** Returns the list of {@link ApplicationRole}s a {@link UserId} may be a member of. */ - public List<ApplicationRole> applicationRoles(TenantName tenant, ApplicationName application) { + public static List<ApplicationRole> applicationRoles(TenantName tenant, ApplicationName application) { return List.of(Role.applicationAdmin(tenant, application), Role.applicationOperator(tenant, application), Role.applicationDeveloper(tenant, application), @@ -35,23 +34,16 @@ public class Roles { } /** Returns the {@link Role} the given value represents. */ - public Role toRole(String value) { + public static Role toRole(String value) { String[] parts = value.split("\\."); - if (parts.length == 1) return toOperatorRole(parts[0]); + if (parts.length == 1 && parts[0].equals("hostedOperator")) return Role.hostedOperator(); if (parts.length == 2) return toRole(TenantName.from(parts[0]), parts[1]); if (parts.length == 3) return toRole(TenantName.from(parts[0]), ApplicationName.from(parts[1]), parts[2]); throw new IllegalArgumentException("Malformed or illegal role value '" + value + "'."); } - public Role toOperatorRole(String roleName) { - switch (roleName) { - case "hostedOperator": return Role.hostedOperator(); - default: throw new IllegalArgumentException("Malformed or illegal role name '" + roleName + "'."); - } - } - /** Returns the {@link Role} the given tenant, application and role names correspond to. */ - public Role toRole(TenantName tenant, String roleName) { + public static Role toRole(TenantName tenant, String roleName) { switch (roleName) { case "tenantOwner": return Role.tenantOwner(tenant); case "tenantAdmin": return Role.tenantAdmin(tenant); @@ -61,7 +53,7 @@ public class Roles { } /** Returns the {@link Role} the given tenant and role names correspond to. */ - public Role toRole(TenantName tenant, ApplicationName application, String roleName) { + public static Role toRole(TenantName tenant, ApplicationName application, String roleName) { switch (roleName) { case "applicationAdmin": return Role.applicationAdmin(tenant, application); case "applicationOperator": return Role.applicationOperator(tenant, application); diff --git a/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/integration/user/RolesTest.java b/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/integration/user/RolesTest.java index d43793462ad..4c7fe57a6d8 100644 --- a/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/integration/user/RolesTest.java +++ b/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/integration/user/RolesTest.java @@ -14,22 +14,22 @@ import static org.junit.Assert.assertEquals; */ public class RolesTest { - private static final Roles roles = new Roles(); - @Test public void testSerialization() { TenantName tenant = TenantName.from("my-tenant"); - for (TenantRole role : roles.tenantRoles(tenant)) - assertEquals(role, roles.toRole(Roles.valueOf(role))); + for (TenantRole role : Roles.tenantRoles(tenant)) + assertEquals(role, Roles.toRole(Roles.valueOf(role))); ApplicationName application = ApplicationName.from("my-application"); - for (ApplicationRole role : roles.applicationRoles(tenant, application)) - assertEquals(role, roles.toRole(Roles.valueOf(role))); + for (ApplicationRole role : Roles.applicationRoles(tenant, application)) + assertEquals(role, Roles.toRole(Roles.valueOf(role))); + assertEquals(Role.hostedOperator(), + Roles.toRole("hostedOperator")); assertEquals(Role.tenantOperator(tenant), - roles.toRole("my-tenant.tenantOperator")); + Roles.toRole("my-tenant.tenantOperator")); assertEquals(Role.applicationReader(tenant, application), - roles.toRole("my-tenant.my-application.applicationReader")); + Roles.toRole("my-tenant.my-application.applicationReader")); } @Test(expected = IllegalArgumentException.class) @@ -49,22 +49,17 @@ public class RolesTest { @Test(expected = IllegalArgumentException.class) public void illegalRoleValue() { - roles.toRole("my-tenant.awesomePerson"); + Roles.toRole("my-tenant.awesomePerson"); } @Test(expected = IllegalArgumentException.class) public void illegalCombination() { - roles.toRole("my-tenant.my-application.tenantOwner"); + Roles.toRole("my-tenant.my-application.tenantOwner"); } @Test(expected = IllegalArgumentException.class) public void illegalValue() { - roles.toRole("everyone"); - } - - @Test - public void allowHostedOperator() { - assertEquals(Role.hostedOperator(), roles.toRole("hostedOperator")); + Roles.toRole("everyone"); } } |