Changeset View
Changeset View
Standalone View
Standalone View
src/applications/search/engine/PhabricatorProfileMenuEngine.php
Show First 20 Lines • Show All 129 Lines • ▼ Show 20 Lines | if (!$item_id) { | ||||
$item_id = $request->getURIData('id'); | $item_id = $request->getURIData('id'); | ||||
} | } | ||||
$view_list = $this->newProfileMenuItemViewList(); | $view_list = $this->newProfileMenuItemViewList(); | ||||
if ($is_view) { | if ($is_view) { | ||||
$selected_item = $this->selectViewItem($view_list, $item_id); | $selected_item = $this->selectViewItem($view_list, $item_id); | ||||
} else { | } else { | ||||
if (!strlen($item_id)) { | if (!phutil_nonempty_scalar($item_id)) { | ||||
valerio.bozzolan: It seems `$item_id` is a numeric value when populated, like `"36"`. For example when editing a… | |||||
$item_id = self::ITEM_MANAGE; | $item_id = self::ITEM_MANAGE; | ||||
} | } | ||||
$selected_item = $this->selectEditItem($view_list, $item_id); | $selected_item = $this->selectEditItem($view_list, $item_id); | ||||
} | } | ||||
switch ($item_action) { | switch ($item_action) { | ||||
case 'view': | case 'view': | ||||
// If we were not able to select an item, we're still going to render | // If we were not able to select an item, we're still going to render | ||||
▲ Show 20 Lines • Show All 1,215 Lines • Show Last 20 Lines |
Content licensed under Creative Commons Attribution-ShareAlike 4.0 (CC-BY-SA) unless otherwise noted; code licensed under Apache 2.0 or other open source licenses. · CC BY-SA 4.0 · Apache 2.0
It seems $item_id is a numeric value when populated, like "36". For example when editing a specific menu item.
The risk of phutil_nonempty_string() in this case is to break a Conduit API consumer that sends a clean numerical $item_id ) 36.
To do not introduce unexpected regressions, I think it's better to use phutil_nonempty_scalar() that is a bit more permissive on primitive types like integers.