/** * Setting the toolbar * * @since 2.1.0 */ protected function addToolbar() { // Load specific css component JHtml::_('stylesheet', 'com_externallogin/administrator/externallogin.css', array(), true); // Set the toolbar JToolBarHelper::title(JText::_('COM_EXTERNALLOGIN_MANAGER_LOGS'), 'list-view'); $bar = JToolBar::getInstance('toolbar'); $bar->appendButton('Confirm', 'COM_EXTERNALLOGIN_MSG_LOGS_DELETE', 'delete', 'JTOOLBAR_DELETE', 'logs.delete', false); $bar->appendButton('Link', 'box-add', 'COM_EXTERNALLOGIN_TOOLBAR_LOGS_DOWNLOAD', 'index.php?option=com_externallogin&view=logs&format=csv'); JToolBarHelper::preferences('com_externallogin'); JHtml::_('sidebar.addentry', JText::_('COM_EXTERNALLOGIN_SUBMENU_SERVERS'), 'index.php?option=com_externallogin', false); JHtml::_('sidebar.addentry', JText::_('COM_EXTERNALLOGIN_SUBMENU_USERS'), 'index.php?option=com_externallogin&view=users', false); JHtml::_('sidebar.addentry', JText::_('COM_EXTERNALLOGIN_SUBMENU_LOGS'), 'index.php?option=com_externallogin&view=logs', true); JHtml::_('sidebar.addentry', JText::_('COM_EXTERNALLOGIN_SUBMENU_ABOUT'), 'index.php?option=com_externallogin&view=about', false); JHtml::_('sidebar.setaction', 'index.php?option=com_externallogin&view=logs'); JHtml::_('sidebar.addFilter', JText::_('COM_EXTERNALLOGIN_OPTION_SELECT_PRIORITY'), 'filter_priority', JHtml::_('select.options', ExternalloginHelper::getPriorities(), 'value', 'text', $this->state->get('filter.priority'), true)); JHtml::_('sidebar.addFilter', JText::_('JOPTION_SELECT_PUBLISHED'), 'filter_category', JHtml::_('select.options', ExternalloginHelper::getCategories(), 'value', 'text', $this->state->get('filter.category'), true)); }
/** * Setting the toolbar * * @since 2.1.0 */ protected function addToolbar() { // Load specific css component JHtml::_('stylesheet', 'com_externallogin/administrator/externallogin.css', array(), true); $bar = JToolBar::getInstance('toolbar'); // Set the toolbar JToolBarHelper::title(JText::_('COM_EXTERNALLOGIN_MANAGER_USERS'), 'users'); // Add a standard button. $bar->appendButton('Confirm', 'COM_EXTERNALLOGIN_TOOLBAR_ENABLE_JOOMLA_MSG', 'publish', 'COM_EXTERNALLOGIN_TOOLBAR_ENABLE_JOOMLA', 'users.enableJoomla', true); $bar->appendButton('Confirm', 'COM_EXTERNALLOGIN_TOOLBAR_DISABLE_JOOMLA_MSG', 'unpublish', 'COM_EXTERNALLOGIN_TOOLBAR_DISABLE_JOOMLA', 'users.disableJoomla', true); $bar->appendButton('Popup', 'publish', 'COM_EXTERNALLOGIN_TOOLBAR_ENABLE_EXTERNALLOGIN', 'index.php?option=com_externallogin&view=servers&layout=modal&tmpl=component', 875, 550, 0, 0, ''); JToolBarHelper::custom('users.disableExternallogin', 'unpublish', 'users-disable-externallogin', 'COM_EXTERNALLOGIN_TOOLBAR_DISABLE_EXTERNALLOGIN'); JToolBarHelper::preferences('com_externallogin'); JHtml::_('sidebar.setaction', 'index.php?option=com_externallogin&view=users'); JHtml::_('sidebar.addFilter', JText::_('COM_EXTERNALLOGIN_OPTION_SELECT_PLUGIN'), 'filter_plugin', JHtml::_('select.options', ExternalloginHelper::getPlugins(), 'value', 'text', $this->state->get('filter.plugin'), true)); JHtml::_('sidebar.addFilter', JText::_('COM_EXTERNALLOGIN_OPTION_SELECT_SERVER'), 'filter_server', JHtml::_('select.options', ExternalloginHelper::getServers(array('ignore_request' => true)), 'value', 'text', $this->state->get('filter.server'), true)); JHtml::_('sidebar.addFilter', JText::_('COM_EXTERNALLOGIN_OPTION_SELECT_JOOMLA'), 'filter_joomla', JHtml::_('select.options', JHtml::_('jgrid.publishedOptions', array('archived' => false, 'trash' => false, 'all' => false)), 'value', 'text', $this->state->get('filter.joomla'), true)); JHtml::_('sidebar.addFilter', JText::_('COM_EXTERNALLOGIN_OPTION_SELECT_EXTERNAL'), 'filter_external', JHtml::_('select.options', JHtml::_('jgrid.publishedOptions', array('archived' => false, 'trash' => false, 'all' => false)), 'value', 'text', $this->state->get('filter.external'), true)); }
* @package External Login * @subpackage Component * @copyright Copyright (C) 2008-2014 Christophe Demko, Ioannis Barounis, Alexandre Gandois. All rights reserved. * @author Christophe Demko * @author Ioannis Barounis * @author Alexandre Gandois * @link http://www.chdemko.com * @license http://www.gnu.org/licenses/gpl-2.0.html */ // No direct access to this file defined('_JEXEC') or die; // Include the component HTML helpers. JHtml::addIncludePath(JPATH_COMPONENT . '/helpers/html'); $user = JFactory::getUser(); $ordering = $this->state->get('list.ordering') == 'a.ordering'; $plugins = JArrayHelper::pivot(ExternalloginHelper::getPlugins(), 'value'); if (!count($this->items)) { ?> <tr class="row<?php echo $i % 2; ?> "> <td colspan="6" class="center"> <?php echo JText::_('COM_EXTERNALLOGIN_NO_RECORDS'); ?> </td> </tr> <?php } else { foreach ($this->items as $i => $item) {
?> "><i class="icon-search"></i></button> <button type="button" class="btn hasTooltip" title="<?php echo JHtml::tooltipText('JSEARCH_FILTER_CLEAR'); ?> " onclick="document.id('filter_search').value='';this.form.submit();"><i class="icon-remove"></i></button> </div> </div> <div class="filter-select fltrt"> <select name="filter_plugin" class="inputbox" onchange="this.form.submit()"> <option value=""><?php echo JText::_('COM_EXTERNALLOGIN_OPTION_SELECT_PLUGIN'); ?> </option> <?php echo JHtml::_('select.options', ExternalloginHelper::getPlugins(), 'value', 'text', $this->state->get('filter.plugin'), true); ?> </select> <select name="filter_published" class="inputbox" onchange="this.form.submit()"> <option value=""><?php echo JText::_('JOPTION_SELECT_PUBLISHED'); ?> </option> <?php echo JHtml::_('select.options', JHtml::_('jgrid.publishedOptions'), 'value', 'text', $this->state->get('filter.published'), true); ?> </select> </div> </fieldset> <div class="clr"></div>
/** * Upload users */ public function upload($form) { // TODO To be replaced by JInput (buggy at that time) $files = JRequest::getVar('jform', null, 'files', 'array'); $sid = (int) $form['id']; if ($files['type']['file'] == 'text/csv') { $handle = fopen($files['tmp_name']['file'], "r"); do { $data = fgetcsv($handle); if ($data && count($data) == 4) { $user = JUser::getInstance(); if ($id = intval(JUserHelper::getUserId($data[0]))) { $user->load($id); } $user->username = $data[0]; $user->name = $data[1]; $user->email = $data[2]; $user->groups = array(); $groups = explode(',', $data[3]); foreach ($groups as $group) { if (is_numeric($group)) { $user->groups[] = intval($group); } else { $user->groups = array_merge((array) $user->groups, (array) ExternalloginHelper::getGroups($group)); } } if ($user->save()) { $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->insert('#__externallogin_users')->columns('server_id, user_id')->values((int) $sid . ',' . (int) $user->id); $db->setQuery($query); $db->execute(); } } } while ($data); fclose($handle); return true; } else { $this->setError('COM_EXTERNALLOGIN_ERROR_BAD_FILE'); return false; } }
/** * Setting the toolbar * * @since 2.0.0 */ protected function addToolbar() { // Load specific css component JHtml::_('stylesheet', 'com_externallogin/administrator/externallogin.css', array(), true); // Set the toolbar JToolBarHelper::title(JText::_('COM_EXTERNALLOGIN_MANAGER_SERVERS'), 'database'); $bar = JToolBar::getInstance('toolbar'); $bar->appendButton('Popup', 'new', 'JTOOLBAR_NEW', 'index.php?option=com_externallogin&view=plugins&tmpl=component', 875, 550, 0, 0, ''); JToolBarHelper::editList('server.edit'); JToolBarHelper::publishList('servers.publish'); JToolBarHelper::unpublishList('servers.unpublish'); JToolBarHelper::checkin('servers.checkin'); if ($this->state->get('filter.published') == -2) { JToolBarHelper::deleteList('COM_EXTERNALLOGIN_MSG_SERVERS_DELETE', 'servers.delete'); } else { JToolBarHelper::archiveList('servers.archive'); JToolBarHelper::trash('servers.trash'); } JToolBarHelper::preferences('com_externallogin'); JHtml::_('sidebar.addentry', JText::_('COM_EXTERNALLOGIN_SUBMENU_SERVERS'), 'index.php?option=com_externallogin', true); JHtml::_('sidebar.addentry', JText::_('COM_EXTERNALLOGIN_SUBMENU_USERS'), 'index.php?option=com_externallogin&view=users', false); JHtml::_('sidebar.addentry', JText::_('COM_EXTERNALLOGIN_SUBMENU_LOGS'), 'index.php?option=com_externallogin&view=logs', false); JHtml::_('sidebar.addentry', JText::_('COM_EXTERNALLOGIN_SUBMENU_ABOUT'), 'index.php?option=com_externallogin&view=about', false); JHtml::_('sidebar.setaction', 'index.php?option=com_externallogin&view=servers'); JHtml::_('sidebar.addFilter', JText::_('COM_EXTERNALLOGIN_OPTION_SELECT_PLUGIN'), 'filter_plugin', JHtml::_('select.options', ExternalloginHelper::getPlugins(), 'value', 'text', $this->state->get('filter.plugin'), true)); JHtml::_('sidebar.addFilter', JText::_('JOPTION_SELECT_PUBLISHED'), 'filter_published', JHtml::_('select.options', JHtml::_('jgrid.publishedOptions'), 'value', 'text', $this->state->get('filter.published'), true)); }
/** * External Login event * * @param JAuthenticationResponse &$response Response to the login process * * @return void|true * * @since 2.0.0 */ public function onExternalLogin(&$response) { if (isset($this->success)) { // Prepare response $server = $this->server; $params = $server->params; $sid = $server->id; $response->status = JAuthentication::STATUS_SUCCESS; $response->server = $server; $response->type = 'system.caslogin'; $response->message = ''; // Compute username $response->username = $this->xpath->evaluate($params->get('username_xpath'), $this->success); // Compute email $response->email = $this->xpath->evaluate($params->get('email_xpath'), $this->success); // Compute name $response->fullname = $this->xpath->evaluate($params->get('name_xpath'), $this->success); // Compute groups if ($params->get('group_xpath')) { $groups = $this->xpath->query($params->get('group_xpath'), $this->success); if ($groups && $groups->length > 0) { // Log message if ($params->get('log_groups', 0)) { JLog::add(new ExternalloginLogEntry('Successful detection of groups for user "' . $response->username . '" on server ' . $sid, JLog::INFO, 'system-caslogin-groups')); } $response->groups = array(); // Loop on each group attribute for ($i = 0; $i < $groups->length; $i++) { $group = (string) $groups->item($i)->nodeValue; if (is_numeric($group) && $params->get('group_integer', 0)) { // Log message if ($params->get('log_groups', 0)) { JLog::add(new ExternalloginLogEntry('Found integer group ' . $group . ' of groups for user "' . $response->username . '" on server ' . $sid, JLog::INFO, 'system-caslogin-groups')); } // Group is numeric $dbo = JFactory::getDbo(); $query = $dbo->getQuery(true); $query->select('id')->from('#__usergroups')->where('id = ' . (int) $group); $dbo->setQuery($query); if ($dbo->loadResult()) { // Log message if ($params->get('log_groups', 0)) { JLog::add(new ExternalloginLogEntry('Added integer group ' . $group . ' of groups for user "' . $response->username . '" on server ' . $sid, JLog::INFO, 'system-caslogin-groups')); } $response->groups[] = $group; } } else { // Log message if ($params->get('log_groups', 0)) { JLog::add(new ExternalloginLogEntry('Found string group(s) "' . $group . '" for user "' . $response->username . '" on server ' . $sid, JLog::INFO, 'system-caslogin-groups')); } // Group is not numeric, extract the groups $newgroups = (array) ExternalloginHelper::getGroups($group, $params->get('group_separator', '')); $response->groups = array_merge($response->groups, $newgroups); // Log message if ($params->get('log_groups', 0)) { if (empty($newgroups)) { JLog::add(new ExternalloginLogEntry('No Joomla! groups found from "' . $group . '" on server ' . $sid, JLog::INFO, 'system-caslogin-groups')); } else { JLog::add(new ExternalloginLogEntry('Added groups (' . implode(',', $newgroups) . ') for user "' . $response->username . '" on server ' . $sid, JLog::INFO, 'system-caslogin-groups')); } } } } } else { // Log message if ($params->get('log_groups', 0)) { JLog::add(new ExternalloginLogEntry('Unsuccessful detection of groups for user "' . $response->username . '" on server ' . $sid, JLog::WARNING, 'system-caslogin-groups')); } } } return true; } }