Пример #1
0
 /**
  * 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));
 }
Пример #2
0
 /**
  * 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));
 }
Пример #3
0
 * @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) {
Пример #4
0
?>
"><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>
Пример #5
0
 /**
  * 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;
     }
 }
Пример #6
0
 /**
  * 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&amp;view=plugins&amp;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));
 }
Пример #7
0
 /**
  * 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;
     }
 }