Named operations bypass any normalization done by fields
Bug #400477 reported by
Curtis Hovey
This bug affects 2 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Triaged
|
Low
|
Unassigned | ||
lazr.restful |
Triaged
|
Low
|
Unassigned |
Bug Description
When calling named operations on the web service, the IField API is only used to validate the parameter.
The IField.set() method is never called (because there is no real context to which to assign the value). When IField do normalization in the set() method, that normalization won't happen on named operation parameters.
The fix would be to create a "parameters context object" which is bound to the field and call set() to set the parameters value. And then retrieve the value to use for the underlying method calls from this parameter object.
Changed in lazr.restful: | |
status: | New → Triaged |
importance: | Undecided → High |
Changed in launchpad-foundations: | |
status: | New → Triaged |
importance: | Undecided → High |
Changed in lazr.restful: | |
importance: | High → Low |
summary: |
- FieldMarshallers do not honor a Field's set() rules + Named operations bypass any normalization done by fields |
description: | updated |
tags: | added: api |
tags: | added: tech-debt |
To post a comment you must log in.
The create milestone form used the NoneableTextWidget to prevent meaningless code names from being created, but the field marshaller does not honour the rules, see bug 400268.