]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-8716 fix check of permissions in api/user/change_password
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Thu, 2 Feb 2017 13:42:44 +0000 (14:42 +0100)
committerSimon Brandhof <simon.brandhof@sonarsource.com>
Tue, 7 Feb 2017 13:22:44 +0000 (14:22 +0100)
server/sonar-server/src/main/java/org/sonar/server/user/ws/ChangePasswordAction.java
server/sonar-server/src/test/java/org/sonar/server/ce/ws/CancelActionTest.java
server/sonar-server/src/test/java/org/sonar/server/ce/ws/CancelAllActionTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/queue/ReportSubmitterTest.java
server/sonar-server/src/test/java/org/sonar/server/debt/DebtModelBackupTest.java
server/sonar-server/src/test/java/org/sonar/server/qualitygate/QualityGatesTest.java
server/sonar-server/src/test/java/org/sonar/server/ui/ws/ComponentActionTest.java
server/sonar-server/src/test/java/org/sonar/server/user/ws/ChangePasswordActionTest.java

index e22aa78d771dbd8f4a1877e653df42ed578ec255..c256a804e7c7d5034a7a831f992874396a49c110 100644 (file)
@@ -85,7 +85,7 @@ public class ChangePasswordAction implements UsersWsAction {
         String previousPassword = request.mandatoryParam(PARAM_PREVIOUS_PASSWORD);
         checkCurrentPassword(dbSession, login, previousPassword);
       } else {
-        userSession.checkPermission(GlobalPermissions.SYSTEM_ADMIN);
+        userSession.checkIsRoot();
       }
 
       String password = request.mandatoryParam(PARAM_PASSWORD);
