Page MenuHomePhabricator

Special:SetAliases (or SpecialModifyTerm) should properly validate / normalize label/alias input
Closed, ResolvedPublic

Description

Screenshop of https://www.wikidata.org/wiki/Q15709419?uselang=de

I set with https://www.wikidata.org/wiki/Special:SetAliases to the item https://www.wikidata.org/wiki/Q15709419 for the language de the alias " " (U+202F NARROW NO-BREAK SPACE). The interface of the item is now blocked in this language [1]. See screenshot.

[1] https://www.wikidata.org/wiki/Q15709419?uselang=de


Version: master
Severity: normal
Whiteboard: u=dev c=backend p=0
URL: https://www.wikidata.org/wiki/Q3058198?uselang=de

Attached:

wikidata_U_202f.png (727×789 px, 95 KB)

Details

Reference
bz60828

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 22 2014, 2:53 AM
bzimport set Reference to bz60828.
bzimport added a subscriber: Unknown Object (MLST).

The item Q15709419 was merged to Q3058198. I set with
https://www.wikidata.org/wiki/Special:SetAliases/Q3058198/de the alias " " (U+202F NARROW NO-BREAK SPACE) again. The problem is still the same.

Not allowed characters are ok, but it should be the same characters everywhere.

Screenshot of https://www.wikidata.org/wiki/Q3058198?uselang=de

Screenshot of https://www.wikidata.org/wiki/Q3058198?uselang=de

The alias with U+202F NARROW NO-BREAK SPACE is still not editable or removable.

Attached:

bug60828.png (327×1 px, 62 KB)

It no longer blocks the interface, but also it's not changeable... that's probably because:

22:07:27.510 $.trim( ' ' /* U+202F NARROW NO-BREAK SPACE */ ) === ''
22:07:27.516 true

We should probably use a trim function in JS and in PHP which do exactly the same (that might mean making NARROW NO-BREAK SPACE not usable as label/ alias).

Changing this bug, because it's only a result of invalid data... you shouldn't have been able to set that alias using the special page in the first place.

Lydia_Pintscher removed a subscriber: Unknown Object (MLST).
Lydia_Pintscher removed a subscriber: Unknown Object (MLST).

Set U+202F as alias: https://www.wikidata.org/wiki/?diff=247934139, the GUI still works.

The GUI still does not allow to edit or remove this alias:

T62828.2015-09-05.png (131×934 px, 6 KB)

hoo claimed this task.

I just tried setting the mentioned space as an alias and failed with both the API and the special pages. Therefore I think this is resolved… if there's another place where you still can set these aliases (or labels/ descriptions), please re-open.

The GUI still does not allow to edit or remove this alias:

T62828.2017-04-08.png (399×1 px, 42 KB)

I just removed all aliases which had the aforementioned value (U+202F). Given it's not possible to add any new values, I consider this done.

I can restore the U+202F and it is not possible to remove or edit this value with the GUI.

I can restore the U+202F and it is not possible to remove or edit this value with the GUI.

Sure, so just don't restore it. Restoring old revision is (partly) bypassing validation, that is known and expected here (yet, probably doesn't happen in the real world).

Aklapper removed hoo as the assignee of this task.Jun 19 2020, 4:26 PM

This task has been assigned to the same task owner for more than two years. Resetting task assignee due to inactivity, to decrease task cookie-licking and to get a slightly more realistic overview of plans. Please feel free to assign this task to yourself again if you still realistically work or plan to work on this task - it would be welcome!

For tips how to manage individual work in Phabricator (noisy notifications, lists of task, etc.), see https://phabricator.wikimedia.org/T228575#6237124 for available options.
(For the records, two emails were sent to assignee addresses before resetting assignees. See T228575 for more info and for potential feedback. Thanks!)

In T62828#3174937, @hoo wrote:

I can restore the U+202F and it is not possible to remove or edit this value with the GUI.

Sure, so just don't restore it. Restoring old revision is (partly) bypassing validation, that is known and expected here (yet, probably doesn't happen in the real world).

Agreed.