'zabbix.php?action=dashboard.view', 'title' => 'Dashboard', 'header' => 'Global view', 'users' => [ 'guest' => true, 'user-zabbix' => true, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=problem.view', 'title' => 'Problems', 'header' => 'Problems', 'users' => [ 'guest' => true, 'user-zabbix' => true, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=web.view', 'title' => 'Web monitoring', 'header' => 'Web monitoring', 'users' => [ 'guest' => true, 'user-zabbix' => true, 'admin-zabbix' => true ] ]], [[ 'url' => 'httpdetails.php?httptestid=94', 'title' => 'Details of web scenario', 'no_permissions_to_object' => true, 'users' => [ 'guest' => true, 'user-zabbix' => true, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=latest.view', 'title' => 'Latest data', 'header' => 'Latest data', 'users' => [ 'guest' => true, 'user-zabbix' => true, 'admin-zabbix' => true ] ]], [[ 'url' => 'history.php?action=showgraph&itemids[]=23296', 'title' => 'History [refreshed every 30 sec.]', 'no_permissions_to_object' => true, 'users' => [ 'guest' => true, 'user-zabbix' => true, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=charts.view', 'title' => 'Custom graphs', 'header' => 'Graphs', 'users' => [ 'guest' => true, 'user-zabbix' => true, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=charts.view&filter_hostids%5B0%5D=10084&filter_show=1&filter_set=1', 'title' => 'Custom graphs', 'no_permissions_to_object' => true, 'users' => [ 'guest' => true, 'user-zabbix' => true, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=map.view', 'title' => 'Configuration of network maps', 'header' => 'Maps', 'users' => [ 'guest' => true, 'user-zabbix' => true, 'admin-zabbix' => true ] ]], [[ 'url' => 'sysmaps.php', 'title' => 'Configuration of network maps', 'header' => 'Maps', 'users' => [ 'guest' => true, 'user-zabbix' => true, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=map.view&sysmapid=1', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'zabbix.php?action=discovery.view', 'title' => 'Status of discovery', 'header' => 'Status of discovery', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=service.list', 'title' => 'Services', 'header' => 'Services', 'users' => [ 'guest' => true, 'user-zabbix' => true, 'admin-zabbix' => true ] ]], // Inventory [[ 'url' => 'hostinventoriesoverview.php', 'title' => 'Host inventory overview', 'header' => 'Host inventory overview', 'users' => [ 'guest' => true, 'user-zabbix' => true, 'admin-zabbix' => true ] ]], [[ 'url' => 'hostinventories.php', 'title' => 'Host inventory', 'header' => 'Host inventory', 'users' => [ 'guest' => true, 'user-zabbix' => true, 'admin-zabbix' => true ] ]], // Reports [[ 'url' => 'zabbix.php?action=report.status', 'title' => 'System information', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'report2.php', 'title' => 'Availability report', 'header' => 'Availability report', 'users' => [ 'guest' => true, 'user-zabbix' => true, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=toptriggers.list', 'title' => 'Top 100 triggers', 'header' => 'Top 100 triggers', 'users' => [ 'guest' => true, 'user-zabbix' => true, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=auditlog.list', 'title' => 'Audit log', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'zabbix.php?action=actionlog.list', 'title' => 'Action log', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'report4.php', 'title' => 'Notification report', 'header' => 'Notifications', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], // Configuration [[ 'url' => 'zabbix.php?action=hostgroup.list', 'title' => 'Configuration of host groups', 'header' => 'Host groups', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=hostgroup.edit&groupid=4', 'title' => 'Configuration of host groups', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'zabbix.php?action=hostgroup.edit', 'title' => 'Configuration of host group', 'header' => 'New host group', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=templategroup.list', 'title' => 'Configuration of template groups', 'header' => 'Template groups', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=templategroup.edit&groupid=1', 'title' => 'Configuration of template groups', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'zabbix.php?action=templategroup.edit', 'title' => 'Configuration of template group', 'header' => 'New template group', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=template.list', 'title' => 'Configuration of templates', 'header' => 'Templates', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], [[ 'url' => self::HOST_LIST_PAGE, 'title' => 'Configuration of hosts', 'header' => 'Hosts', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=host.edit', 'title' => 'Configuration of host', 'header' => 'New host', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], [[ 'url' => 'items.php?context=host', 'title' => 'Configuration of items', 'header' => 'Items', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], [[ 'url' => 'triggers.php?context=host', 'title' => 'Configuration of triggers', 'header' => 'Triggers', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], [[ 'url' => 'graphs.php?context=host', 'title' => 'Configuration of graphs', 'header' => 'Graphs', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], [[ 'url' => 'host_discovery.php?context=host&hostid=10084', 'title' => 'Configuration of discovery rules', 'no_permissions_to_object' => true, 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], [[ 'url' => 'httpconf.php?context=host', 'title' => 'Configuration of web monitoring', 'header' => 'Web monitoring', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=maintenance.list', 'title' => 'Configuration of maintenance periods', 'header' => 'Maintenance periods', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=action.list&eventsource=0', 'title' => 'Configuration of actions', 'header' => 'Trigger actions', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=action.list&eventsource=1', 'title' => 'Configuration of actions', 'header' => 'Discovery actions', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=action.list&eventsource=2', 'title' => 'Configuration of actions', 'header' => 'Autoregistration actions', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=action.list&eventsource=3', 'title' => 'Configuration of actions', 'header' => 'Internal actions', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=action.list&eventsource=4', 'title' => 'Configuration of actions', 'header' => 'Service actions', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=correlation.list', 'title' => 'Event correlation rules', 'header' => 'Event correlation', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'zabbix.php?action=discovery.list', 'title' => 'Configuration of discovery rules', 'header' => 'Discovery rules', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=service.list.edit', 'title' => 'Services', 'header' => 'Services', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => true ] ]], // Administration [[ 'url' => 'zabbix.php?action=gui.edit', 'title' => 'Configuration of GUI', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'zabbix.php?action=housekeeping.edit', 'title' => 'Configuration of housekeeping', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'zabbix.php?action=image.list', 'title' => 'Configuration of images', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'zabbix.php?action=iconmap.list', 'title' => 'Configuration of icon mapping', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'zabbix.php?action=regex.list', 'title' => 'Configuration of regular expressions', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'zabbix.php?action=macros.edit', 'title' => 'Configuration of macros', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'zabbix.php?action=trigdisplay.edit', 'title' => 'Configuration of trigger displaying options', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'zabbix.php?action=miscconfig.edit', 'title' => 'Other configuration parameters', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'zabbix.php?action=proxy.list', 'title' => 'Configuration of proxies', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'zabbix.php?action=authentication.edit', 'title' => 'Authentication', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'zabbix.php?action=usergroup.list', 'title' => 'Configuration of user groups', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'zabbix.php?action=user.list', 'title' => 'Configuration of users', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'zabbix.php?action=mediatype.list', 'title' => 'Configuration of media types', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'zabbix.php?action=script.list', 'title' => 'Configuration of scripts', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], [[ 'url' => 'zabbix.php?action=queue.overview', 'title' => 'Queue [refreshed every 30 sec.]', 'users' => [ 'guest' => false, 'user-zabbix' => false, 'admin-zabbix' => false ] ]], // Misc [[ 'url' => 'zabbix.php?action=search&search=server', 'title' => 'Search', 'header' => 'Search: server', 'users' => [ 'guest' => true, 'user-zabbix' => true, 'admin-zabbix' => true ] ]], [[ 'url' => 'zabbix.php?action=userprofile.edit', 'title' => 'User profile', 'header' => 'User profile: ', 'users' => [ 'guest' => false, 'user-zabbix' => true, 'admin-zabbix' => true ] ]] ]; } /** * @dataProvider data */ public function testUrlUserPermissions_Users($data) { foreach ($data['users'] as $alias => $user) { switch ($alias) { case 'admin-zabbix' : $this->authenticateUser('09e7d4286dfdca4ba7be15e0f3b2b55c', 40); break; case 'user-zabbix' : $this->authenticateUser('09e7d4286dfdca4ba7be15e0f3b2b55d', 50); break; } if ($user && !array_key_exists('no_permissions_to_object', $data)) { $this->zbxTestOpen($data['url']); $this->zbxTestCheckTitle($data['title']); if ($data['url'] === 'zabbix.php?action=userprofile.edit') { $this->zbxTestCheckHeader($data['header'].$alias); } else { $this->zbxTestCheckHeader($data['header']); } } elseif ($user && array_key_exists('no_permissions_to_object', $data) ) { $this->zbxTestOpen($data['url']); $this->zbxTestCheckTitle($data['title']); $this->zbxTestWaitUntilMessageTextPresent('msg-bad', 'No permissions to referred object or it does not exist!'); } else { $this->zbxTestOpen($data['url']); $this->zbxTestWaitUntilMessageTextPresent('msg-bad', 'Access denied'); $this->zbxTestAssertElementText("//ul/li[1]", 'You are logged in as "'.$alias.'". You have no permissions to access this page.'); $this->zbxTestAssertElementText("//ul/li[2]", 'If you think this message is wrong, please consult your administrators about getting the necessary permissions.'); } $this->webDriver->manage()->deleteAllCookies(); } } /** * @onBefore addGuestToDisabledGroup * @onAfter removeGuestFromDisabledGroup * * @dataProvider data */ public function testUrlUserPermissions_DisabledGuest($data) { $this->zbxTestOpen($data['url']); $this->zbxTestWaitUntilMessageTextPresent('msg-bad', 'You are not logged in'); $this->zbxTestAssertElementText("//ul/li[1]", 'You must login to view this page.'); $this->zbxTestAssertElementText("//ul/li[2]", 'Possibly the session has expired or the password was changed.'); $this->zbxTestAssertElementText("//ul/li[3]", 'If you think this message is wrong, please consult your administrators about getting the necessary permissions.'); } /** * Guest user needs to be out of "Disabled" group to have access to frontend. */ public function removeGuestFromDisabledGroup() { DBexecute('DELETE FROM users_groups WHERE userid=2 AND usrgrpid=9'); } public static function addGuestToDisabledGroup() { DBexecute('INSERT INTO users_groups (id, usrgrpid, userid) VALUES (1552, 9, 2)'); } }