Remove the GAIA ID field from User (#2170)

It is not used and it is not possible to derive the GAIA ID when
creating a new User from the email address alone.
This commit is contained in:
Lai Jiang 2023-10-04 15:32:03 -04:00 committed by GitHub
parent 1580555d30
commit 7a84844000
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 12 additions and 51 deletions

View file

@ -35,21 +35,16 @@ import javax.persistence.Table;
/** A console user, either a registry employee or a registrar partner. */ /** A console user, either a registry employee or a registrar partner. */
@Entity @Entity
@Table( @Table(indexes = {@Index(columnList = "emailAddress", name = "user_email_address_idx")})
indexes = {
@Index(columnList = "gaiaId", name = "user_gaia_id_idx"),
@Index(columnList = "emailAddress", name = "user_email_address_idx")
})
public class User extends UpdateAutoTimestampEntity implements Buildable { public class User extends UpdateAutoTimestampEntity implements Buildable {
private static final long serialVersionUID = 6936728603828566721L;
/** Autogenerated unique ID of this user. */ /** Autogenerated unique ID of this user. */
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
/** GAIA ID associated with the user in question. */
private String gaiaId;
/** Email address of the user in question. */ /** Email address of the user in question. */
@Column(nullable = false) @Column(nullable = false)
private String emailAddress; private String emailAddress;
@ -71,10 +66,6 @@ public class User extends UpdateAutoTimestampEntity implements Buildable {
return id; return id;
} }
public String getGaiaId() {
return gaiaId;
}
public String getEmailAddress() { public String getEmailAddress() {
return emailAddress; return emailAddress;
} }
@ -139,12 +130,6 @@ public class User extends UpdateAutoTimestampEntity implements Buildable {
return super.build(); return super.build();
} }
public Builder setGaiaId(String gaiaId) {
checkArgument(!isNullOrEmpty(gaiaId), "Gaia ID cannot be null or empty");
getInstance().gaiaId = gaiaId;
return this;
}
public Builder setEmailAddress(String emailAddress) { public Builder setEmailAddress(String emailAddress) {
getInstance().emailAddress = checkValidEmail(emailAddress); getInstance().emailAddress = checkValidEmail(emailAddress);
return this; return this;

View file

@ -30,13 +30,11 @@ public class UserDaoTest extends EntityTestCase {
User user1 = User user1 =
new User.Builder() new User.Builder()
.setEmailAddress("email@email.com") .setEmailAddress("email@email.com")
.setGaiaId("gaiaId")
.setUserRoles(new UserRoles.Builder().setGlobalRole(GlobalRole.SUPPORT_AGENT).build()) .setUserRoles(new UserRoles.Builder().setGlobalRole(GlobalRole.SUPPORT_AGENT).build())
.build(); .build();
User user2 = User user2 =
new User.Builder() new User.Builder()
.setEmailAddress("foo@bar.com") .setEmailAddress("foo@bar.com")
.setGaiaId("otherId")
.setUserRoles(new UserRoles.Builder().setGlobalRole(GlobalRole.SUPPORT_AGENT).build()) .setUserRoles(new UserRoles.Builder().setGlobalRole(GlobalRole.SUPPORT_AGENT).build())
.build(); .build();
UserDao.saveUser(user1); UserDao.saveUser(user1);
@ -54,7 +52,6 @@ public class UserDaoTest extends EntityTestCase {
User user = User user =
new User.Builder() new User.Builder()
.setEmailAddress("email@email.com") .setEmailAddress("email@email.com")
.setGaiaId("gaiaId")
.setUserRoles(new UserRoles.Builder().setGlobalRole(GlobalRole.SUPPORT_AGENT).build()) .setUserRoles(new UserRoles.Builder().setGlobalRole(GlobalRole.SUPPORT_AGENT).build())
.build(); .build();
UserDao.saveUser(user); UserDao.saveUser(user);
@ -71,13 +68,11 @@ public class UserDaoTest extends EntityTestCase {
User user1 = User user1 =
new User.Builder() new User.Builder()
.setEmailAddress("email@email.com") .setEmailAddress("email@email.com")
.setGaiaId("gaiaId")
.setUserRoles(new UserRoles.Builder().setGlobalRole(GlobalRole.SUPPORT_AGENT).build()) .setUserRoles(new UserRoles.Builder().setGlobalRole(GlobalRole.SUPPORT_AGENT).build())
.build(); .build();
User user2 = User user2 =
new User.Builder() new User.Builder()
.setEmailAddress("email@email.com") .setEmailAddress("email@email.com")
.setGaiaId("otherId")
.setUserRoles(new UserRoles.Builder().setGlobalRole(GlobalRole.SUPPORT_AGENT).build()) .setUserRoles(new UserRoles.Builder().setGlobalRole(GlobalRole.SUPPORT_AGENT).build())
.build(); .build();
UserDao.saveUser(user1); UserDao.saveUser(user1);

View file

@ -30,10 +30,9 @@ public class UserTest extends EntityTestCase {
} }
@Test @Test
void testPersistence_lookupByGaiaId() { void testPersistence_lookupByEmail() {
User user = User user =
new User.Builder() new User.Builder()
.setGaiaId("gaiaId")
.setEmailAddress("email@email.com") .setEmailAddress("email@email.com")
.setUserRoles( .setUserRoles(
new UserRoles.Builder().setGlobalRole(GlobalRole.FTE).setIsAdmin(true).build()) new UserRoles.Builder().setGlobalRole(GlobalRole.FTE).setIsAdmin(true).build())
@ -43,10 +42,11 @@ public class UserTest extends EntityTestCase {
() -> { () -> {
assertAboutImmutableObjects() assertAboutImmutableObjects()
.that( .that(
tm().query("FROM User WHERE gaiaId = 'gaiaId'", User.class).getSingleResult()) tm().query("FROM User WHERE emailAddress = 'email@email.com'", User.class)
.getSingleResult())
.isEqualExceptFields(user, "id", "updateTimestamp"); .isEqualExceptFields(user, "id", "updateTimestamp");
assertThat( assertThat(
tm().query("FROM User WHERE gaiaId = 'badGaiaId'", User.class) tm().query("FROM User WHERE emailAddress = 'nobody@email.com'", User.class)
.getResultList()) .getResultList())
.isEmpty(); .isEmpty();
}); });
@ -55,9 +55,6 @@ public class UserTest extends EntityTestCase {
@Test @Test
void testFailure_badInputs() { void testFailure_badInputs() {
User.Builder builder = new User.Builder(); User.Builder builder = new User.Builder();
assertThat(assertThrows(IllegalArgumentException.class, () -> builder.setGaiaId(null)))
.hasMessageThat()
.isEqualTo("Gaia ID cannot be null or empty");
assertThat(assertThrows(IllegalArgumentException.class, () -> builder.setEmailAddress(""))) assertThat(assertThrows(IllegalArgumentException.class, () -> builder.setEmailAddress("")))
.hasMessageThat() .hasMessageThat()
.isEqualTo("Provided email is not a valid email address"); .isEqualTo("Provided email is not a valid email address");
@ -72,7 +69,7 @@ public class UserTest extends EntityTestCase {
assertThat(assertThrows(IllegalArgumentException.class, () -> builder.setUserRoles(null))) assertThat(assertThrows(IllegalArgumentException.class, () -> builder.setUserRoles(null)))
.hasMessageThat() .hasMessageThat()
.isEqualTo("User roles cannot be null"); .isEqualTo("User roles cannot be null");
assertThat(assertThrows(IllegalArgumentException.class, builder::build)) assertThat(assertThrows(IllegalArgumentException.class, builder::build))
.hasMessageThat() .hasMessageThat()
.isEqualTo("Email address cannot be null"); .isEqualTo("Email address cannot be null");
@ -99,7 +96,6 @@ public class UserTest extends EntityTestCase {
User user = User user =
new User.Builder() new User.Builder()
.setGaiaId("gaiaId")
.setEmailAddress("email@email.com") .setEmailAddress("email@email.com")
.setUserRoles(new UserRoles.Builder().setGlobalRole(GlobalRole.FTE).build()) .setUserRoles(new UserRoles.Builder().setGlobalRole(GlobalRole.FTE).build())
.build(); .build();

View file

@ -417,7 +417,6 @@ class AuthenticatedRegistrarAccessorTest {
void testConsoleUser_admin() { void testConsoleUser_admin() {
google.registry.model.console.User consoleUser = google.registry.model.console.User consoleUser =
new google.registry.model.console.User.Builder() new google.registry.model.console.User.Builder()
.setGaiaId("gaiaId")
.setEmailAddress("email@email.com") .setEmailAddress("email@email.com")
.setUserRoles( .setUserRoles(
new UserRoles.Builder().setIsAdmin(true).setGlobalRole(GlobalRole.FTE).build()) new UserRoles.Builder().setIsAdmin(true).setGlobalRole(GlobalRole.FTE).build())
@ -444,7 +443,6 @@ class AuthenticatedRegistrarAccessorTest {
// not admins // not admins
google.registry.model.console.User consoleUser = google.registry.model.console.User consoleUser =
new google.registry.model.console.User.Builder() new google.registry.model.console.User.Builder()
.setGaiaId("gaiaId")
.setEmailAddress("email@email.com") .setEmailAddress("email@email.com")
.setUserRoles(new UserRoles.Builder().setGlobalRole(GlobalRole.SUPPORT_AGENT).build()) .setUserRoles(new UserRoles.Builder().setGlobalRole(GlobalRole.SUPPORT_AGENT).build())
.build(); .build();
@ -462,7 +460,6 @@ class AuthenticatedRegistrarAccessorTest {
// Registrar employees should have OWNER access to their registrars // Registrar employees should have OWNER access to their registrars
google.registry.model.console.User consoleUser = google.registry.model.console.User consoleUser =
new google.registry.model.console.User.Builder() new google.registry.model.console.User.Builder()
.setGaiaId("gaiaId")
.setEmailAddress("email@email.com") .setEmailAddress("email@email.com")
.setUserRoles( .setUserRoles(
new UserRoles.Builder() new UserRoles.Builder()

View file

@ -61,7 +61,6 @@ public class OidcTokenAuthenticationMechanismTest {
private final User user = private final User user =
new User.Builder() new User.Builder()
.setEmailAddress(email) .setEmailAddress(email)
.setGaiaId(gaiaId)
.setUserRoles( .setUserRoles(
new UserRoles.Builder().setIsAdmin(true).setGlobalRole(GlobalRole.FTE).build()) new UserRoles.Builder().setIsAdmin(true).setGlobalRole(GlobalRole.FTE).build())
.build(); .build();
@ -141,7 +140,6 @@ public class OidcTokenAuthenticationMechanismTest {
User serviceUser = User serviceUser =
new User.Builder() new User.Builder()
.setEmailAddress("service@email.test") .setEmailAddress("service@email.test")
.setGaiaId("service-gaia-id")
.setUserRoles( .setUserRoles(
new UserRoles.Builder().setIsAdmin(true).setGlobalRole(GlobalRole.FTE).build()) new UserRoles.Builder().setIsAdmin(true).setGlobalRole(GlobalRole.FTE).build())
.build(); .build();

View file

@ -61,7 +61,7 @@ import org.junit.runner.RunWith;
* and have at least one test method that persists a JPA entity declared in persistence.xml. * and have at least one test method that persists a JPA entity declared in persistence.xml.
* *
* <p>Note that with {@link JpaIntegrationWithCoverageExtension}, each method starts with an empty * <p>Note that with {@link JpaIntegrationWithCoverageExtension}, each method starts with an empty
* database. Therefore this is not the right place for verifying backwards data compatibility in * database. Therefore, this is not the right place for verifying backwards data compatibility in
* end-to-end functional tests. * end-to-end functional tests.
* *
* <p>As of April 2020, none of the before/after annotations ({@code BeforeClass} and {@code * <p>As of April 2020, none of the before/after annotations ({@code BeforeClass} and {@code
@ -107,7 +107,9 @@ import org.junit.runner.RunWith;
// AfterSuiteTest must be the last entry. See class javadoc for details. // AfterSuiteTest must be the last entry. See class javadoc for details.
AfterSuiteTest.class AfterSuiteTest.class
}) })
public class SqlIntegrationTestSuite { public final class SqlIntegrationTestSuite {
private SqlIntegrationTestSuite() {}
@BeforeAll // Not yet supported in JUnit 5. Called through BeforeSuiteTest. @BeforeAll // Not yet supported in JUnit 5. Called through BeforeSuiteTest.
public static void initJpaEntityCoverage() { public static void initJpaEntityCoverage() {

View file

@ -144,7 +144,6 @@ public final class RegistryTestServerMain {
User user = User user =
new User.Builder() new User.Builder()
.setEmailAddress(loginEmail) .setEmailAddress(loginEmail)
.setGaiaId("123457890")
.setUserRoles(userRoles) .setUserRoles(userRoles)
.setRegistryLockPassword("registryLockPassword") .setRegistryLockPassword("registryLockPassword")
.build(); .build();

View file

@ -128,7 +128,6 @@ public class ConsoleDomainGetActionTest {
private User createUser(UserRoles userRoles) { private User createUser(UserRoles userRoles) {
return new User.Builder() return new User.Builder()
.setEmailAddress("email@email.com") .setEmailAddress("email@email.com")
.setGaiaId("gaiaId")
.setUserRoles(userRoles) .setUserRoles(userRoles)
.build(); .build();
} }

View file

@ -47,7 +47,6 @@ class ConsoleUserDataActionTest {
User user = User user =
new User.Builder() new User.Builder()
.setEmailAddress("email@email.com") .setEmailAddress("email@email.com")
.setGaiaId("gaiaId")
.setUserRoles(new UserRoles.Builder().setGlobalRole(GlobalRole.FTE).build()) .setUserRoles(new UserRoles.Builder().setGlobalRole(GlobalRole.FTE).build())
.build(); .build();

View file

@ -232,7 +232,6 @@ class RegistrarsActionTest {
private User createUser(UserRoles userRoles) { private User createUser(UserRoles userRoles) {
return new User.Builder() return new User.Builder()
.setEmailAddress("email@email.com") .setEmailAddress("email@email.com")
.setGaiaId("gaiaId")
.setUserRoles(userRoles) .setUserRoles(userRoles)
.build(); .build();
} }

View file

@ -226,7 +226,6 @@ class ContactActionTest {
private User createUser(UserRoles userRoles) { private User createUser(UserRoles userRoles) {
return new User.Builder() return new User.Builder()
.setEmailAddress("email@email.com") .setEmailAddress("email@email.com")
.setGaiaId("gaiaId")
.setUserRoles(userRoles) .setUserRoles(userRoles)
.build(); .build();
} }

View file

@ -109,7 +109,6 @@ class SecurityActionTest {
private User createUser(UserRoles userRoles) { private User createUser(UserRoles userRoles) {
return new User.Builder() return new User.Builder()
.setEmailAddress("email@email.com") .setEmailAddress("email@email.com")
.setGaiaId("TestUserId")
.setUserRoles(userRoles) .setUserRoles(userRoles)
.build(); .build();
} }

View file

@ -101,7 +101,6 @@ final class RegistryLockGetActionTest {
google.registry.model.console.User consoleUser = google.registry.model.console.User consoleUser =
new google.registry.model.console.User.Builder() new google.registry.model.console.User.Builder()
.setEmailAddress("johndoe@theregistrar.com") .setEmailAddress("johndoe@theregistrar.com")
.setGaiaId("gaiaId")
.setUserRoles( .setUserRoles(
new UserRoles.Builder() new UserRoles.Builder()
.setRegistrarRoles( .setRegistrarRoles(

View file

@ -231,7 +231,6 @@ final class RegistryLockPostActionTest {
google.registry.model.console.User consoleUser = google.registry.model.console.User consoleUser =
new google.registry.model.console.User.Builder() new google.registry.model.console.User.Builder()
.setEmailAddress("johndoe@theregistrar.com") .setEmailAddress("johndoe@theregistrar.com")
.setGaiaId("gaiaId")
.setUserRoles( .setUserRoles(
new UserRoles.Builder() new UserRoles.Builder()
.setRegistrarRoles( .setRegistrarRoles(
@ -252,7 +251,6 @@ final class RegistryLockPostActionTest {
google.registry.model.console.User consoleUser = google.registry.model.console.User consoleUser =
new google.registry.model.console.User.Builder() new google.registry.model.console.User.Builder()
.setEmailAddress("johndoe@theregistrar.com") .setEmailAddress("johndoe@theregistrar.com")
.setGaiaId("gaiaId")
.setUserRoles(new UserRoles.Builder().setIsAdmin(true).build()) .setUserRoles(new UserRoles.Builder().setIsAdmin(true).build())
.build(); .build();
AuthResult consoleAuthResult = AuthResult consoleAuthResult =
@ -447,7 +445,6 @@ final class RegistryLockPostActionTest {
google.registry.model.console.User consoleUser = google.registry.model.console.User consoleUser =
new google.registry.model.console.User.Builder() new google.registry.model.console.User.Builder()
.setEmailAddress("johndoe@theregistrar.com") .setEmailAddress("johndoe@theregistrar.com")
.setGaiaId("gaiaId")
.setUserRoles( .setUserRoles(
new UserRoles.Builder() new UserRoles.Builder()
.setRegistrarRoles( .setRegistrarRoles(

View file

@ -756,7 +756,6 @@
id bigserial not null, id bigserial not null,
update_timestamp timestamptz, update_timestamp timestamptz,
email_address text not null, email_address text not null,
gaia_id text,
registry_lock_password_hash text, registry_lock_password_hash text,
registry_lock_password_salt text, registry_lock_password_salt text,
global_role text not null, global_role text not null,
@ -852,7 +851,6 @@ create index reservedlist_name_idx on "ReservedList" (name);
create index spec11threatmatch_registrar_id_idx on "Spec11ThreatMatch" (registrar_id); create index spec11threatmatch_registrar_id_idx on "Spec11ThreatMatch" (registrar_id);
create index spec11threatmatch_tld_idx on "Spec11ThreatMatch" (tld); create index spec11threatmatch_tld_idx on "Spec11ThreatMatch" (tld);
create index spec11threatmatch_check_date_idx on "Spec11ThreatMatch" (check_date); create index spec11threatmatch_check_date_idx on "Spec11ThreatMatch" (check_date);
create index user_gaia_id_idx on "User" (gaia_id);
create index user_email_address_idx on "User" (email_address); create index user_email_address_idx on "User" (email_address);
alter table if exists "DelegationSignerData" alter table if exists "DelegationSignerData"