Skip to content

Commit 48c3f60

Browse files
committed
entity validation fix
1 parent e59fcc4 commit 48c3f60

File tree

5 files changed

+30
-4
lines changed

5 files changed

+30
-4
lines changed

src/main/java/org/seed/core/entity/EntityValidator.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -387,10 +387,11 @@ private void validateName(Entity entity, final ValidationErrors errors) {
387387
else if (!isNameLengthAllowed(entity.getName())) {
388388
errors.addOverlongName(getMaxNameLength());
389389
}
390-
else if (!NameUtils.containsAlphabet(entity.getName())) {
391-
errors.addIllegalName(entity.getName());
390+
else if (!NameUtils.containsAlphabet(entity.getInternalName()) ||
391+
NameUtils.isIllegalEntityName(entity.getInternalName())) {
392+
errors.addIllegalName(entity.getInternalName());
392393
}
393-
else if (NameUtils.startsWithNumber(entity.getName())) {
394+
else if (NameUtils.startsWithNumber(entity.getInternalName())) {
394395
errors.addError("val.illegal.namestartswithnumber");
395396
}
396397
}

src/main/java/org/seed/core/util/NameUtils.java

+7
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ public abstract class NameUtils {
5656
"1", "j", "ja", "on", "true", "y", "yes"
5757
};
5858

59+
private static final String ILLEGAL_ENTITYNAME = "entity";
60+
5961
private NameUtils() {}
6062

6163
public static boolean isKeyword(String name) {
@@ -66,6 +68,11 @@ public static boolean isSqlKeyword(String name) {
6668
return name != null && find(SQL_KEYWORDS, name);
6769
}
6870

71+
public static boolean isIllegalEntityName(String name) {
72+
return ILLEGAL_ENTITYNAME.equalsIgnoreCase(name) ||
73+
(name != null && find(ILLEGAL_FIELDNAMES, name));
74+
}
75+
6976
public static boolean isIllegalFieldName(String name) {
7077
return isKeyword(name) ||
7178
(name != null && find(ILLEGAL_FIELDNAMES, name));

src/main/java/org/seed/ui/zk/vm/admin/AdminEntityViewModel.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -789,7 +789,7 @@ public void selectOption(@BindingParam("option") String option) {
789789
}
790790
break;
791791

792-
case C.AUTOLAYOUT:
792+
case "autolayout":
793793
if (getOptions().isAutoLayout()) {
794794
entityMeta.setGeneric(false);
795795
entityMeta.setParentEntity(null);

src/test/java/org/seed/test/integration/entity/CreateEntityTest.java

+5
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ void testCreateEntity() {
4242
clickButton(tabpanel, "save");
4343
findValidationMessage(); // name is empty
4444

45+
findTextbox(tabpanel, "name").sendKeys("Entity");
46+
clickButton(tabpanel, "save");
47+
findValidationMessage(); // name is illegal
48+
49+
clearTextbox(tabpanel, "name");
4550
findTextbox(tabpanel, "name").sendKeys("IntegrationTest");
4651
saveEntity(tabpanel);
4752
}

src/test/java/org/seed/test/unit/util/NameUtilsTest.java

+13
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,19 @@ void testIsSqlKeyword() {
4848
assertTrue(NameUtils.isSqlKeyword("FROM"));
4949
}
5050

51+
@Test
52+
void testIsIllegalEntityName() {
53+
assertFalse(NameUtils.isIllegalEntityName(null));
54+
assertFalse(NameUtils.isIllegalEntityName(""));
55+
assertFalse(NameUtils.isIllegalEntityName("test"));
56+
assertFalse(NameUtils.isIllegalEntityName("entität"));
57+
58+
assertTrue(NameUtils.isIllegalEntityName("entity"));
59+
assertTrue(NameUtils.isIllegalEntityName("Entity"));
60+
assertTrue(NameUtils.isIllegalEntityName("id"));
61+
assertTrue(NameUtils.isIllegalEntityName("UID"));
62+
}
63+
5164
@Test
5265
void testIsIllegalFieldName() {
5366
assertFalse(NameUtils.isIllegalFieldName(null));

0 commit comments

Comments
 (0)