Fixes #10212 User email address should be unique (#10214)

This commit is contained in:
Suresh Srinivas 2023-02-15 21:04:23 -08:00 committed by GitHub
parent e67fe3a90b
commit 57093e583a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 1 deletions

View File

@ -0,0 +1,3 @@
-- Unique constraint for user email address
ALTER TABLE user_entity
ADD UNIQUE (email);

View File

@ -0,0 +1,3 @@
-- Unique constraint for user email address
ALTER TABLE user_entity
ADD UNIQUE (email);

View File

@ -15,6 +15,7 @@ package org.openmetadata.service.resources.teams;
import static java.util.List.of;
import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
import static javax.ws.rs.core.Response.Status.CONFLICT;
import static javax.ws.rs.core.Response.Status.CREATED;
import static javax.ws.rs.core.Response.Status.FORBIDDEN;
import static javax.ws.rs.core.Response.Status.NOT_FOUND;
@ -224,6 +225,17 @@ public class UserResourceTest extends EntityResourceTest<User, CreateUser> {
assertNotNull(create);
}
@Test
void test_userEmailUnique(TestInfo test) throws IOException {
// Create user with different optional fields
CreateUser create = createRequest(test, 1).withName("userEmailTest").withEmail("user@domainx.com");
createEntity(create, ADMIN_AUTH_HEADERS);
// Creating another user with the same email address must fail
create.withName("userEmailTest1");
assertResponse(() -> createEntity(create, ADMIN_AUTH_HEADERS), CONFLICT, "Entity already exists");
}
@Test
void put_validUser_200_ok() throws IOException {
// Create user with different optional fields
@ -950,7 +962,7 @@ public class UserResourceTest extends EntityResourceTest<User, CreateUser> {
// Add new users
String user2 = "userImportExport2,displayName2,,userImportExport2@domain.com,,,teamImportExport1,";
String user21 = "userImportExport21,displayName21,,userImportExport11@domain.com,,,teamImportExport11,";
String user21 = "userImportExport21,displayName21,,userImportExport21@domain.com,,,teamImportExport11,";
List<String> newRecords = listOf(user2, user21);
testImportExport("teamImportExport", UserCsv.HEADERS, createRecords, updateRecords, newRecords);