index 0d577f06611e2030770a940ee30f61c1ec296017..2de05e225104c7366a4555208cf3db6d9f13b1ea 100644 (file)
@@ -44,7 +44,7 @@ public class CancelActionTest {
 
   @Test
   public void cancel_pending_task() {
-    userSession.login().setRoot();
+    userSession.logIn().setRoot();
 
     tester.newRequest()
       .setParam("id", "T1")
@@ -55,7 +55,7 @@ public class CancelActionTest {
 
   @Test
   public void throw_IllegalArgumentException_if_missing_id() {
-    userSession.login().setRoot();
+    userSession.logIn().setRoot();
 
     expectedException.expect(IllegalArgumentException.class);
     expectedException.expectMessage("The 'id' parameter is missing");
@@ -67,7 +67,7 @@ public class CancelActionTest {
 
   @Test
   public void throw_ForbiddenException_if_not_root() {
-    userSession.login().setNonRoot();
+    userSession.logIn().setNonRoot();
 
     expectedException.expect(ForbiddenException.class);
     expectedException.expectMessage("Insufficient privileges");
index 6375b408200d9fd0c19c750d2ebe261d9fb5ae7d..ce6147acb1ea82394816ac801793907e4b5c5867 100644 (file)
@@ -45,7 +45,7 @@ public class CancelAllActionTest {
 
   @Test
   public void cancel_all_pending_tasks() {
-    userSession.login().setRoot();
+    userSession.logIn().setRoot();
 
     call();
 
@@ -54,7 +54,7 @@ public class CancelAllActionTest {
 
   @Test
   public void throw_ForbiddenException_if_not_root() {
-    userSession.login().setNonRoot();
+    userSession.logIn().setNonRoot();
 
     expectedException.expect(ForbiddenException.class);
     expectedException.expectMessage("Insufficient privileges");
index 1f11dfbe05971543ba6224b243a9f0d54072de8d..7cf54341b874bdb699f57e4da6845fdd4f28a05f 100644 (file)
@@ -98,7 +98,7 @@ public class ReportSubmitterTest {
 
   @Test
   public void submit_fails_with_organizationKey_does_not_match_organization_of_specified_component() {
-    userSession.login().setRoot();
+    userSession.logIn().setRoot();
     OrganizationDto organization = db.organizations().insert();
     ComponentDto project = db.components().insertProject(organization);
     mockSuccessfulPrepareSubmitCall();
@@ -109,7 +109,7 @@ public class ReportSubmitterTest {
   @Test
   public void submit_a_report_on_existing_project() {
     ComponentDto project = db.components().insertProject(db.getDefaultOrganization());
-    userSession.login().addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
+    userSession.logIn().addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
 
     mockSuccessfulPrepareSubmitCall();
 
index 6055f994d8089a01ec1b57a551ad19e6e423d0ec..80ec053ea72dac011df955f2758045b5e4c7e3aa 100644 (file)
@@ -97,7 +97,7 @@ public class DebtModelBackupTest {
 
   @Before
   public void setUp() {
-    userSessionRule.login().setRoot();
+    userSessionRule.logIn().setRoot();
 
     when(system2.now()).thenReturn(now.getTime());
 
index 074b4ed3cd11997bb78d1298ee283e3a372dfd2b..6a1bdbe078a4a496d1a9506ee5516109482ff65d 100644 (file)
@@ -95,7 +95,7 @@ public class QualityGatesTest {
 
     underTest = new QualityGates(dbClient, metricFinder, userSession);
 
-    userSession.login().setRoot();
+    userSession.logIn().setRoot();
   }
 
   @Test
index 454dc82acda6d5adec2fef22c09d4073594cafce..bd53d42e8204ae2ba93003ebd9d56d97793dec0d 100644 (file)
@@ -309,7 +309,7 @@ public class ComponentActionTest {
   public void return_configuration_for_quality_profile_admin() throws Exception {
     init();
     componentDbTester.insertComponent(project);
-    userSessionRule.login()
+    userSessionRule.logIn()
       .addProjectUuidPermissions(UserRole.USER, project.uuid())
       .addOrganizationPermission(project.getOrganizationUuid(), QUALITY_PROFILE_ADMIN);
 
index 54e95ef9faf9515ddc701a5ad541b4f8950e0d5d..7046c93fd259d256d63368b2115a85df51693177 100644 (file)
@@ -25,7 +25,6 @@ import org.junit.Test;
 import org.junit.rules.ExpectedException;
 import org.sonar.api.config.MapSettings;
 import org.sonar.api.utils.System2;
-import org.sonar.core.permission.GlobalPermissions;
 import org.sonar.db.DbTester;
 import org.sonar.db.user.GroupTesting;
 import org.sonar.server.es.EsTester;
@@ -58,7 +57,7 @@ public class ChangePasswordActionTest {
   public EsTester esTester = new EsTester(new UserIndexDefinition(new MapSettings()));
 
   @Rule
-  public UserSessionRule userSessionRule = UserSessionRule.standalone().logIn("admin").setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+  public UserSessionRule userSessionRule = UserSessionRule.standalone().logIn();
 
   private UserUpdater userUpdater = new UserUpdater(mock(NewUserNotifier.class), new MapSettings(), db.getDbClient(),
     new UserIndexer(System2.INSTANCE, db.getDbClient(), esTester.client()), System2.INSTANCE, TestDefaultOrganizationProvider.from(db));
@@ -83,7 +82,10 @@ public class ChangePasswordActionTest {
 
   @Test
   public void fail_on_unknown_user() throws Exception {
+    userSessionRule.logIn().setRoot();
+
     expectedException.expect(NotFoundException.class);
+
     tester.newPostRequest("api/users", "change_password")
       .setParam("login", "polop")
       .setParam("password", "polop")
@@ -91,7 +93,8 @@ public class ChangePasswordActionTest {
   }
 
   @Test
-  public void update_password() throws Exception {
+  public void root_can_update_password_of_user() throws Exception {
+    userSessionRule.logIn().setRoot();
     createUser();
     String originalPassword = db.getDbClient().userDao().selectOrFailByLogin(db.getSession(), "john").getCryptedPassword();
 
@@ -106,7 +109,7 @@ public class ChangePasswordActionTest {
   }
 
   @Test
-  public void update_password_on_self() throws Exception {
+  public void a_user_can_update_his_password() throws Exception {
     createUser();
     String originalPassword = db.getDbClient().userDao().selectOrFailByLogin(db.getSession(), "john").getCryptedPassword();
 
@@ -149,6 +152,8 @@ public class ChangePasswordActionTest {
 
   @Test
   public void fail_to_update_password_on_external_auth() throws Exception {
+    userSessionRule.logIn().setRoot();
+
     userUpdater.create(NewUser.builder()
       .setEmail("john@email.com")
       .setLogin("john")