From 6ae49b5d423984035f72fb3773fe7a527c106b97 Mon Sep 17 00:00:00 2001 From: guiwankai Date: Wed, 9 Jan 2019 16:48:47 +0800 Subject: [PATCH 1/2] change the logic of the 'by-owner' request --- .../apollo/portal/controller/AppController.java | 2 +- .../ctrip/framework/apollo/portal/util/RoleUtils.java | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/controller/AppController.java b/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/controller/AppController.java index 1b5fbdac873..2c5420a44a4 100644 --- a/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/controller/AppController.java +++ b/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/controller/AppController.java @@ -80,7 +80,7 @@ public List findAppsByOwner(@RequestParam("owner") String owner, Pageable p List userRoles = rolePermissionService.findUserRoles(owner); for (Role role : userRoles) { - String appId = RoleUtils.extractAppIdFromMasterRoleName(role.getRoleName()); + String appId = RoleUtils.extractAppIdFromRoleName(role.getRoleName()); if (appId != null) { appIds.add(appId); diff --git a/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/util/RoleUtils.java b/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/util/RoleUtils.java index ccc00235d27..dbeec4ada4b 100644 --- a/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/util/RoleUtils.java +++ b/apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/util/RoleUtils.java @@ -27,6 +27,17 @@ public static String extractAppIdFromMasterRoleName(String masterRoleName) { return null; } + public static String extractAppIdFromRoleName(String roleName) { + Iterator parts = STRING_SPLITTER.split(roleName).iterator(); + if (parts.hasNext()) { + String roleType = parts.next(); + if (RoleType.isValidRoleType(roleType) && parts.hasNext()) { + return parts.next(); + } + } + return null; + } + public static String buildAppRoleName(String appId, String roleType) { return STRING_JOINER.join(roleType, appId); } From 81466a2df1006a84f884f1c571e26fb804013397 Mon Sep 17 00:00:00 2001 From: guiwankai Date: Wed, 9 Jan 2019 16:58:21 +0800 Subject: [PATCH 2/2] test extractAppIdFromRoleName --- .../ctrip/framework/apollo/portal/util/RoleUtilsTest.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apollo-portal/src/test/java/com/ctrip/framework/apollo/portal/util/RoleUtilsTest.java b/apollo-portal/src/test/java/com/ctrip/framework/apollo/portal/util/RoleUtilsTest.java index a520bbc9972..7a421756ea1 100644 --- a/apollo-portal/src/test/java/com/ctrip/framework/apollo/portal/util/RoleUtilsTest.java +++ b/apollo-portal/src/test/java/com/ctrip/framework/apollo/portal/util/RoleUtilsTest.java @@ -14,4 +14,11 @@ public void testExtractAppIdFromMasterRoleName() throws Exception { assertNull(RoleUtils.extractAppIdFromMasterRoleName("ReleaseNamespace+app1+application")); } + + @Test + public void testExtractAppIdFromRoleName() throws Exception { + assertEquals("someApp", RoleUtils.extractAppIdFromRoleName("Master+someApp")); + assertEquals("someApp", RoleUtils.extractAppIdFromRoleName("ModifyNamespace+someApp+xx")); + assertEquals("app1", RoleUtils.extractAppIdFromRoleName("ReleaseNamespace+app1+application")); + } }