[ZBX-8764] Undefined indexes and SQL errors in screen clock element for guest users Created: 2014 Sep 16 Updated: 2017 May 30 Resolved: 2014 Oct 02 |
|
Status: | Closed |
Project: | ZABBIX BUGS AND ISSUES |
Component/s: | Frontend (F) |
Affects Version/s: | 2.4.0rc1, 2.5.0 |
Fix Version/s: | 2.4.2rc1, 2.5.0 |
Type: | Incident report | Priority: | Critical |
Reporter: | Ivo Kurzemnieks | Assignee: | Unassigned |
Resolution: | Fixed | Votes: | 0 |
Labels: | clock, permissions, screen | ||
Remaining Estimate: | Not Specified | ||
Time Spent: | Not Specified | ||
Original Estimate: | Not Specified |
Description |
To reproduce:
reset() expects parameter 1 to be array, null given [screens.php:176 ? CView->render() ? include() ? CScreenBuilder->show() ? CScreenClock->get() ? reset() in C:\Development\zabbix\frontends\php\include\classes\screens\CScreenClock.php:42] Undefined index: value_type [screens.php:176 ? CView->render() ? include() ? CScreenBuilder->show() ? CScreenClock->get() ? CHistoryManager->getLast() in C:\Development\zabbix\frontends\php\include\classes\api\managers\CHistoryManager.php:41] Undefined index: [screens.php:176 ? CView->render() ? include() ? CScreenBuilder->show() ? CScreenClock->get() ? CHistoryManager->getLast() ? CHistoryManager::getTableName() in C:\Development\zabbix\frontends\php\include\classes\api\managers\CHistoryManager.php:72] Undefined index: itemid [screens.php:176 ? CView->render() ? include() ? CScreenBuilder->show() ? CScreenClock->get() ? CHistoryManager->getLast() in C:\Development\zabbix\frontends\php\include\classes\api\managers\CHistoryManager.php:42] Error in query [SELECT * FROM h WHERE h.itemid='' ORDER BY h.clock DESC LIMIT 1 OFFSET 0] [Table 'ivo_zabbix.h' doesn't exist] |
Comments |
Comment by Krists Krigers (Inactive) [ 2014 Sep 16 ] |
(1) String changes
kristsk RESOLVED. oleg.egorov Please fix "resource-less", as was been discussed kristsk RESOLVED in r49510. oleg.egorov CLOSED kristsk Added new string in r49560. oleg.egorov CLOSED |
Comment by Krists Krigers (Inactive) [ 2014 Sep 16 ] |
Fixed in r49066, branch svn://svn.zabbix.com/branches/dev/ZBX-8764 (copy of 2.4). |
Comment by Oleg Egorov (Inactive) [ 2014 Sep 17 ] |
(2) /** * Process screen. * * @return CDiv (screen inside container) */ public function get() { But new code is if (!$items) { return null; } And please fix this main issue, as was been discussed kristsk Reverted previous commit and fixed issue by adding permission check in screen.get API. Committed in r49097. RESOLVED. oleg.egorov CLOSED |
Comment by Oleg Egorov (Inactive) [ 2014 Sep 18 ] |
(3) Screen element: Clock 1. Select item Screen element should be removed with item kristsk RESOLVED in r49166. oleg.egorov CLOSED |
Comment by Oleg Egorov (Inactive) [ 2014 Sep 19 ] |
(4) Other issue, after item removing removed screen element clock with type local How to reproduce: kristsk RESOLVED in r49177. oleg.egorov Please try fix, as was discussed kristsk RESOLVED in r49242. oleg.egorov Same problem still exist in screenitem.create kristsk RESOLVED in r49291. oleg.egorov Problem still exist. Via API possible add resourceid screenitem.update { "screenid": "47", "resourcetype": "7", "caption": "", "url": "", "width": "500", "height": "100", "halign": "0", "valign": 0, "colspan": "1", "rowspan": "1", "max_columns": null, "dynamic": 0, "elements": 0, "sort_triggers": 0, "application": 0, "screenitemid": "161", "resourceid": 46 } kristsk RESOLVED in r49449. oleg.egorov CLOSED |
Comment by Oleg Egorov (Inactive) [ 2014 Sep 29 ] |
(5) Coding style issue if (isset($screenItem['style'])) { if ($screenItem['style'] == TIME_TYPE_HOST) { if (!$screenItem['resourceid']) { self::exception(ZBX_API_ERROR_PARAMETERS, _('No item ID provided for screen element.')); } $itemIds[$screenItem['resourceid']] = $screenItem['resourceid']; } else if ($screenItem['resourceid']) { self::exception(ZBX_API_ERROR_PARAMETERS, _('Resource ID provided for resource-less screen element.')); } } Unnecessary tab in if (isset($screenItem['style'])) { And ...else if... In CScreenItem.php:268-277 $dbScreenItems = $this->get(array( 'output' => array('screenitemid', 'screenid', 'x', 'y', 'rowspan', 'colspan', 'resourcetype', 'resourceid', 'style'), 'screenitemids' => $screenItemIds, 'editable' => true, 'preservekeys' => true )); $screenItems = $this->extendObjects($this->tableName(), $screenItems, array('screenid', 'x', 'y', 'rowspan', 'colspan', 'style')); Please change to: $dbScreenItems = $this->get(array( 'output' => array('screenitemid', 'screenid', 'x', 'y', 'rowspan', 'colspan', 'resourcetype', 'resourceid', 'style' ), 'screenitemids' => $screenItemIds, 'editable' => true, 'preservekeys' => true )); $screenItems = $this->extendObjects($this->tableName(), $screenItems, array('screenid', 'x', 'y', 'rowspan', 'colspan', 'style') ); kristsk RESOLVED in 49502. oleg.egorov CLOSED |
Comment by Oleg Egorov (Inactive) [ 2014 Sep 30 ] |
(6) Created screen item clock, Time type: host. Save it. As result: kristsk RESOLVED in r49508. oleg.egorov CLOSED |
Comment by Oleg Egorov (Inactive) [ 2014 Oct 02 ] |
(7) Create screen item, type "Clock", with "time type" "host", select host, save it, change "time type" to "server". kristsk RESOLVED in r49560. oleg.egorov CLOSED |
Comment by Oleg Egorov (Inactive) [ 2014 Oct 03 ] |
(8) Please document changes in API validation for resource ID kristsk RESOLVED. oleg.egorov CLOSED |
Comment by Oleg Egorov (Inactive) [ 2014 Oct 03 ] |
TESTED |
Comment by Krists Krigers (Inactive) [ 2014 Oct 08 ] |
Merged to:
|