diff options
author | Belen Pruvost <belen.pruvost@sonarsource.com> | 2021-07-20 13:56:34 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2021-07-27 20:03:02 +0000 |
commit | 9453e6a5c554f4e29309c31466e1c1a102adc61c (patch) | |
tree | c991bb4ecba60958cecfeb60cd96054604dba7b8 /server/sonar-server-common | |
parent | ce304c7995552e8d6af222db2b30ae230288815b (diff) | |
download | sonarqube-9453e6a5c554f4e29309c31466e1c1a102adc61c.tar.gz sonarqube-9453e6a5c554f4e29309c31466e1c1a102adc61c.zip |
SONAR-15142 - Log Permission, Plugin, Secret Key, License and Settings
Diffstat (limited to 'server/sonar-server-common')
5 files changed, 38 insertions, 31 deletions
diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/favorite/FavoriteUpdater.java b/server/sonar-server-common/src/main/java/org/sonar/server/favorite/FavoriteUpdater.java index 3ffabfa8af9..6deb01b0806 100644 --- a/server/sonar-server-common/src/main/java/org/sonar/server/favorite/FavoriteUpdater.java +++ b/server/sonar-server-common/src/main/java/org/sonar/server/favorite/FavoriteUpdater.java @@ -41,7 +41,7 @@ public class FavoriteUpdater { /** * Set favorite to the logged in user. If no user, no action is done */ - public void add(DbSession dbSession, ComponentDto componentDto, @Nullable String userUuid, boolean failIfTooManyFavorites) { + public void add(DbSession dbSession, ComponentDto componentDto, @Nullable String userUuid, @Nullable String userLogin, boolean failIfTooManyFavorites) { if (userUuid == null) { return; } @@ -59,24 +59,28 @@ public class FavoriteUpdater { return; } dbClient.propertiesDao().saveProperty(dbSession, new PropertyDto() - .setKey(PROP_FAVORITE_KEY) - .setComponentUuid(componentDto.uuid()) - .setUserUuid(userUuid)); + .setKey(PROP_FAVORITE_KEY) + .setComponentUuid(componentDto.uuid()) + .setUserUuid(userUuid), + userLogin, + componentDto.name()); } /** * Remove a favorite to the user. + * * @throws IllegalArgumentException if the component is not a favorite */ - public void remove(DbSession dbSession, ComponentDto component, @Nullable String userUuid) { + public void remove(DbSession dbSession, ComponentDto component, @Nullable String userUuid, @Nullable String userLogin) { if (userUuid == null) { return; } int result = dbClient.propertiesDao().delete(dbSession, new PropertyDto() - .setKey(PROP_FAVORITE_KEY) - .setComponentUuid(component.uuid()) - .setUserUuid(userUuid)); + .setKey(PROP_FAVORITE_KEY) + .setComponentUuid(component.uuid()) + .setUserUuid(userUuid), + userLogin, component.name()); checkArgument(result == 1, "Component '%s' is not a favorite", component.getDbKey()); } } diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/favorite/FavoriteUpdaterTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/favorite/FavoriteUpdaterTest.java index 3f61a4d686a..1831d917d26 100644 --- a/server/sonar-server-common/src/test/java/org/sonar/server/favorite/FavoriteUpdaterTest.java +++ b/server/sonar-server-common/src/test/java/org/sonar/server/favorite/FavoriteUpdaterTest.java @@ -50,7 +50,7 @@ public class FavoriteUpdaterTest { UserDto user = db.users().insertUser(); assertNoFavorite(project, user); - underTest.add(dbSession, project, user.getUuid(), true); + underTest.add(dbSession, project, user.getUuid(), user.getLogin(), true); assertFavorite(project, user); } @@ -59,7 +59,7 @@ public class FavoriteUpdaterTest { public void do_nothing_when_no_user() { ComponentDto project = db.components().insertPrivateProject(); - underTest.add(dbSession, project, null, true); + underTest.add(dbSession, project, null, null,true); assertThat(dbClient.propertiesDao().selectByQuery(PropertyQuery.builder() .setComponentUuid(project.uuid()) @@ -69,13 +69,13 @@ public class FavoriteUpdaterTest { @Test public void do_not_add_favorite_when_already_100_favorite_projects() { UserDto user = db.users().insertUser(); - IntStream.rangeClosed(1, 100).forEach(i -> db.favorites().add(db.components().insertPrivateProject(), user.getUuid())); + IntStream.rangeClosed(1, 100).forEach(i -> db.favorites().add(db.components().insertPrivateProject(), user.getUuid(), user.getName())); assertThat(dbClient.propertiesDao().selectByQuery(PropertyQuery.builder() .setUserUuid(user.getUuid()) .build(), dbSession)).hasSize(100); ComponentDto project = db.components().insertPrivateProject(); - underTest.add(dbSession, project, user.getUuid(), false); + underTest.add(dbSession, project, user.getUuid(), user.getLogin(), false); assertThat(dbClient.propertiesDao().selectByQuery(PropertyQuery.builder() .setUserUuid(user.getUuid()) @@ -85,13 +85,14 @@ public class FavoriteUpdaterTest { @Test public void do_not_add_favorite_when_already_100_favorite_portfolios() { UserDto user = db.users().insertUser(); - IntStream.rangeClosed(1, 100).forEach(i -> db.favorites().add(db.components().insertPrivateProject(), user.getUuid())); + IntStream.rangeClosed(1, 100).forEach(i -> db.favorites().add(db.components().insertPrivateProject(), + user.getUuid(), user.getLogin())); assertThat(dbClient.propertiesDao().selectByQuery(PropertyQuery.builder() .setUserUuid(user.getUuid()) .build(), dbSession)).hasSize(100); ComponentDto project = db.components().insertPrivateProject(); - underTest.add(dbSession, project, user.getUuid(), false); + underTest.add(dbSession, project, user.getUuid(), user.getLogin(), false); assertThat(dbClient.propertiesDao().selectByQuery(PropertyQuery.builder() .setUserUuid(user.getUuid()) @@ -101,26 +102,27 @@ public class FavoriteUpdaterTest { @Test public void fail_when_more_than_100_projects_favorites() { UserDto user = db.users().insertUser(); - IntStream.rangeClosed(1, 100).forEach(i -> db.favorites().add(db.components().insertPrivateProject(), user.getUuid())); + IntStream.rangeClosed(1, 100).forEach(i -> db.favorites().add(db.components().insertPrivateProject(), + user.getUuid(), user.getLogin())); ComponentDto project = db.components().insertPrivateProject(); expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("You cannot have more than 100 favorites on components with qualifier 'TRK'"); - underTest.add(dbSession, project, user.getUuid(), true); + underTest.add(dbSession, project, user.getUuid(), user.getLogin(), true); } @Test public void fail_when_adding_existing_favorite() { ComponentDto project = db.components().insertPrivateProject(); UserDto user = db.users().insertUser(); - underTest.add(dbSession, project, user.getUuid(), true); + underTest.add(dbSession, project, user.getUuid(), user.getLogin(), true); assertFavorite(project, user); expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage(String.format("Component '%s' is already a favorite", project.getKey())); - underTest.add(dbSession, project, user.getUuid(), true); + underTest.add(dbSession, project, user.getUuid(), user.getLogin(), true); } private void assertFavorite(ComponentDto project, UserDto user) { diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/platform/StartupMetadataProviderTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/platform/StartupMetadataProviderTest.java index df727bdce2a..0851cd9b1ba 100644 --- a/server/sonar-server-common/src/test/java/org/sonar/server/platform/StartupMetadataProviderTest.java +++ b/server/sonar-server-common/src/test/java/org/sonar/server/platform/StartupMetadataProviderTest.java @@ -101,7 +101,8 @@ public class StartupMetadataProviderTest { } private void testLoadingFromDatabase(SonarRuntime runtime, boolean isStartupLeader) { - dbTester.properties().insertProperty(new PropertyDto().setKey(CoreProperties.SERVER_STARTTIME).setValue(formatDateTime(A_DATE))); + dbTester.properties().insertProperty(new PropertyDto().setKey(CoreProperties.SERVER_STARTTIME).setValue(formatDateTime(A_DATE)), + null, null); when(webServer.isStartupLeader()).thenReturn(isStartupLeader); StartupMetadata metadata = underTest.provide(system, runtime, webServer, dbTester.getDbClient()); diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/webhook/AsynchronousWebHooksImplTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/webhook/AsynchronousWebHooksImplTest.java index a971c864139..602ebb5a064 100644 --- a/server/sonar-server-common/src/test/java/org/sonar/server/webhook/AsynchronousWebHooksImplTest.java +++ b/server/sonar-server-common/src/test/java/org/sonar/server/webhook/AsynchronousWebHooksImplTest.java @@ -63,8 +63,8 @@ public class AsynchronousWebHooksImplTest { @Test public void send_global_webhooks() { ComponentDto project = componentDbTester.insertPrivateProject(); - webhookDbTester.insert(newGlobalWebhook().setName("First").setUrl("http://url1")); - webhookDbTester.insert(newGlobalWebhook().setName("Second").setUrl("http://url2")); + webhookDbTester.insert(newGlobalWebhook().setName("First").setUrl("http://url1"), null); + webhookDbTester.insert(newGlobalWebhook().setName("Second").setUrl("http://url2"), null); caller.enqueueSuccess(NOW, 200, 1_234); caller.enqueueFailure(NOW, new IOException("Fail to connect")); diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/webhook/SynchronousWebHooksImplTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/webhook/SynchronousWebHooksImplTest.java index 46f0e0da591..047e1ab047e 100644 --- a/server/sonar-server-common/src/test/java/org/sonar/server/webhook/SynchronousWebHooksImplTest.java +++ b/server/sonar-server-common/src/test/java/org/sonar/server/webhook/SynchronousWebHooksImplTest.java @@ -74,7 +74,7 @@ public class SynchronousWebHooksImplTest { @Test public void isEnabled_returns_true_if_one_valid_global_webhook() { ProjectDto projectDto = componentDbTester.insertPrivateProjectDto(); - webhookDbTester.insert(newWebhook(projectDto).setName("First").setUrl("http://url1")); + webhookDbTester.insert(newWebhook(projectDto).setName("First").setUrl("http://url1"), projectDto.getName()); assertThat(underTest.isEnabled(projectDto)).isTrue(); } @@ -82,7 +82,7 @@ public class SynchronousWebHooksImplTest { @Test public void isEnabled_returns_true_if_one_valid_project_webhook() { ProjectDto projectDto = componentDbTester.insertPrivateProjectDto(); - webhookDbTester.insert(newWebhook(projectDto).setName("First").setUrl("http://url1")); + webhookDbTester.insert(newWebhook(projectDto).setName("First").setUrl("http://url1"), projectDto.getName()); assertThat(underTest.isEnabled(projectDto)).isTrue(); } @@ -113,8 +113,8 @@ public class SynchronousWebHooksImplTest { @Test public void send_global_webhooks() { ComponentDto componentDto = componentDbTester.insertPrivateProject(); - webhookDbTester.insert(newGlobalWebhook().setName("First").setUrl("http://url1")); - webhookDbTester.insert(newGlobalWebhook().setName("Second").setUrl("http://url2")); + webhookDbTester.insert(newGlobalWebhook().setName("First").setUrl("http://url1"), null); + webhookDbTester.insert(newGlobalWebhook().setName("Second").setUrl("http://url2"), null); caller.enqueueSuccess(NOW, 200, 1_234); caller.enqueueFailure(NOW, new IOException("Fail to connect")); @@ -131,7 +131,7 @@ public class SynchronousWebHooksImplTest { @Test public void send_project_webhooks() { ProjectDto projectDto = componentDbTester.insertPrivateProjectDto(); - webhookDbTester.insert(newWebhook(projectDto).setName("First").setUrl("http://url1")); + webhookDbTester.insert(newWebhook(projectDto).setName("First").setUrl("http://url1"), projectDto.getName()); caller.enqueueSuccess(NOW, 200, 1_234); underTest.sendProjectAnalysisUpdate(new WebHooks.Analysis(projectDto.getUuid(), "1", "#1"), () -> mock, taskStatistics); @@ -146,11 +146,11 @@ public class SynchronousWebHooksImplTest { @Test public void send_global_and_project_webhooks() { ProjectDto projectDto = componentDbTester.insertPrivateProjectDto(); - webhookDbTester.insert(newWebhook(projectDto).setName("1First").setUrl("http://url1")); - webhookDbTester.insert(newWebhook(projectDto).setName("2Second").setUrl("http://url2")); - webhookDbTester.insert(newGlobalWebhook().setName("3Third").setUrl("http://url3")); - webhookDbTester.insert(newGlobalWebhook().setName("4Fourth").setUrl("http://url4")); - webhookDbTester.insert(newGlobalWebhook().setName("5Fifth").setUrl("http://url5")); + webhookDbTester.insert(newWebhook(projectDto).setName("1First").setUrl("http://url1"), projectDto.getName()); + webhookDbTester.insert(newWebhook(projectDto).setName("2Second").setUrl("http://url2"), projectDto.getName()); + webhookDbTester.insert(newGlobalWebhook().setName("3Third").setUrl("http://url3"), null); + webhookDbTester.insert(newGlobalWebhook().setName("4Fourth").setUrl("http://url4"), null); + webhookDbTester.insert(newGlobalWebhook().setName("5Fifth").setUrl("http://url5"), null); caller.enqueueSuccess(NOW, 200, 1_234); caller.enqueueFailure(NOW, new IOException("Fail to connect 1")); caller.enqueueFailure(NOW, new IOException("Fail to connect 2")); |