mirror of
https://github.com/google/nomulus.git
synced 2025-07-25 20:18:34 +02:00
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:
parent
1580555d30
commit
7a84844000
15 changed files with 12 additions and 51 deletions
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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() {
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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(
|
||||||
|
|
|
@ -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(
|
||||||
|
|
|
@ -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"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue