From: Julien Lancelot Date: Fri, 4 May 2018 14:18:50 +0000 (+0200) Subject: SONAR-10598 Display warning page when detecting login update during authentication X-Git-Tag: 7.5~1166 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=7a894686606925522e1a6d8b01c7c2fc092200c9;p=sonarqube.git SONAR-10598 Display warning page when detecting login update during authentication * SONAR-10598 Refactor UserIdentityAuthenticator#authenticate to use a ParameterObject * SONAR-10598 Redirect user when login is updated and update personal org * SONAR-10598 Improve update of personal organization key * SONAR-10598 Improve IT stability related to generation of provider ID * SONAR-10598 Add USERS#ORGANIZATION_UUID * SONAR-10598 Replace usage of Organizaions#UserId by Users#OrganizationUuid --- diff --git a/server/sonar-db-core/src/main/resources/org/sonar/db/version/schema-h2.ddl b/server/sonar-db-core/src/main/resources/org/sonar/db/version/schema-h2.ddl index 896cadc48bb..4986fd747fa 100644 --- a/server/sonar-db-core/src/main/resources/org/sonar/db/version/schema-h2.ddl +++ b/server/sonar-db-core/src/main/resources/org/sonar/db/version/schema-h2.ddl @@ -6,7 +6,6 @@ CREATE TABLE "ORGANIZATIONS" ( "URL" VARCHAR(256), "AVATAR_URL" VARCHAR(256), "GUARDED" BOOLEAN NOT NULL, - "USER_ID" INTEGER, "DEFAULT_PERM_TEMPLATE_PROJECT" VARCHAR(40), "DEFAULT_PERM_TEMPLATE_VIEW" VARCHAR(40), "DEFAULT_GROUP_ID" INTEGER, @@ -469,10 +468,11 @@ CREATE TABLE "USERS" ( "IS_ROOT" BOOLEAN NOT NULL, "USER_LOCAL" BOOLEAN, "ONBOARDED" BOOLEAN NOT NULL, - "CREATED_AT" BIGINT, - "UPDATED_AT" BIGINT, "HOMEPAGE_TYPE" VARCHAR(40), - "HOMEPAGE_PARAMETER" VARCHAR(40) + "HOMEPAGE_PARAMETER" VARCHAR(40), + "ORGANIZATION_UUID" VARCHAR(40), + "CREATED_AT" BIGINT, + "UPDATED_AT" BIGINT ); CREATE UNIQUE INDEX "USERS_UUID" ON "USERS" ("UUID"); CREATE UNIQUE INDEX "USERS_LOGIN" ON "USERS" ("LOGIN"); diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/organization/OrganizationDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/organization/OrganizationDto.java index e8548462f38..b139f04ef4c 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/organization/OrganizationDto.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/organization/OrganizationDto.java @@ -111,16 +111,6 @@ public class OrganizationDto { return this; } - @CheckForNull - public Integer getUserId() { - return userId; - } - - public OrganizationDto setUserId(@Nullable Integer userId) { - this.userId = userId; - return this; - } - @CheckForNull public Integer getDefaultGroupId() { return defaultGroupId; diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/user/UserDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/user/UserDto.java index 129d636730c..2c172e374f0 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/user/UserDto.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/user/UserDto.java @@ -50,13 +50,14 @@ public class UserDto { private String salt; // Hash method used to generate cryptedPassword, my be null in case of external authentication private String hashMethod; - private Long createdAt; - private Long updatedAt; private String homepageType; private String homepageParameter; private boolean local = true; private boolean root = false; private boolean onboarded = false; + private String organizationUuid; + private Long createdAt; + private Long updatedAt; public String getUuid() { return uuid; @@ -218,24 +219,6 @@ public class UserDto { return this; } - public Long getCreatedAt() { - return createdAt; - } - - UserDto setCreatedAt(long createdAt) { - this.createdAt = createdAt; - return this; - } - - public Long getUpdatedAt() { - return updatedAt; - } - - UserDto setUpdatedAt(long updatedAt) { - this.updatedAt = updatedAt; - return this; - } - @CheckForNull public String getHomepageType() { return homepageType; @@ -281,6 +264,34 @@ public class UserDto { return this; } + @CheckForNull + public String getOrganizationUuid() { + return organizationUuid; + } + + public UserDto setOrganizationUuid(@Nullable String organizationUuid) { + this.organizationUuid = organizationUuid; + return this; + } + + public Long getCreatedAt() { + return createdAt; + } + + UserDto setCreatedAt(long createdAt) { + this.createdAt = createdAt; + return this; + } + + public Long getUpdatedAt() { + return updatedAt; + } + + UserDto setUpdatedAt(long updatedAt) { + this.updatedAt = updatedAt; + return this; + } + public DefaultUser toUser() { return new DefaultUser() .setLogin(login) diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/organization/OrganizationMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/organization/OrganizationMapper.xml index d48bcec8cfb..86231226a8f 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/organization/OrganizationMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/organization/OrganizationMapper.xml @@ -11,7 +11,6 @@ org.url as "url", org.avatar_url as "avatarUrl", org.guarded as "guarded", - org.user_id as "userId", org.created_at as "createdAt", org.updated_at as "updatedAt" @@ -163,7 +162,6 @@ avatar_url, guarded, new_project_private, - user_id, default_quality_gate_uuid, created_at, updated_at @@ -178,7 +176,6 @@ #{organization.avatarUrl, jdbcType=VARCHAR}, #{organization.guarded, jdbcType=BOOLEAN}, #{newProjectPrivate, jdbcType=BOOLEAN}, - #{organization.userId, jdbcType=INTEGER}, #{organization.defaultQualityGateUuid, jdbcType=VARCHAR}, #{organization.createdAt, jdbcType=BIGINT}, #{organization.updatedAt, jdbcType=BIGINT} @@ -188,6 +185,7 @@ update organizations set + kee = #{organization.key, jdbcType=VARCHAR}, name = #{organization.name, jdbcType=VARCHAR}, description = #{organization.description, jdbcType=VARCHAR}, url = #{organization.url, jdbcType=VARCHAR}, diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/user/UserMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/user/UserMapper.xml index f28b9383fdd..6a37689fbf2 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/user/UserMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/user/UserMapper.xml @@ -20,10 +20,11 @@ u.user_local as "local", u.is_root as "root", u.onboarded as "onboarded", - u.created_at as "createdAt", - u.updated_at as "updatedAt", u.homepage_type as "homepageType", - u.homepage_parameter as "homepageParameter" + u.homepage_parameter as "homepageParameter", + u.organization_uuid as organizationUuid, + u.created_at as "createdAt", + u.updated_at as "updatedAt"