There are 3 comments.
 
 
XWiki Platform / cid:jira-generated-image-avatar-4b036cd6-6f6d-4d5b-99ec-ec4ffcf129e5 XWIKI-23771 Open

AWM: Numeric field accepts invalid characters, causing server error on edit

 
View issue   ยท   Add comment
 

3 comments

 
cid:jira-generated-image-avatar-db867176-ebb1-47b1-9dec-d7ea603c93f3 Charpentier Lucas on 02/Jul/26 16:21
 

AWM numeric fields are backed by `com.xpn.xwiki.objects.classes.NumberClass`. Its `displayEdit()` (`xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/objects/classes/NumberClass.java:201-219`) renders a plain `<input type="text">` with no HTML5 `type="number"`, no `pattern`/`inputmode`, and no JS validator, so nothing stops a user from typing arbitrary text before submitting.

 
cid:jira-generated-image-avatar-db867176-ebb1-47b1-9dec-d7ea603c93f3 Charpentier Lucas on 02/Jul/26 16:23
 
AWM numeric fields are backed by ` {{ com.xpn.xwiki.objects.classes.NumberClass ` }} . Its ` {{ displayEdit() ` (` }} at https://github.com/ xwiki /xwiki -platform /blob/e6c79ded04f91b9299eff797f58dcd748e97f37c/xwiki - platform- core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/objects/classes/NumberClass.java :201 #L202 - 219`) L219 renders a plain `< input with  {{ type="text" >` with no HTML5 ` }} ({{ type="number" ` }} could be used here) , no ` {{ pattern ` }} / ` {{ inputmode ` }} , and no JS javascript validator, so nothing stops a user from typing arbitrary text before submitting.
 
cid:jira-generated-image-avatar-db867176-ebb1-47b1-9dec-d7ea603c93f3 Charpentier Lucas on 02/Jul/26 16:24
 
AWM numeric fields are backed by {{com.xpn.xwiki.objects.classes.NumberClass}}. Its {{displayEdit()}} at https://github.com/xwiki/xwiki-platform/blob/e6c79ded04f91b9299eff797f58dcd748e97f37c/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/objects/classes/NumberClass.java#L202-L219 renders a plain input with  {{type="text"}} ({{type="number"}} could be used here), no {{pattern}}/{{inputmode}}, and no javascript validator, so nothing stops a user from typing arbitrary text before submitting.

Validation happens only server side after submission.