aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-server-common
diff options
context:
space:
mode:
authorBelen Pruvost <belen.pruvost@sonarsource.com>2021-07-20 13:56:34 +0200
committersonartech <sonartech@sonarsource.com>2021-07-27 20:03:02 +0000
commit9453e6a5c554f4e29309c31466e1c1a102adc61c (patch)
treec991bb4ecba60958cecfeb60cd96054604dba7b8 /server/sonar-server-common
parentce304c7995552e8d6af222db2b30ae230288815b (diff)
downloadsonarqube-9453e6a5c554f4e29309c31466e1c1a102adc61c.tar.gz
sonarqube-9453e6a5c554f4e29309c31466e1c1a102adc61c.zip
SONAR-15142 - Log Permission, Plugin, Secret Key, License and Settings
Diffstat (limited to 'server/sonar-server-common')
-rw-r--r--server/sonar-server-common/src/main/java/org/sonar/server/favorite/FavoriteUpdater.java20
-rw-r--r--server/sonar-server-common/src/test/java/org/sonar/server/favorite/FavoriteUpdaterTest.java22
-rw-r--r--server/sonar-server-common/src/test/java/org/sonar/server/platform/StartupMetadataProviderTest.java3
-rw-r--r--server/sonar-server-common/src/test/java/org/sonar/server/webhook/AsynchronousWebHooksImplTest.java4
-rw-r--r--server/sonar-server-common/src/test/java/org/sonar/server/webhook/SynchronousWebHooksImplTest.java20
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"));