From 21bdb331b57985f24eb372897d00af1f08142a45 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Lievremont Date: Mon, 18 May 2015 11:39:32 +0200 Subject: [PATCH] SONAR-6467 Rename parameter for SCM accounts --- .../sonar/server/user/ws/CreateAction.java | 17 +++++------ .../sonar/server/user/ws/UpdateAction.java | 8 ++++-- .../server/user/ws/CreateActionTest.java | 28 +++++++++++++++---- .../server/user/ws/UpdateActionTest.java | 13 ++++++++- .../org/sonar/server/user/ws/UsersWsTest.java | 2 +- 5 files changed, 47 insertions(+), 21 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/user/ws/CreateAction.java b/server/sonar-server/src/main/java/org/sonar/server/user/ws/CreateAction.java index bd47e88ad2a..be89ca92fbc 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/user/ws/CreateAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/user/ws/CreateAction.java @@ -36,10 +36,10 @@ public class CreateAction implements UsersWsAction { private static final String PARAM_LOGIN = "login"; private static final String PARAM_PASSWORD = "password"; - private static final String PARAM_PASSWORD_CONFIRMATION = "password_confirmation"; private static final String PARAM_NAME = "name"; private static final String PARAM_EMAIL = "email"; - private static final String PARAM_SCM_ACCOUNTS = "scm_accounts"; + private static final String PARAM_SCM_ACCOUNTS = "scmAccounts"; + private static final String PARAM_SCM_ACCOUNTS_DEPRECATED = "scm_accounts"; private final UserIndex index; private final UserUpdater userUpdater; @@ -71,11 +71,6 @@ public class CreateAction implements UsersWsAction { .setRequired(true) .setExampleValue("mypassword"); - action.createParam(PARAM_PASSWORD_CONFIRMATION) - .setDescription("Must be the same value as \"password\"") - .setRequired(true) - .setExampleValue("mypassword"); - action.createParam(PARAM_NAME) .setDescription("User name") .setRequired(true) @@ -87,7 +82,8 @@ public class CreateAction implements UsersWsAction { action.createParam(PARAM_SCM_ACCOUNTS) .setDescription("SCM accounts. This parameter has been added in 5.1") - .setExampleValue("myscmaccount1, myscmaccount2"); + .setDeprecatedKey(PARAM_SCM_ACCOUNTS_DEPRECATED) + .setExampleValue("myscmaccount1,myscmaccount2"); } @Override @@ -95,13 +91,14 @@ public class CreateAction implements UsersWsAction { userSession.checkLoggedIn().checkGlobalPermission(GlobalPermissions.SYSTEM_ADMIN); String login = request.mandatoryParam(PARAM_LOGIN); + String password = request.mandatoryParam(PARAM_PASSWORD); NewUser newUser = NewUser.create() .setLogin(login) .setName(request.mandatoryParam(PARAM_NAME)) .setEmail(request.param(PARAM_EMAIL)) .setScmAccounts(request.paramAsStrings(PARAM_SCM_ACCOUNTS)) - .setPassword(request.mandatoryParam(PARAM_PASSWORD)) - .setPasswordConfirmation(request.mandatoryParam(PARAM_PASSWORD_CONFIRMATION)); + .setPassword(password) + .setPasswordConfirmation(password); boolean isUserReactivated = userUpdater.create(newUser); writeResponse(response, login, isUserReactivated); diff --git a/server/sonar-server/src/main/java/org/sonar/server/user/ws/UpdateAction.java b/server/sonar-server/src/main/java/org/sonar/server/user/ws/UpdateAction.java index 23a7f2d2521..19d6c41db86 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/user/ws/UpdateAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/user/ws/UpdateAction.java @@ -36,7 +36,8 @@ public class UpdateAction implements UsersWsAction { private static final String PARAM_LOGIN = "login"; private static final String PARAM_NAME = "name"; private static final String PARAM_EMAIL = "email"; - private static final String PARAM_SCM_ACCOUNTS = "scm_accounts"; + private static final String PARAM_SCM_ACCOUNTS = "scmAccounts"; + private static final String PARAM_SCM_ACCOUNTS_DEPRECATED = "scm_accounts"; private final UserIndex index; private final UserUpdater userUpdater; @@ -72,7 +73,8 @@ public class UpdateAction implements UsersWsAction { action.createParam(PARAM_SCM_ACCOUNTS) .setDescription("SCM accounts. This parameter has been added in 5.1") - .setExampleValue("myscmaccount1, myscmaccount2"); + .setDeprecatedKey(PARAM_SCM_ACCOUNTS_DEPRECATED) + .setExampleValue("myscmaccount1,myscmaccount2"); } @Override @@ -87,7 +89,7 @@ public class UpdateAction implements UsersWsAction { if (request.hasParam(PARAM_EMAIL)) { updateUser.setEmail(request.param(PARAM_EMAIL)); } - if (request.hasParam(PARAM_SCM_ACCOUNTS)) { + if (request.hasParam(PARAM_SCM_ACCOUNTS) || request.hasParam(PARAM_SCM_ACCOUNTS_DEPRECATED)) { updateUser.setScmAccounts(request.paramAsStrings(PARAM_SCM_ACCOUNTS)); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/user/ws/CreateActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/user/ws/CreateActionTest.java index 42a4008c7dd..02613a65adc 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/user/ws/CreateActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/user/ws/CreateActionTest.java @@ -118,13 +118,31 @@ public class CreateActionTest { public void create_user() throws Exception { userSessionRule.login("admin").setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN); + tester.newPostRequest("api/users", "create") + .setParam("login", "john") + .setParam("name", "John") + .setParam("email", "john@email.com") + .setParam("scmAccounts", "jn") + .setParam("password", "1234").execute() + .assertJson(getClass(), "create_user.json"); + + UserDoc user = index.getByLogin("john"); + assertThat(user.login()).isEqualTo("john"); + assertThat(user.name()).isEqualTo("John"); + assertThat(user.email()).isEqualTo("john@email.com"); + assertThat(user.scmAccounts()).containsOnly("jn"); + } + + @Test + public void create_user_with_deprecated_scm_parameter() throws Exception { + userSessionRule.login("admin").setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN); + tester.newPostRequest("api/users", "create") .setParam("login", "john") .setParam("name", "John") .setParam("email", "john@email.com") .setParam("scm_accounts", "jn") - .setParam("password", "1234") - .setParam("password_confirmation", "1234").execute() + .setParam("password", "1234").execute() .assertJson(getClass(), "create_user.json"); UserDoc user = index.getByLogin("john"); @@ -154,8 +172,7 @@ public class CreateActionTest { .setParam("name", "John") .setParam("email", "john@email.com") .setParam("scm_accounts", "jn") - .setParam("password", "1234") - .setParam("password_confirmation", "1234").execute() + .setParam("password", "1234").execute() .assertJson(getClass(), "reactivate_user.json"); assertThat(index.getByLogin("john").active()).isTrue(); @@ -170,7 +187,6 @@ public class CreateActionTest { .setParam("name", "John") .setParam("email", "john@email.com") .setParam("scm_accounts", "jn") - .setParam("password", "1234") - .setParam("password_confirmation", "1234").execute(); + .setParam("password", "1234").execute(); } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/user/ws/UpdateActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/user/ws/UpdateActionTest.java index 6ed505a8d22..5bd83a3cec6 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/user/ws/UpdateActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/user/ws/UpdateActionTest.java @@ -118,7 +118,7 @@ public class UpdateActionTest { .setParam("login", "john") .setParam("name", "Jon Snow") .setParam("email", "jon.snow@thegreatw.all") - .setParam("scm_accounts", "jon.snow") + .setParam("scmAccounts", "jon.snow") .execute() .assertJson(getClass(), "update_user.json"); } @@ -149,6 +149,17 @@ public class UpdateActionTest { public void update_only_scm_accounts() throws Exception { createUser(); + tester.newPostRequest("api/users", "update") + .setParam("login", "john") + .setParam("scmAccounts", "jon.snow") + .execute() + .assertJson(getClass(), "update_scm_accounts.json"); + } + + @Test + public void update_only_scm_accounts_with_deprecated_parameter() throws Exception { + createUser(); + tester.newPostRequest("api/users", "update") .setParam("login", "john") .setParam("scm_accounts", "jon.snow") diff --git a/server/sonar-server/src/test/java/org/sonar/server/user/ws/UsersWsTest.java b/server/sonar-server/src/test/java/org/sonar/server/user/ws/UsersWsTest.java index 1ea55a41462..bb5fd484cc5 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/user/ws/UsersWsTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/user/ws/UsersWsTest.java @@ -72,7 +72,7 @@ public class UsersWsTest { WebService.Action action = controller.action("create"); assertThat(action).isNotNull(); assertThat(action.isPost()).isTrue(); - assertThat(action.params()).hasSize(6); + assertThat(action.params()).hasSize(5); } @Test -- 2.39.5