/** * Test various ACL action permissions for com_attachments for various users * * @dataProvider provider * * @param string $username The name of ther user (for error outputs) * @param int $admin correct 'core.admin' permission (0/1 interpreted as bool) * @param int $manage correct 'core.manage' permission (0/1 interpreted as bool) * @param int $create correct 'core.create' permission (0/1 interpreted as bool) * @param int $delete correct 'core.delete' permission (0/1 interpreted as bool) * @param int $edit_state correct 'core.edit.state' permission (0/1 interpreted as bool) * @param int $edit correct 'core.edit' permission (0/1 interpreted as bool) * @param int $edit_own correct 'core.edit.own' permission (0/1 interpreted as bool) * @param int $delete_own correct 'attachments.delete.own' permission (0/1 interpreted as bool) */ public function testActions($username, $admin, $manage, $create, $delete, $edit_state, $edit, $edit_own, $delete_own) { $user_id = JUserHelper::getUserId($username); $errmsg = "ERROR: ========> USERNAME={$username} does not exist!"; $this->assertNotEquals((int) $user_id, 0, $errmsg); $canDo = AttachmentsPermissions::getActions((int) $user_id); $errmsg = "----> Failed test for {$username} core.admin for com_attachments, " . " expected {$admin}, got " . $canDo->get('core.admin') . " for " . $username; $this->assertEquals($canDo->get('core.admin'), (bool) $admin, $errmsg); $errmsg = "----> Failed test for {$username} core.manage for com_attachments, " . " expected {$manage}, got " . $canDo->get('core.manage') . " for " . $username; $this->assertEquals($canDo->get('core.manage'), (bool) $manage, $errmsg); $errmsg = "----> Failed test for {$username} core.create for com_attachments, " . " expected {$create}, got " . $canDo->get('core.create') . " for " . $username; $this->assertEquals($canDo->get('core.create'), (bool) $create, $errmsg); $errmsg = "----> Failed test for {$username} core.delete for com_attachments, " . " expected {$delete}, got " . $canDo->get('core.delete') . " for " . $username; $this->assertEquals($canDo->get('core.delete'), (bool) $delete, $errmsg); $errmsg = "----> Failed test for {$username} core.edit.state for com_attachments, " . " expected {$edit_state}, got " . $canDo->get('core.edit.state') . " for " . $username; $this->assertEquals($canDo->get('core.edit.state'), (bool) $edit_state, $errmsg); $errmsg = "----> Failed test for {$username} core.edit for com_attachments, " . " expected {$edit}, got " . $canDo->get('core.edit') . " for " . $username; $this->assertEquals($canDo->get('core.edit'), (bool) $edit, $errmsg); $errmsg = "----> Failed test for {$username} core.edit.own for com_attachments, " . " expected {$edit_own}, got " . $canDo->get('core.edit.own') . " for " . $username; $this->assertEquals($canDo->get('core.edit.own'), (bool) $edit_own, $errmsg); $errmsg = "----> Failed test for {$username} attachments.delete.own for com_attachments, " . " expected {$delete_own}, got " . $canDo->get('attachments.delete.own') . " for " . $username; $this->assertEquals($canDo->get('attachments.delete.own'), (bool) $delete_own, $errmsg); }
/** * Setting the toolbar */ protected function addToolBar() { require_once JPATH_COMPONENT_ADMINISTRATOR . '/permissions.php'; $canDo = AttachmentsPermissions::getActions(); $toolbar = JToolBar::getInstance('toolbar'); JToolBarHelper::title(JText::_('ATTACH_ATTACHMENTS'), 'attachments.png'); if ($canDo->get('core.create')) { JToolBarHelper::addNew('attachment.add'); } if ($canDo->get('core.edit') or $canDo->get('core.edit.own')) { JToolBarHelper::editList('attachment.edit'); } if ($canDo->get('core.edit.state') or $canDo->get('attachments.edit.state.own')) { JToolBarHelper::divider(); JToolBarHelper::publishList('attachments.publish'); JToolBarHelper::unpublishList('attachments.unpublish'); } if ($canDo->get('core.delete') or $canDo->get('attachments.delete.own')) { JToolBarHelper::divider(); JToolBarHelper::deleteList('', 'attachments.delete'); } if ($canDo->get('core.admin')) { JToolBarHelper::divider(); JToolBarHelper::custom('params.edit', 'options', 'options', 'JTOOLBAR_OPTIONS', false); $icon_name = 'adminUtils'; if (version_compare(JVERSION, '3.0', 'ge')) { $icon_name = 'wrench'; } // Add a button for extra admin commands $toolbar->appendButton('Popup', $icon_name, 'ATTACH_UTILITIES', 'index.php?option=com_attachments&task=adminUtils&tmpl=component', 800, 500); } JToolBarHelper::divider(); // Manually add a help button for the help view $url = 'index.php?option=com_attachments&task=help&tmpl=component'; $help = ' ' . JText::_('JTOOLBAR_HELP') . ' '; if (version_compare(JVERSION, '3.0', 'ge')) { $link = "<button class=\"btn btn-small\" rel=\"help\" href=\"#\" "; $link .= "onclick=\"Joomla.popupWindow('{$url}', 'Help', 800, 650, 1)\"> "; $link .= "<i class=\"icon-question-sign\"></i>{$help}</button>"; } else { $link = '<a class="toolbar" rel="help" href="#" '; $link .= "onclick=\"Joomla.popupWindow('{$url}', 'Help', 800, 650, 1)\"> "; $link .= "<span class=\"icon-32-help\"> </span>{$help}</a>"; } $toolbar->appendButton('Custom', $link, 'toolbar-help'); }