From ed6bca19750f92961ea047af064a3dc5ea894b30 Mon Sep 17 00:00:00 2001 From: Amol Thite Date: Fri, 27 Jul 2018 15:07:29 +0530 Subject: [PATCH 01/24] Revamp mapping view --- src/administrator/controllers/mapping.php | 25 +- src/administrator/controllers/mappings.php | 91 +---- src/administrator/helpers/subusers.php | 59 +-- src/administrator/models/fields/action.php | 61 ++++ src/administrator/models/fields/role.php | 31 +- .../models/forms/filter_mappings.xml | 25 ++ .../models/forms/filter_roles.xml | 25 ++ src/administrator/models/forms/mapping.xml | 80 ++-- src/administrator/models/mapping.php | 160 +------- src/administrator/models/mappings.php | 129 ++----- src/administrator/models/roles.php | 78 +--- src/administrator/views/action/tmpl/edit.php | 1 - src/administrator/views/action/view.html.php | 106 ++++-- src/administrator/views/mapping/tmpl/edit.php | 115 ++---- src/administrator/views/mapping/view.html.php | 125 ++++--- .../views/mappings/tmpl/default.php | 341 ++++++------------ .../views/mappings/view.html.php | 176 ++++----- src/administrator/views/role/view.html.php | 108 +++--- .../views/roles/tmpl/default.php | 336 ++++++----------- src/administrator/views/roles/view.html.php | 172 ++++----- src/administrator/views/user/view.html.php | 108 +++--- 21 files changed, 943 insertions(+), 1409 deletions(-) create mode 100644 src/administrator/models/fields/action.php create mode 100644 src/administrator/models/forms/filter_mappings.xml create mode 100644 src/administrator/models/forms/filter_roles.xml diff --git a/src/administrator/controllers/mapping.php b/src/administrator/controllers/mapping.php index db6c300..fb3c37f 100755 --- a/src/administrator/controllers/mapping.php +++ b/src/administrator/controllers/mapping.php @@ -1,32 +1,21 @@ - * @copyright Copyright (c) 2009-2017 TechJoomla, Tekdi Technologies Pvt. Ltd. All rights reserved. + * @package Subusers + * + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ -// No direct access defined('_JEXEC') or die; -jimport('joomla.application.component.controllerform'); +use Joomla\CMS\MVC\Controller\FormController; /** * Mapping controller class. * - * @since 1.6 + * @since 1.0.0 */ -class SubusersControllerMapping extends JControllerForm +class SubusersControllerMapping extends FormController { - /** - * Constructor - * - * @throws Exception - */ - public function __construct() - { - $this->view_list = 'mappings'; - parent::__construct(); - } } diff --git a/src/administrator/controllers/mappings.php b/src/administrator/controllers/mappings.php index c441e65..abb94d1 100755 --- a/src/administrator/controllers/mappings.php +++ b/src/administrator/controllers/mappings.php @@ -1,59 +1,23 @@ - * @copyright Copyright (c) 2009-2017 TechJoomla, Tekdi Technologies Pvt. Ltd. All rights reserved. + * @package Subusers + * + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ -// No direct access. defined('_JEXEC') or die; -jimport('joomla.application.component.controlleradmin'); - -use Joomla\Utilities\ArrayHelper; +use Joomla\CMS\MVC\Controller\AdminController; /** * Mappings list controller class. * - * @since 1.6 + * @since 1.0.0 */ -class SubusersControllerMappings extends JControllerAdmin +class SubusersControllerMappings extends AdminController { - /** - * Method to clone existing Mappings - * - * @return void - */ - public function duplicate() - { - // Check for request forgeries - Jsession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); - - // Get id(s) - $pks = $this->input->post->get('cid', array(), 'array'); - - try - { - if (empty($pks)) - { - throw new Exception(JText::_('COM_SUBUSERS_NO_ELEMENT_SELECTED')); - } - - ArrayHelper::toInteger($pks); - $model = $this->getModel(); - $model->duplicate($pks); - $this->setMessage(Jtext::_('COM_SUBUSERS_ITEMS_SUCCESS_DUPLICATED')); - } - catch (Exception $e) - { - JFactory::getApplication()->enqueueMessage($e->getMessage(), 'warning'); - } - - $this->setRedirect('index.php?option=com_subusers&view=mappings'); - } - /** * Proxy for getModel. * @@ -61,47 +25,12 @@ public function duplicate() * @param string $prefix Optional. Class prefix * @param array $config Optional. Configuration array for model * - * @return object The Model + * @return \Joomla\CMS\MVC\Model\BaseDatabaseModel|boolean The Model * - * @since 1.6 + * @since 1.0.0 */ public function getModel($name = 'mapping', $prefix = 'SubusersModel', $config = array()) { - $model = parent::getModel($name, $prefix, array('ignore_request' => true)); - - return $model; - } - - /** - * Method to save the submitted ordering values for records via AJAX. - * - * @return void - * - * @since 3.0 - */ - public function saveOrderAjax() - { - // Get the input - $input = JFactory::getApplication()->input; - $pks = $input->post->get('cid', array(), 'array'); - $order = $input->post->get('order', array(), 'array'); - - // Sanitize the input - ArrayHelper::toInteger($pks); - ArrayHelper::toInteger($order); - - // Get the model - $model = $this->getModel(); - - // Save the ordering - $return = $model->saveorder($pks, $order); - - if ($return) - { - echo "1"; - } - - // Close the application - JFactory::getApplication()->close(); + return parent::getModel($name, $prefix, array('ignore_request' => true)); } } diff --git a/src/administrator/helpers/subusers.php b/src/administrator/helpers/subusers.php index ec16945..972e257 100755 --- a/src/administrator/helpers/subusers.php +++ b/src/administrator/helpers/subusers.php @@ -1,19 +1,17 @@ - * @copyright Copyright (C) 2005 - 2014. All rights reserved. + * @package Subusers + * + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ -// No direct access -defined('_JEXEC') or die; +defined('_JEXEC') or die(); /** * Subusers helper. * - * @since 1.6 + * @since 1.0.0 */ class SubusersHelper { @@ -26,46 +24,9 @@ class SubusersHelper */ public static function addSubmenu($vName = '') { -JHtmlSidebar::addEntry( - JText::_('COM_SUBUSERS_TITLE_ROLES'), - 'index.php?option=com_subusers&view=roles', - $vName == 'roles' - ); -JHtmlSidebar::addEntry( - JText::_('COM_SUBUSERS_TITLE_ACTIONS'), - 'index.php?option=com_subusers&view=actions', - $vName == 'actions' - ); -JHtmlSidebar::addEntry( - JText::_('COM_SUBUSERS_TITLE_USERS'), - 'index.php?option=com_subusers&view=users', - $vName == 'users' - ); - } - - /** - * Gets a list of the actions that can be performed. - * - * @return JObject - * - * @since 1.6 - */ - public static function getActions() - { - $user = JFactory::getUser(); - $result = new JObject; - - $assetName = 'com_subusers'; - - $actions = array( - 'core.admin', 'core.manage', 'core.create', 'core.edit', 'core.edit.own', 'core.edit.state', 'core.delete' - ); - - foreach ($actions as $action) - { - $result->set($action, $user->authorise($action, $assetName)); - } - - return $result; + JHtmlSidebar::addEntry(JText::_('COM_SUBUSERS_TITLE_ROLES'), 'index.php?option=com_subusers&view=roles', $vName == 'roles'); + JHtmlSidebar::addEntry(JText::_('COM_SUBUSERS_TITLE_ACTIONS'), 'index.php?option=com_subusers&view=actions', $vName == 'actions'); + JHtmlSidebar::addEntry(JText::_('COM_SUBUSERS_TITLE_MAPPINGS'), 'index.php?option=com_subusers&view=mappings', $vName == 'mappings'); + JHtmlSidebar::addEntry(JText::_('COM_SUBUSERS_TITLE_USERS'), 'index.php?option=com_subusers&view=users', $vName == 'users'); } } diff --git a/src/administrator/models/fields/action.php b/src/administrator/models/fields/action.php new file mode 100644 index 0000000..d3db3ee --- /dev/null +++ b/src/administrator/models/fields/action.php @@ -0,0 +1,61 @@ + + * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +defined('_JEXEC') or die(); +use Joomla\CMS\Factory; +use Joomla\CMS\HTML\HTMLHelper; +use Joomla\CMS\Language\Text; + +JFormHelper::loadFieldClass('list'); + +/** + * Supports an HTML select list of Roles + * + * @since __DEPLOY_VERSION__ + */ +class JFormFieldAction extends JFormFieldList +{ + /** + * The form field type. + * + * @var string + * @since __DEPLOY_VERSION__ + */ + protected $type = 'action'; + + /** + * Method to get list of role options. + * + * @return array role An array of HTMLHelper options + * + * @since __DEPLOY_VERSION__ + */ + protected function getOptions() + { + $jinput = Factory::getApplication()->input; + $client = $jinput->get('client', '', 'STRING'); + + $rolesModel = RBACL::model("actions", array("ignore_request" => true)); + $rolesModel->setState('filter.client', $client); + $results = $rolesModel->getItems(); + + $options = array(); + $options[] = HTMLHelper::_('select.option', '', Text::_('COM_SUBUSERS_FORM_LBL_SELECT_ACTION')); + + if (!empty($results)) + { + foreach ($results as $result) + { + $options[] = HTMLHelper::_('select.option', $result->id, $result->name); + } + } + + return $options; + } +} diff --git a/src/administrator/models/fields/role.php b/src/administrator/models/fields/role.php index 872bbc1..7d3545a 100644 --- a/src/administrator/models/fields/role.php +++ b/src/administrator/models/fields/role.php @@ -7,15 +7,17 @@ * @license GNU General Public License version 2 or later; see LICENSE.txt */ -// No direct access. defined('_JEXEC') or die(); +use Joomla\CMS\Factory; +use Joomla\CMS\HTML\HTMLHelper; +use Joomla\CMS\Language\Text; JFormHelper::loadFieldClass('list'); /** * Supports an HTML select list of Roles * - * @since 1.0.0 + * @since __DEPLOY_VERSION__ */ class JFormFieldRole extends JFormFieldList { @@ -23,39 +25,34 @@ class JFormFieldRole extends JFormFieldList * The form field type. * * @var string - * @since 1.0.0 + * @since __DEPLOY_VERSION__ */ protected $type = 'role'; /** * Method to get list of role options. * - * @return array role An array of JHtml options + * @return array role An array of HTMLHelper options * - * @since 1.0.0 + * @since __DEPLOY_VERSION__ */ protected function getOptions() { - $jinput = JFactory::getApplication()->input; - $client = $jinput->get('client'); + $jinput = Factory::getApplication()->input; + $client = $jinput->get('client', '', 'STRING'); - // Include models - JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_subusers/models'); - - // Get instance of model class, where class name will be SubusersModel - $subuserModelType = JModelLegacy::getInstance('Roles', 'SubusersModel'); - $subuserModelType->setState('filter.client', $client); - - $results = $subuserModelType->getItems(); + $roleModel = RBACL::model("roles", array("ignore_request" => true)); + $roleModel->setState('filter.client', $client); + $results = $roleModel->getItems(); $options = array(); - $options[] = JHtml::_('select.option', '', JText::_('COM_SUBUSERS_FORM_LBL_SELECT_ROLE')); + $options[] = HTMLHelper::_('select.option', '', Text::_('COM_SUBUSERS_FORM_LBL_SELECT_ROLE')); if ($results) { foreach ($results as $result) { - $options[] = JHtml::_('select.option', $result->id, $result->name); + $options[] = HTMLHelper::_('select.option', $result->id, $result->name); } } diff --git a/src/administrator/models/forms/filter_mappings.xml b/src/administrator/models/forms/filter_mappings.xml new file mode 100644 index 0000000..a223100 --- /dev/null +++ b/src/administrator/models/forms/filter_mappings.xml @@ -0,0 +1,25 @@ + +
+ + + + + + + +
diff --git a/src/administrator/models/forms/filter_roles.xml b/src/administrator/models/forms/filter_roles.xml new file mode 100644 index 0000000..a223100 --- /dev/null +++ b/src/administrator/models/forms/filter_roles.xml @@ -0,0 +1,25 @@ + +
+ + + + + + + +
diff --git a/src/administrator/models/forms/mapping.xml b/src/administrator/models/forms/mapping.xml index f6fc5f0..a09657d 100755 --- a/src/administrator/models/forms/mapping.xml +++ b/src/administrator/models/forms/mapping.xml @@ -1,59 +1,27 @@ - +
- - - - - - - - - - - - - - - - - - - - - + + +
- -
+ \ No newline at end of file diff --git a/src/administrator/models/mapping.php b/src/administrator/models/mapping.php index 361dbca..594580f 100755 --- a/src/administrator/models/mapping.php +++ b/src/administrator/models/mapping.php @@ -1,33 +1,28 @@ - * @copyright Copyright (c) 2009-2017 TechJoomla, Tekdi Technologies Pvt. Ltd. All rights reserved. + * @package Subusers + * + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ -// No direct access. defined('_JEXEC') or die; -jimport('joomla.application.component.modeladmin'); +use Joomla\CMS\Factory; +use Joomla\CMS\MVC\Model\AdminModel; +use Joomla\CMS\Table\Table; /** * Subusers model. * - * @since 1.6 + * @since 1.0.0 */ -class SubusersModelMapping extends JModelAdmin +class SubusersModelMapping extends AdminModel { /** - * @var string The prefix to use with controller messages. - * @since 1.6 - */ - protected $text_prefix = 'COM_SUBUSERS'; - - /** - * @var null Item data - * @since 1.6 + * @var mixed Item data + * @since 1.0.0 */ protected $item = null; @@ -38,13 +33,13 @@ class SubusersModelMapping extends JModelAdmin * @param string $prefix A prefix for the table class name. Optional. * @param array $config Configuration array for model. Optional. * - * @return JTable A database object + * @return Table|boolean A database object * - * @since 1.6 + * @since 1.0.0 */ public function getTable($type = 'Mapping', $prefix = 'SubusersTable', $config = array()) { - return JTable::getInstance($type, $prefix, $config); + return Table::getInstance($type, $prefix, $config); } /** @@ -53,22 +48,13 @@ public function getTable($type = 'Mapping', $prefix = 'SubusersTable', $config = * @param array $data An optional array of data for the form to interogate. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * - * @return JForm A JForm object on success, false on failure + * @return \Joomla\CMS\Form\Form|boolean A JForm object on success, false on failure * - * @since 1.6 + * @since 1.0.0 */ public function getForm($data = array(), $loadData = true) { - // Initialise variables. - $app = JFactory::getApplication(); - - // Get the form. - $form = $this->loadForm( - 'com_subusers.mapping', 'mapping', - array('control' => 'jform', - 'load_data' => $loadData - ) - ); + $form = $this->loadForm('com_subusers.mapping', 'mapping', array('control' => 'jform', 'load_data' => $loadData)); if (empty($form)) { @@ -83,12 +69,11 @@ public function getForm($data = array(), $loadData = true) * * @return mixed The data for the form. * - * @since 1.6 + * @since 1.0.0 */ protected function loadFormData() { - // Check the session for previously entered form data. - $data = JFactory::getApplication()->getUserState('com_subusers.edit.mapping.data', array()); + $data = Factory::getApplication()->getUserState('com_subusers.edit.mapping.data', array()); if (empty($data)) { @@ -102,111 +87,4 @@ protected function loadFormData() return $data; } - - /** - * Method to get a single record. - * - * @param integer $pk The id of the primary key. - * - * @return mixed Object on success, false on failure. - * - * @since 1.6 - */ - public function getItem($pk = null) - { - if ($item = parent::getItem($pk)) - { - // Do any procesing on fields here if needed - } - - return $item; - } - - /** - * Method to duplicate an Mapping - * - * @param array &$pks An array of primary key IDs. - * - * @return boolean True if successful. - * - * @throws Exception - */ - public function duplicate(&$pks) - { - $user = JFactory::getUser(); - - // Access checks. - if (!$user->authorise('core.create', 'com_subusers')) - { - throw new Exception(JText::_('JERROR_CORE_CREATE_NOT_PERMITTED')); - } - - $dispatcher = JEventDispatcher::getInstance(); - $context = $this->option . '.' . $this->name; - - // Include the plugins for the save events. - JPluginHelper::importPlugin($this->events_map['save']); - - $table = $this->getTable(); - - foreach ($pks as $pk) - { - if ($table->load($pk, true)) - { - // Reset the id to create a new record. - $table->id = 0; - - if (!$table->check()) - { - throw new Exception($table->getError()); - } - - // Trigger the before save event. - $result = $dispatcher->trigger($this->event_before_save, array($context, &$table, true)); - - if (in_array(false, $result, true) || !$table->store()) - { - throw new Exception($table->getError()); - } - - // Trigger the after save event. - $dispatcher->trigger($this->event_after_save, array($context, &$table, true)); - } - else - { - throw new Exception($table->getError()); - } - } - - // Clean cache - $this->cleanCache(); - - return true; - } - - /** - * Prepare and sanitise the table prior to saving. - * - * @param JTable $table Table Object - * - * @return void - * - * @since 1.6 - */ - protected function prepareTable($table) - { - jimport('joomla.filter.output'); - - if (empty($table->id)) - { - // Set ordering to the last item if not set - if (@$table->ordering === '') - { - $db = JFactory::getDbo(); - $db->setQuery('SELECT MAX(ordering) FROM #__tjsu_role_action_map'); - $max = $db->loadResult(); - $table->ordering = $max + 1; - } - } - } } diff --git a/src/administrator/models/mappings.php b/src/administrator/models/mappings.php index f3849ab..358d98f 100755 --- a/src/administrator/models/mappings.php +++ b/src/administrator/models/mappings.php @@ -1,22 +1,24 @@ - * @copyright Copyright (c) 2009-2017 TechJoomla, Tekdi Technologies Pvt. Ltd. All rights reserved. + * @package Subusers + * + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ + defined('_JEXEC') or die; -jimport('joomla.application.component.modellist'); +use Joomla\CMS\Factory; +use Joomla\CMS\Component\ComponentHelper; +use Joomla\CMS\MVC\Model\ListModel; /** * Methods supporting a list of Subusers records. * - * @since 1.6 + * @since 1.0.0 */ -class SubusersModelMappings extends JModelList +class SubusersModelMappings extends ListModel { /** * Constructor. @@ -24,7 +26,7 @@ class SubusersModelMappings extends JModelList * @param array $config An optional associative array of configuration settings. * * @see JController - * @since 1.6 + * @since 1.0.0 */ public function __construct($config = array()) { @@ -32,12 +34,10 @@ public function __construct($config = array()) { $config['filter_fields'] = array( 'id', 'a.`id`', - 'role_id', 'a.`role_id`', - 'action_id', 'a.`action_id`', - 'client', 'a.`client`', - 'created_by', 'a.`created_by`', - 'ordering', 'a.`ordering`', - 'state', 'a.`state`', + 'b.name', + 'c.code', + 'b.client', + 'c.name', ); } @@ -56,46 +56,17 @@ public function __construct($config = array()) * * @throws Exception */ - protected function populateState($ordering = null, $direction = null) + protected function populateState($ordering = 'a.id', $direction = 'desc') { - // Initialise variables. - $app = JFactory::getApplication('administrator'); + $app = Factory::getApplication('administrator'); - // Load the filter state. $search = $app->getUserStateFromRequest($this->context . '.filter.search', 'filter_search'); $this->setState('filter.search', $search); - $published = $app->getUserStateFromRequest($this->context . '.filter.state', 'filter_published', '', 'string'); - $this->setState('filter.state', $published); - - // Load the parameters. - $params = JComponentHelper::getParams('com_subusers'); + $params = ComponentHelper::getParams('com_subusers'); $this->setState('params', $params); - // List state information. - parent::populateState('a.id', 'asc'); - } - - /** - * Method to get a store id based on model configuration state. - * - * This is necessary because the model is used by the component and - * different modules that might need different sets of data or different - * ordering requirements. - * - * @param string $id A prefix for the store id. - * - * @return string A store id. - * - * @since 1.6 - */ - protected function getStoreId($id = '') - { - // Compile the store id. - $id .= ':' . $this->getState('filter.search'); - $id .= ':' . $this->getState('filter.state'); - - return parent::getStoreId($id); + parent::populateState($ordering, $direction); } /** @@ -103,43 +74,18 @@ protected function getStoreId($id = '') * * @return JDatabaseQuery * - * @since 1.6 + * @since 1.0.0 */ protected function getListQuery() { - // Create a new query object. $db = $this->getDbo(); $query = $db->getQuery(true); - // Select the required fields from the table. - $query->select( - $this->getState( - 'list.select', 'DISTINCT a.*' - ) - ); + $query->select(array('a.*','b.name as role_name', 'b.client as role_client', 'c.name as action_name', 'c.code as action_code')); $query->from('`#__tjsu_role_action_map` AS a'); + $query->join('INNER', $db->quoteName('#__tjsu_roles', 'b') . ' ON (' . $db->quoteName('a.role_id') . ' = ' . $db->quoteName('b.id') . ')'); + $query->join('INNER', $db->quoteName('#__tjsu_actions', 'c') . ' ON (' . $db->quoteName('a.action_id') . ' = ' . $db->quoteName('c.id') . ')'); - // Join over the users for the checked out user - $query->select("uc.name AS editor"); - $query->join("LEFT", "#__users AS uc ON uc.id=a.checked_out"); - - // Join over the user field 'created_by' - $query->select('`created_by`.name AS `created_by`'); - $query->join('LEFT', '#__users AS `created_by` ON `created_by`.id = a.`created_by`'); - - // Filter by published state - $published = $this->getState('filter.state'); - - if (is_numeric($published)) - { - $query->where('a.state = ' . (int) $published); - } - elseif ($published === '') - { - $query->where('(a.state IN (0, 1))'); - } - - // Filter by search in title $search = $this->getState('filter.search'); if (!empty($search)) @@ -151,30 +97,19 @@ protected function getListQuery() else { $search = $db->Quote('%' . $db->escape($search, true) . '%'); + $searches = array(); + $searches[] = 'b.name LIKE ' . $search; + $searches[] = 'c.name LIKE ' . $search; + $searches[] = 'c.code LIKE ' . $search; + + $query->where('(' . implode(' OR ', $searches) . ')'); } } - // Add the list ordering clause. - $orderCol = $this->state->get('list.ordering'); - $orderDirn = $this->state->get('list.direction'); - - if ($orderCol && $orderDirn) - { - $query->order($db->escape($orderCol . ' ' . $orderDirn)); - } + $orderCol = $this->state->get('list.ordering', 'a.id'); + $orderDirn = $this->state->get('list.direction', 'DESC'); + $query->order($db->escape($orderCol) . ' ' . $db->escape($orderDirn)); return $query; } - - /** - * Get an array of data items - * - * @return mixed Array of data items on success, false on failure. - */ - public function getItems() - { - $items = parent::getItems(); - - return $items; - } } diff --git a/src/administrator/models/roles.php b/src/administrator/models/roles.php index b3cb016..0641c61 100755 --- a/src/administrator/models/roles.php +++ b/src/administrator/models/roles.php @@ -1,22 +1,23 @@ - * @copyright Copyright (C) 2005 - 2014. All rights reserved. + * @package Subusers + * + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ + defined('_JEXEC') or die; -jimport('joomla.application.component.modellist'); +use Joomla\CMS\Factory; +use Joomla\CMS\MVC\Model\ListModel; /** * Methods supporting a list of Subusers records. * - * @since 1.6 + * @since 1.0.0 */ -class SubusersModelRoles extends JModelList +class SubusersModelRoles extends ListModel { /** * Constructor. @@ -24,17 +25,16 @@ class SubusersModelRoles extends JModelList * @param array $config An optional associative array of configuration settings. * * @see JController - * @since 1.6 + * @since 1.0.0 */ public function __construct($config = array()) { if (empty($config['filter_fields'])) { $config['filter_fields'] = array( - 'id', 'a.`id`', - 'name', 'a.`name`', - 'created_by', 'a.`created_by`', - 'ordering', 'a.`ordering`' + 'id', 'a.id', + 'name', 'a.name', + 'client', 'a.client', ); } @@ -53,42 +53,17 @@ public function __construct($config = array()) * * @throws Exception */ - protected function populateState($ordering = null, $direction = null) + protected function populateState($ordering = 'a.id', $direction = 'desc') { - // Initialise variables. - $app = JFactory::getApplication('administrator'); + $app = Factory::getApplication('administrator'); - // Load the filter state. $search = $app->getUserStateFromRequest($this->context . '.filter.search', 'filter_search'); $this->setState('filter.search', $search); - // Load the parameters. $params = JComponentHelper::getParams('com_subusers'); $this->setState('params', $params); - // List state information. - parent::populateState('a.id', 'desc'); - } - - /** - * Method to get a store id based on model configuration state. - * - * This is necessary because the model is used by the component and - * different modules that might need different sets of data or different - * ordering requirements. - * - * @param string $id A prefix for the store id. - * - * @return string A store id. - * - * @since 1.6 - */ - protected function getStoreId($id = '') - { - // Compile the store id. - $id .= ':' . $this->getState('filter.search'); - - return parent::getStoreId($id); + parent::populateState($ordering, $direction); } /** @@ -96,27 +71,22 @@ protected function getStoreId($id = '') * * @return JDatabaseQuery * - * @since 1.6 + * @since 1.0.0 */ protected function getListQuery() { - // Create a new query object. $db = $this->getDbo(); $query = $db->getQuery(true); - // Select the required fields from the table. $query->select( $this->getState( 'list.select', 'DISTINCT a.*' ) ); $query->from('`#__tjsu_roles` AS a'); - - // Join over the user field 'created_by' $query->select('`created_by`.name AS `created_by`'); $query->join('LEFT', '#__users AS `created_by` ON `created_by`.id = a.`created_by`'); - // Filter by search in title $search = $this->getState('filter.search'); if (!empty($search)) @@ -134,13 +104,11 @@ protected function getListQuery() $client = $this->getState('filter.client'); - // Filter by client if (!empty($client)) { $query->where($db->quoteName('a.client') . ' = ' . $db->quote($client)); } - // Add the list ordering clause. $orderCol = $this->state->get('list.ordering'); $orderDirn = $this->state->get('list.direction'); @@ -151,16 +119,4 @@ protected function getListQuery() return $query; } - - /** - * Get an array of data items - * - * @return mixed Array of data items on success, false on failure. - */ - public function getItems() - { - $items = parent::getItems(); - - return $items; - } } diff --git a/src/administrator/views/action/tmpl/edit.php b/src/administrator/views/action/tmpl/edit.php index a043df5..3d7cf25 100755 --- a/src/administrator/views/action/tmpl/edit.php +++ b/src/administrator/views/action/tmpl/edit.php @@ -25,7 +25,6 @@ { if (task == "action.cancel" || document.formvalidator.isValid(document.getElementById("action-form"))) { - jQuery("#permissions-sliders select").attr("disabled", "disabled"); Joomla.submitform(task, document.getElementById("action-form")); } }; diff --git a/src/administrator/views/action/view.html.php b/src/administrator/views/action/view.html.php index 1aad14c..2fee19c 100755 --- a/src/administrator/views/action/view.html.php +++ b/src/administrator/views/action/view.html.php @@ -19,11 +19,33 @@ */ class SubusersViewAction extends HtmlView { - protected $state; + /** + * The JForm object + * + * @var JForm + */ + protected $form; + /** + * The active item + * + * @var object + */ protected $item; - protected $form; + /** + * The model state + * + * @var object + */ + protected $state; + + /** + * The actions the user is authorised to perform + * + * @var JObject + */ + protected $canDo; /** * Display the view @@ -40,13 +62,15 @@ public function display($tpl = null) $this->item = $this->get('Item'); $this->form = $this->get('Form'); - // Check for errors. + $this->canDo = JHelperContent::getActions('com_subusers', 'action', $this->item->id); + if (count($errors = $this->get('Errors'))) { - throw new Exception(implode("\n", $errors)); + throw new Exception(implode("\n", $errors), 500); } $this->addToolbar(); + parent::display($tpl); } @@ -59,49 +83,51 @@ public function display($tpl = null) */ protected function addToolbar() { - Factory::getApplication()->input->set('hidemainmenu', true); + $user = Factory::getUser(); + $isNew = ($this->item->id == 0); - $user = Factory::getUser(); - $isNew = ($this->item->id == 0); - - if (isset($this->item->checked_out)) - { - $checkedOut = !($this->item->checked_out == 0 || $this->item->checked_out == $user->id); - } - else - { - $checkedOut = false; - } - - $canDo = SubusersHelper::getActions(); + $canDo = $this->canDo; + $layout = Factory::getApplication()->input->get("layout"); + $this->sidebar = JHtmlSidebar::render(); JToolBarHelper::title(JText::_('COM_SUBUSERS_TITLE_ACTION'), 'action.png'); - // If not checked out, can save the item. - if (!$checkedOut && ($canDo->get('core.edit') || ($canDo->get('core.create')))) - { - JToolBarHelper::apply('action.apply', 'JTOOLBAR_APPLY'); - JToolBarHelper::save('action.save', 'JTOOLBAR_SAVE'); - } - - if (!$checkedOut && ($canDo->get('core.create'))) + // For new records, check the create permission. + if ($layout != "default") { - JToolBarHelper::custom('action.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + Factory::getApplication()->input->set('hidemainmenu', true); + + if ($isNew) + { + JToolbarHelper::save('action.save'); + JToolbarHelper::save2new('action.save2new'); + JToolbarHelper::cancel('action.cancel'); + } + else + { + if ($this->isEditable($canDo, $user->id)) + { + JToolbarHelper::save('action.save'); + } + + JToolbarHelper::cancel('action.cancel', 'JTOOLBAR_CLOSE'); + } } - // If an existing item, can save to a copy. - if (!$isNew && $canDo->get('core.create')) - { - JToolBarHelper::custom('action.save2copy', 'save-copy.png', 'save-copy_f2.png', 'JTOOLBAR_SAVE_AS_COPY', false); - } + JToolbarHelper::divider(); + } - if (empty($this->item->id)) - { - JToolBarHelper::cancel('action.cancel', 'JTOOLBAR_CANCEL'); - } - else - { - JToolBarHelper::cancel('action.cancel', 'JTOOLBAR_CLOSE'); - } + /** + * Is editable + * + * @param Object $canDo Checked Out + * + * @param integer $userId User ID + * + * @return boolean + */ + protected function isEditable($canDo, $userId) + { + return $canDo->get('core.edit') || ($canDo->get('core.edit.own') && $this->item->created_by == $userId); } } diff --git a/src/administrator/views/mapping/tmpl/edit.php b/src/administrator/views/mapping/tmpl/edit.php index 390a334..960d6c2 100755 --- a/src/administrator/views/mapping/tmpl/edit.php +++ b/src/administrator/views/mapping/tmpl/edit.php @@ -1,94 +1,47 @@ - * @copyright Copyright (C) 2015. All rights reserved. + * @package Subusers + * + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ -// No direct access -defined('_JEXEC') or die; - -JHtml::addIncludePath(JPATH_COMPONENT . '/helpers/html'); -JHtml::_('behavior.tooltip'); -JHtml::_('behavior.formvalidation'); -JHtml::_('formbehavior.chosen', 'select'); -JHtml::_('behavior.keepalive'); - -// Import CSS -$document = JFactory::getDocument(); -$document->addStyleSheet(JPATH_ROOT . 'media/com_subusers/css/edit.css'); -?> - - + }; +'); +?>
- + action="item->id); ?>" + method="post" enctype="multipart/form-data" name="adminForm" + id="mapping-form" class="form-validate">
- 'general')); ?> - -
-
-
- - -
-
form->getLabel('role_id'); ?>
-
form->getInput('role_id'); ?>
-
-
-
form->getLabel('action_id'); ?>
-
form->getInput('action_id'); ?>
-
- - - item->created_by)){ ?> - - - - - - - - - - - -
+
+ form->renderField('id'); ?> + form->renderField('role_id');?> + form->renderField('action_id');?>
- - - - - - - - - + +
diff --git a/src/administrator/views/mapping/view.html.php b/src/administrator/views/mapping/view.html.php index 8557b72..8fb219e 100755 --- a/src/administrator/views/mapping/view.html.php +++ b/src/administrator/views/mapping/view.html.php @@ -1,29 +1,52 @@ - * @copyright Copyright (C) 2005 - 2014. All rights reserved. + * @package Subusers + * + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ -// No direct access + defined('_JEXEC') or die; -jimport('joomla.application.component.view'); +use Joomla\CMS\Factory; +use Joomla\CMS\Helper\ContentHelper; +use Joomla\CMS\MVC\View\HtmlView; /** * View to edit * - * @since 1.6 + * @since 1.0.0 */ -class SubusersViewMapping extends JViewLegacy +class SubusersViewMapping extends HtmlView { - protected $state; + /** + * The JForm object + * + * @var \Joomla\CMS\Form\Form + */ + protected $form; + /** + * The active item + * + * @var object + */ protected $item; - protected $form; + /** + * The model state + * + * @var object + */ + protected $state; + + /** + * The actions the user is authorised to perform + * + * @var JObject + */ + protected $canDo; /** * Display the view @@ -40,13 +63,15 @@ public function display($tpl = null) $this->item = $this->get('Item'); $this->form = $this->get('Form'); - // Check for errors. + $this->canDo = JHelperContent::getActions('com_subusers', 'mapping', $this->item->id); + if (count($errors = $this->get('Errors'))) { - throw new Exception(implode("\n", $errors)); + throw new Exception(implode("\n", $errors), 500); } $this->addToolbar(); + parent::display($tpl); } @@ -59,49 +84,51 @@ public function display($tpl = null) */ protected function addToolbar() { - JFactory::getApplication()->input->set('hidemainmenu', true); + $user = Factory::getUser(); + $isNew = ($this->item->id == 0); - $user = JFactory::getUser(); - $isNew = ($this->item->id == 0); - - if (isset($this->item->checked_out)) - { - $checkedOut = !($this->item->checked_out == 0 || $this->item->checked_out == $user->get('id')); - } - else - { - $checkedOut = false; - } - - $canDo = SubusersHelper::getActions(); + $canDo = $this->canDo; + $layout = Factory::getApplication()->input->get("layout"); + $this->sidebar = JHtmlSidebar::render(); JToolBarHelper::title(JText::_('COM_SUBUSERS_TITLE_MAPPING'), 'mapping.png'); - // If not checked out, can save the item. - if (!$checkedOut && ($canDo->get('core.edit') || ($canDo->get('core.create')))) + // For new records, check the create permission. + if ($layout != "default") { - JToolBarHelper::apply('mapping.apply', 'JTOOLBAR_APPLY'); - JToolBarHelper::save('mapping.save', 'JTOOLBAR_SAVE'); + Factory::getApplication()->input->set('hidemainmenu', true); + + if ($isNew) + { + JToolbarHelper::save('mapping.save'); + JToolbarHelper::save2new('mapping.save2new'); + JToolbarHelper::cancel('mapping.cancel'); + } + else + { + if ($this->isEditable($canDo, $user->id)) + { + JToolbarHelper::save('mapping.save'); + } + + JToolbarHelper::cancel('mapping.cancel', 'JTOOLBAR_CLOSE'); + } } - if (!$checkedOut && ($canDo->get('core.create'))) - { - JToolBarHelper::custom('mapping.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); - } - - // If an existing item, can save to a copy. - if (!$isNew && $canDo->get('core.create')) - { - JToolBarHelper::custom('mapping.save2copy', 'save-copy.png', 'save-copy_f2.png', 'JTOOLBAR_SAVE_AS_COPY', false); - } + JToolbarHelper::divider(); + } - if (empty($this->item->id)) - { - JToolBarHelper::cancel('mapping.cancel', 'JTOOLBAR_CANCEL'); - } - else - { - JToolBarHelper::cancel('mapping.cancel', 'JTOOLBAR_CLOSE'); - } + /** + * Is editable + * + * @param Object $canDo Checked Out + * + * @param integer $userId User ID + * + * @return boolean + */ + protected function isEditable($canDo, $userId) + { + return $canDo->get('core.edit') || ($canDo->get('core.edit.own') && $this->item->created_by == $userId); } } diff --git a/src/administrator/views/mappings/tmpl/default.php b/src/administrator/views/mappings/tmpl/default.php index 24dd0d6..2848c59 100755 --- a/src/administrator/views/mappings/tmpl/default.php +++ b/src/administrator/views/mappings/tmpl/default.php @@ -1,238 +1,135 @@ - * @copyright Copyright (C) 2015. All rights reserved. + * @package Subusers + * + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ -// No direct access defined('_JEXEC') or die; -JHtml::addIncludePath(JPATH_COMPONENT . '/helpers/html'); -JHtml::_('bootstrap.tooltip'); -JHtml::_('behavior.multiselect'); -JHtml::_('formbehavior.chosen', 'select'); +use Joomla\CMS\HTML\HTMLHelper; +use Joomla\CMS\Language\Text; +use Joomla\CMS\Layout\LayoutHelper; +use Joomla\CMS\Router\Route; -// Import CSS -$document = JFactory::getDocument(); -$document->addStyleSheet(JPATH_ROOT . 'media/com_subusers/css/list.css'); +HTMLHelper::addIncludePath(JPATH_COMPONENT . '/helpers/html'); +HTMLHelper::_('bootstrap.tooltip'); +HTMLHelper::_('behavior.multiselect'); +HTMLHelper::_('formbehavior.chosen', 'select'); -$user = JFactory::getUser(); -$userId = $user->get('id'); -$listOrder = $this->state->get('list.ordering'); -$listDirn = $this->state->get('list.direction'); -$canOrder = $user->authorise('core.edit.state', 'com_subusers'); -$saveOrder = $listOrder == 'a.`ordering`'; - -if ($saveOrder) -{ - $saveOrderingUrl = 'index.php?option=com_subusers&task=mappings.saveOrderAjax&tmpl=component'; - JHtml::_('sortablelist.sortable', 'mappingList', 'adminForm', strtolower($listDirn), $saveOrderingUrl); -} - -$sortFields = $this->getSortFields(); +$listOrder = $this->escape($this->state->get('list.ordering')); +$listDirn = $this->escape($this->state->get('list.direction')); ?> - - -extra_sidebar)) -{ - $this->sidebar .= $this->extra_sidebar; -} - -?> +
+
+
- - sidebar)): ?> -
- sidebar; ?> -
-
- -
- - -
- -
- - + sidebar)) + { + ?> +
+ sidebar; ?>
-
- - pagination->getLimitBox(); ?> +
+ +
+ $this)); + ?> + items)) + { + ?> +
+
-
- - -
-
- - -
-
-
- - - - items[0]->ordering)): ?> - - - - items[0]->state)): ?> - - - - - - - - items[0]->id)): ?> - - - - - - - - - - - items as $i => $item) : - $ordering = ($listOrder == 'a.ordering'); - $canCreate = $user->authorise('core.create', 'com_subusers'); - $canEdit = $user->authorise('core.edit', 'com_subusers'); - $canCheckin = $user->authorise('core.manage', 'com_subusers'); - $canChange = $user->authorise('core.edit.state', 'com_subusers'); + +
- ', 'a.`ordering`', $listDirn, $listOrder, null, 'asc', 'JGRID_HEADING_ORDERING'); ?> - - - - - - - - - - -
- pagination->getListFooter(); ?> -
+ + + + + + + + + + + + + + + + items as $i => $item) + { + $canEdit = $this->canDo->get('core.edit'); + $canEditOwn = $this->canDo->get('core.edit.own'); + ?> + + + + + + + + +
+ + + + + + + +
+ pagination->getListFooter(); ?> +
+ id); ?> + +
+ + + escape($item->role_name); ?> + + + escape($item->role_name); ?> + + +
+
escape($item->action_name); ?>id; ?>
+ - - - items[0]->ordering)) : ?> - - - - - - - - - - - - - - - id); ?> - - items[0]->state)): ?> - - state, $i, 'mappings.', $canChange, 'cb'); ?> - - - - - role_id; ?> - - - - action_id; ?> - - - - items[0]->id)): ?> - - id; ?> - - - - - - - - - - - - -
- + + + +
+ +
+
\ No newline at end of file diff --git a/src/administrator/views/mappings/view.html.php b/src/administrator/views/mappings/view.html.php index 37c23dc..d8bb714 100755 --- a/src/administrator/views/mappings/view.html.php +++ b/src/administrator/views/mappings/view.html.php @@ -1,30 +1,81 @@ - * @copyright Copyright (C) 2005 - 2014. All rights reserved. + * @package Subusers + * + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ -// No direct access + defined('_JEXEC') or die; -jimport('joomla.application.component.view'); +use Joomla\CMS\Factory; +use Joomla\CMS\MVC\View\HtmlView; /** * View class for a list of Subusers. * - * @since 1.6 + * @since 1.0.0 */ -class SubusersViewMappings extends JViewLegacy +class SubusersViewMappings extends HtmlView { + /** + * An array of items + * + * @var array + */ protected $items; + /** + * The pagination object + * + * @var JPagination + */ protected $pagination; + /** + * The model state + * + * @var object + */ protected $state; + /** + * Form object for search filters + * + * @var JForm + */ + public $filterForm; + + /** + * Logged in User + * + * @var JObject + */ + public $user; + + /** + * The active search filters + * + * @var array + */ + public $activeFilters; + + /** + * The sidebar markup + * + * @var string + */ + protected $sidebar; + + /** + * An ACL object to verify user rights. + * + * @var CMSObject + * @since 1.0.0 + */ + protected $canDo; + /** * Display the view * @@ -39,6 +90,10 @@ public function display($tpl = null) $this->state = $this->get('State'); $this->items = $this->get('Items'); $this->pagination = $this->get('Pagination'); + $this->filterForm = $this->get('FilterForm'); + $this->activeFilters = $this->get('ActiveFilters'); + $this->user = Factory::getUser(); + $this->canDo = JHelperContent::getActions('com_subusers'); // Check for errors. if (count($errors = $this->get('Errors'))) @@ -47,10 +102,9 @@ public function display($tpl = null) } SubusersHelper::addSubmenu('mappings'); - $this->addToolbar(); - $this->sidebar = JHtmlSidebar::render(); + parent::display($tpl); } @@ -59,108 +113,32 @@ public function display($tpl = null) * * @return void * - * @since 1.6 + * @since 1.0.0 */ protected function addToolbar() { - require_once JPATH_COMPONENT . '/helpers/subusers.php'; - - $state = $this->get('State'); - $canDo = SubusersHelper::getActions($state->get('filter.category_id')); + JToolBarHelper::title(JText::_('COM_SUBUSERS_TITLE_MAPPINGS'), ''); - JToolBarHelper::title(JText::_('COM_SUBUSERS_TITLE_MAPPINGS'), 'mappings.png'); - - // Check if the form exists before showing the add/edit buttons - $formPath = JPATH_COMPONENT_ADMINISTRATOR . '/views/mapping'; - - if (file_exists($formPath)) + if ($this->canDo->get('core.create')) { - if ($canDo->get('core.create')) - { - JToolBarHelper::addNew('mapping.add', 'JTOOLBAR_NEW'); - JToolbarHelper::custom('mappings.duplicate', 'copy.png', 'copy_f2.png', 'JTOOLBAR_DUPLICATE', true); - } - - if ($canDo->get('core.edit') && isset($this->items[0])) - { - JToolBarHelper::editList('mapping.edit', 'JTOOLBAR_EDIT'); - } + JToolbarHelper::addNew('mapping.add'); } - if ($canDo->get('core.edit.state')) + if ($this->canDo->get('core.edit')) { - if (isset($this->items[0]->state)) - { - JToolBarHelper::divider(); - JToolBarHelper::custom('mappings.publish', 'publish.png', 'publish_f2.png', 'JTOOLBAR_PUBLISH', true); - JToolBarHelper::custom('mappings.unpublish', 'unpublish.png', 'unpublish_f2.png', 'JTOOLBAR_UNPUBLISH', true); - } - elseif (isset($this->items[0])) - { - // If this component does not use state then show a direct delete button as we can not trash - JToolBarHelper::deleteList('', 'mappings.delete', 'JTOOLBAR_DELETE'); - } - - if (isset($this->items[0]->state)) - { - JToolBarHelper::divider(); - JToolBarHelper::archiveList('mappings.archive', 'JTOOLBAR_ARCHIVE'); - } - - if (isset($this->items[0]->checked_out)) - { - JToolBarHelper::custom('mappings.checkin', 'checkin.png', 'checkin_f2.png', 'JTOOLBAR_CHECKIN', true); - } + JToolbarHelper::editList('mapping.edit'); } - // Show trash and delete for components that uses the state field - if (isset($this->items[0]->state)) + if ($this->canDo->get('core.delete')) { - if ($state->get('filter.state') == -2 && $canDo->get('core.delete')) - { - JToolBarHelper::deleteList('', 'mappings.delete', 'JTOOLBAR_EMPTY_TRASH'); - JToolBarHelper::divider(); - } - elseif ($canDo->get('core.edit.state')) - { - JToolBarHelper::trash('mappings.trash', 'JTOOLBAR_TRASH'); - JToolBarHelper::divider(); - } + JToolbarHelper::deleteList('JGLOBAL_CONFIRM_DELETE', 'mappings.delete', 'JTOOLBAR_DELETE'); + JToolbarHelper::divider(); } - if ($canDo->get('core.admin')) + if ($this->canDo->get('core.admin') || $this->canDo->get('core.options')) { - JToolBarHelper::preferences('com_subusers'); + JToolbarHelper::preferences('com_subusers'); + JToolbarHelper::divider(); } - - // Set sidebar action - New in 3.0 - JHtmlSidebar::setAction('index.php?option=com_subusers&view=mappings'); - - $this->extra_sidebar = ''; - JHtmlSidebar::addFilter( - - JText::_('JOPTION_SELECT_PUBLISHED'), - - 'filter_published', - - JHtml::_('select.options', JHtml::_('jgrid.publishedOptions'), "value", "text", $this->state->get('filter.state'), true) - - ); - } - - /** - * Method to order fields - * - * @return void - */ - protected function getSortFields() - { - return array( - 'a.`id`' => JText::_('JGRID_HEADING_ID'), - 'a.`role_id`' => JText::_('COM_SUBUSERS_MAPPINGS_ROLE_ID'), - 'a.`action_id`' => JText::_('COM_SUBUSERS_MAPPINGS_ACTION_ID'), - 'a.`ordering`' => JText::_('JGRID_HEADING_ORDERING'), - 'a.`state`' => JText::_('JSTATUS'), - ); } } diff --git a/src/administrator/views/role/view.html.php b/src/administrator/views/role/view.html.php index 7cc65ef..2e8c5e0 100755 --- a/src/administrator/views/role/view.html.php +++ b/src/administrator/views/role/view.html.php @@ -15,15 +15,37 @@ /** * View to edit * - * @since 1.6 + * @since 1.0.0 */ class SubusersViewRole extends HtmlView { - protected $state; + /** + * The JForm object + * + * @var \Joomla\CMS\Form\Form + */ + protected $form; + /** + * The active item + * + * @var object + */ protected $item; - protected $form; + /** + * The model state + * + * @var object + */ + protected $state; + + /** + * The actions the user is authorised to perform + * + * @var JObject + */ + protected $canDo; /** * Display the view @@ -40,13 +62,15 @@ public function display($tpl = null) $this->item = $this->get('Item'); $this->form = $this->get('Form'); - // Check for errors. + $this->canDo = JHelperContent::getActions('com_subusers', 'role', $this->item->id); + if (count($errors = $this->get('Errors'))) { - throw new Exception(implode("\n", $errors)); + throw new Exception(implode("\n", $errors), 500); } $this->addToolbar(); + parent::display($tpl); } @@ -59,49 +83,51 @@ public function display($tpl = null) */ protected function addToolbar() { - Factory::getApplication()->input->set('hidemainmenu', true); + $user = Factory::getUser(); + $isNew = ($this->item->id == 0); - $user = Factory::getUser(); - $isNew = ($this->item->id == 0); - - if (isset($this->item->checked_out)) - { - $checkedOut = !($this->item->checked_out == 0 || $this->item->checked_out == $user->id); - } - else - { - $checkedOut = false; - } - - $canDo = SubusersHelper::getActions(); + $canDo = $this->canDo; + $layout = Factory::getApplication()->input->get("layout"); + $this->sidebar = JHtmlSidebar::render(); JToolBarHelper::title(JText::_('COM_SUBUSERS_TITLE_ROLE'), 'role.png'); - // If not checked out, can save the item. - if (!$checkedOut && ($canDo->get('core.edit') || ($canDo->get('core.create')))) - { - JToolBarHelper::apply('role.apply', 'JTOOLBAR_APPLY'); - JToolBarHelper::save('role.save', 'JTOOLBAR_SAVE'); - } - - if (!$checkedOut && ($canDo->get('core.create'))) + // For new records, check the create permission. + if ($layout != "default") { - JToolBarHelper::custom('role.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + Factory::getApplication()->input->set('hidemainmenu', true); + + if ($isNew) + { + JToolbarHelper::save('role.save'); + JToolbarHelper::save2new('role.save2new'); + JToolbarHelper::cancel('role.cancel'); + } + else + { + if ($this->isEditable($canDo, $user->id)) + { + JToolbarHelper::save('role.save'); + } + + JToolbarHelper::cancel('role.cancel', 'JTOOLBAR_CLOSE'); + } } - // If an existing item, can save to a copy. - if (!$isNew && $canDo->get('core.create')) - { - JToolBarHelper::custom('role.save2copy', 'save-copy.png', 'save-copy_f2.png', 'JTOOLBAR_SAVE_AS_COPY', false); - } + JToolbarHelper::divider(); + } - if (empty($this->item->id)) - { - JToolBarHelper::cancel('role.cancel', 'JTOOLBAR_CANCEL'); - } - else - { - JToolBarHelper::cancel('role.cancel', 'JTOOLBAR_CLOSE'); - } + /** + * Is editable + * + * @param Object $canDo Checked Out + * + * @param integer $userId User ID + * + * @return boolean + */ + protected function isEditable($canDo, $userId) + { + return $canDo->get('core.edit') || ($canDo->get('core.edit.own') && $this->item->created_by == $userId); } } diff --git a/src/administrator/views/roles/tmpl/default.php b/src/administrator/views/roles/tmpl/default.php index d6c5680..8d0f3ca 100755 --- a/src/administrator/views/roles/tmpl/default.php +++ b/src/administrator/views/roles/tmpl/default.php @@ -1,231 +1,135 @@ - * @copyright Copyright (C) 2015. All rights reserved. + * @package Subusers + * + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ -// No direct access defined('_JEXEC') or die; -JHtml::addIncludePath(JPATH_COMPONENT . '/helpers/html'); -JHtml::_('bootstrap.tooltip'); -JHtml::_('behavior.multiselect'); -JHtml::_('formbehavior.chosen', 'select'); +use Joomla\CMS\HTML\HTMLHelper; +use Joomla\CMS\Language\Text; +use Joomla\CMS\Layout\LayoutHelper; +use Joomla\CMS\Router\Route; -// Import CSS -$document = JFactory::getDocument(); -$document->addStyleSheet(JPATH_ROOT . 'media/com_subusers/css/list.css'); +HTMLHelper::addIncludePath(JPATH_COMPONENT . '/helpers/html'); +HTMLHelper::_('bootstrap.tooltip'); +HTMLHelper::_('behavior.multiselect'); +HTMLHelper::_('formbehavior.chosen', 'select'); -$user = JFactory::getUser(); -$userId = $user->get('id'); -$listOrder = $this->state->get('list.ordering'); -$listDirn = $this->state->get('list.direction'); -$canOrder = $user->authorise('core.edit.state', 'com_subusers'); -$saveOrder = $listOrder == 'a.`ordering`'; - -if ($saveOrder) -{ - $saveOrderingUrl = 'index.php?option=com_subusers&task=roles.saveOrderAjax&tmpl=component'; - JHtml::_('sortablelist.sortable', 'roleList', 'adminForm', strtolower($listDirn), $saveOrderingUrl); -} - -$sortFields = $this->getSortFields(); -?> - - -extra_sidebar)) -{ - $this->sidebar .= $this->extra_sidebar; -} +$listOrder = $this->escape($this->state->get('list.ordering')); +$listDirn = $this->escape($this->state->get('list.direction')); ?> - -
- sidebar)): ?> -
- sidebar; ?> -
-
- -
- - -
- -
- - -
-
- - pagination->getLimitBox(); ?> -
-
- - +
+
+ + + sidebar)) + { + ?> +
+ sidebar; ?>
-
- - +
+ +
+ $this)); + ?> + items)) + { + ?> +
+
-
-
- - - - items[0]->ordering)): ?> - - - - - - - - items[0]->id)): ?> - - - - - - - - - - - items as $i => $item) : - $ordering = ($listOrder == 'a.ordering'); - $canCreate = $user->authorise('core.create', 'com_subusers'); - $canEdit = $user->authorise('core.edit', 'com_subusers'); - $canCheckin = $user->authorise('core.manage', 'com_subusers'); - $canChange = $user->authorise('core.edit.state', 'com_subusers'); + +
- ', 'a.`ordering`', $listDirn, $listOrder, null, 'asc', 'JGRID_HEADING_ORDERING'); ?> - - - - - - -
- pagination->getListFooter(); ?> -
+ + + + + + + + + + + + + + + + items as $i => $item) + { + $canEdit = $this->canDo->get('core.edit'); + $canEditOwn = $this->canDo->get('core.edit.own'); + ?> + + + + + + + + +
+ + + + + + + +
+ pagination->getListFooter(); ?> +
+ id); ?> + +
+ + + escape($item->name); ?> + + + escape($item->name); ?> + + +
+
escape($item->client); ?>id; ?>
+ - - - items[0]->ordering)) : ?> - - - - - - - - - - - - - - - id); ?> - - items[0]->state)): ?> - - - - checked_out) && $item->checked_out && ($canEdit || $canChange)) : ?> - editor, $item->checked_out_time, 'roles.', $canCheckin); ?> - - - - escape($item->name); ?> - - escape($item->name); ?> - - - - - items[0]->id)): ?> - - id; ?> - - - - - - - - - - - - -
- + + + +
+ +
+
\ No newline at end of file diff --git a/src/administrator/views/roles/view.html.php b/src/administrator/views/roles/view.html.php index 9767b1d..b16a575 100755 --- a/src/administrator/views/roles/view.html.php +++ b/src/administrator/views/roles/view.html.php @@ -1,30 +1,80 @@ - * @copyright Copyright (C) 2005 - 2014. All rights reserved. + * @package Subusers + * + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ -// No direct access + defined('_JEXEC') or die; -jimport('joomla.application.component.view'); +use Joomla\CMS\Factory; /** * View class for a list of Subusers. * - * @since 1.6 + * @since 1.0.0 */ class SubusersViewRoles extends JViewLegacy { + /** + * An array of items + * + * @var array + */ protected $items; + /** + * The pagination object + * + * @var JPagination + */ protected $pagination; + /** + * The model state + * + * @var object + */ protected $state; + /** + * Form object for search filters + * + * @var JForm + */ + public $filterForm; + + /** + * Logged in User + * + * @var JObject + */ + public $user; + + /** + * The active search filters + * + * @var array + */ + public $activeFilters; + + /** + * The sidebar markup + * + * @var string + */ + protected $sidebar; + + /** + * An ACL object to verify user rights. + * + * @var CMSObject + * @since 1.0.0 + */ + protected $canDo; + /** * Display the view * @@ -39,6 +89,10 @@ public function display($tpl = null) $this->state = $this->get('State'); $this->items = $this->get('Items'); $this->pagination = $this->get('Pagination'); + $this->filterForm = $this->get('FilterForm'); + $this->activeFilters = $this->get('ActiveFilters'); + $this->user = Factory::getUser(); + $this->canDo = JHelperContent::getActions('com_subusers'); // Check for errors. if (count($errors = $this->get('Errors'))) @@ -47,10 +101,9 @@ public function display($tpl = null) } SubusersHelper::addSubmenu('roles'); - $this->addToolbar(); - $this->sidebar = JHtmlSidebar::render(); + parent::display($tpl); } @@ -59,111 +112,32 @@ public function display($tpl = null) * * @return void * - * @since 1.6 + * @since 1.0.0 */ protected function addToolbar() { - require_once JPATH_COMPONENT . '/helpers/subusers.php'; + JToolBarHelper::title(JText::_('COM_SUBUSERS_TITLE_ROLES'), ''); - $state = $this->get('State'); - $canDo = SubusersHelper::getActions($state->get('filter.category_id')); - - JToolBarHelper::title(JText::_('COM_SUBUSERS_TITLE_ROLES'), 'roles.png'); - - // Check if the form exists before showing the add/edit buttons - $formPath = JPATH_COMPONENT_ADMINISTRATOR . '/views/role'; - - if (file_exists($formPath)) + if ($this->canDo->get('core.create')) { - if ($canDo->get('core.create')) - { - JToolBarHelper::addNew('role.add', 'JTOOLBAR_NEW'); - JToolbarHelper::custom('roles.duplicate', 'copy.png', 'copy_f2.png', 'JTOOLBAR_DUPLICATE', true); - } - - if ($canDo->get('core.edit') && isset($this->items[0])) - { - JToolBarHelper::editList('role.edit', 'JTOOLBAR_EDIT'); - } + JToolbarHelper::addNew('role.add'); } - if ($canDo->get('core.edit.state')) + if ($this->canDo->get('core.edit')) { - if (isset($this->items[0]->state)) - { - JToolBarHelper::divider(); - JToolBarHelper::custom('roles.publish', 'publish.png', 'publish_f2.png', 'JTOOLBAR_PUBLISH', true); - JToolBarHelper::custom('roles.unpublish', 'unpublish.png', 'unpublish_f2.png', 'JTOOLBAR_UNPUBLISH', true); - } - elseif (isset($this->items[0])) - { - // If this component does not use state then show a direct delete button as we can not trash - JToolBarHelper::deleteList('', 'roles.delete', 'JTOOLBAR_DELETE'); - } - - if (isset($this->items[0]->state)) - { - JToolBarHelper::divider(); - JToolBarHelper::archiveList('roles.archive', 'JTOOLBAR_ARCHIVE'); - } - - if (isset($this->items[0]->checked_out)) - { - JToolBarHelper::custom('roles.checkin', 'checkin.png', 'checkin_f2.png', 'JTOOLBAR_CHECKIN', true); - } + JToolbarHelper::editList('role.edit'); } - // Show trash and delete for components that uses the state field - if (isset($this->items[0]->state)) - { - if ($state->get('filter.state') == -2 && $canDo->get('core.delete')) - { - JToolBarHelper::deleteList('', 'roles.delete', 'JTOOLBAR_EMPTY_TRASH'); - JToolBarHelper::divider(); - } - elseif ($canDo->get('core.edit.state')) - { - JToolBarHelper::trash('roles.trash', 'JTOOLBAR_TRASH'); - JToolBarHelper::divider(); - } - } - - if ($canDo->get('core.delete')) + if ($this->canDo->get('core.delete')) { JToolbarHelper::deleteList('JGLOBAL_CONFIRM_DELETE', 'roles.delete', 'JTOOLBAR_DELETE'); JToolbarHelper::divider(); } - if ($canDo->get('core.admin')) + if ($this->canDo->get('core.admin') || $this->canDo->get('core.options')) { - JToolBarHelper::preferences('com_subusers'); + JToolbarHelper::preferences('com_subusers'); + JToolbarHelper::divider(); } - - // Set sidebar action - New in 3.0 - JHtmlSidebar::setAction('index.php?option=com_subusers&view=roles'); - - $this->extra_sidebar = ''; - JHtmlSidebar::addFilter( - - JText::_('JOPTION_SELECT_PUBLISHED'), - - 'filter_published', - - JHtml::_('select.options', JHtml::_('jgrid.publishedOptions'), "value", "text", $this->state->get('filter.state'), true) - - ); - } - - /** - * Method to order fields - * - * @return void - */ - protected function getSortFields() - { - return array( - 'a.`id`' => JText::_('JGRID_HEADING_ID'), - 'a.`name`' => JText::_('COM_SUBUSERS_ROLES_NAME') - ); } } diff --git a/src/administrator/views/user/view.html.php b/src/administrator/views/user/view.html.php index 5cf56ba..373d25e 100755 --- a/src/administrator/views/user/view.html.php +++ b/src/administrator/views/user/view.html.php @@ -15,15 +15,37 @@ /** * View to edit * - * @since 1.6 + * @since 1.0.0 */ class SubusersViewUser extends HtmlView { - protected $state; + /** + * The JForm object + * + * @var \Joomla\CMS\Form\Form + */ + protected $form; + /** + * The active item + * + * @var object + */ protected $item; - protected $form; + /** + * The model state + * + * @var object + */ + protected $state; + + /** + * The actions the user is authorised to perform + * + * @var JObject + */ + protected $canDo; /** * Display the view @@ -40,13 +62,15 @@ public function display($tpl = null) $this->item = $this->get('Item'); $this->form = $this->get('Form'); - // Check for errors. + $this->canDo = JHelperContent::getActions('com_subusers', 'user', $this->item->id); + if (count($errors = $this->get('Errors'))) { - throw new Exception(implode("\n", $errors)); + throw new Exception(implode("\n", $errors), 500); } $this->addToolbar(); + parent::display($tpl); } @@ -59,49 +83,51 @@ public function display($tpl = null) */ protected function addToolbar() { - Factory::getApplication()->input->set('hidemainmenu', true); + $user = Factory::getUser(); + $isNew = ($this->item->id == 0); - $user = Factory::getUser(); - $isNew = ($this->item->id == 0); - - if (isset($this->item->checked_out)) - { - $checkedOut = !($this->item->checked_out == 0 || $this->item->checked_out == $user->id); - } - else - { - $checkedOut = false; - } - - $canDo = SubusersHelper::getActions(); + $canDo = $this->canDo; + $layout = Factory::getApplication()->input->get("layout"); + $this->sidebar = JHtmlSidebar::render(); JToolBarHelper::title(JText::_('COM_SUBUSERS_TITLE_USER'), 'user.png'); - // If not checked out, can save the item. - if (!$checkedOut && ($canDo->get('core.edit') || ($canDo->get('core.create')))) - { - JToolBarHelper::apply('user.apply', 'JTOOLBAR_APPLY'); - JToolBarHelper::save('user.save', 'JTOOLBAR_SAVE'); - } - - if (!$checkedOut && ($canDo->get('core.create'))) + // For new records, check the create permission. + if ($layout != "default") { - JToolBarHelper::custom('user.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + Factory::getApplication()->input->set('hidemainmenu', true); + + if ($isNew) + { + JToolbarHelper::save('user.save'); + JToolbarHelper::save2new('user.save2new'); + JToolbarHelper::cancel('user.cancel'); + } + else + { + if ($this->isEditable($canDo, $user->id)) + { + JToolbarHelper::save('user.save'); + } + + JToolbarHelper::cancel('user.cancel', 'JTOOLBAR_CLOSE'); + } } - // If an existing item, can save to a copy. - if (!$isNew && $canDo->get('core.create')) - { - JToolBarHelper::custom('user.save2copy', 'save-copy.png', 'save-copy_f2.png', 'JTOOLBAR_SAVE_AS_COPY', false); - } + JToolbarHelper::divider(); + } - if (empty($this->item->id)) - { - JToolBarHelper::cancel('user.cancel', 'JTOOLBAR_CANCEL'); - } - else - { - JToolBarHelper::cancel('user.cancel', 'JTOOLBAR_CLOSE'); - } + /** + * Is editable + * + * @param Object $canDo Checked Out + * + * @param integer $userId User ID + * + * @return boolean + */ + protected function isEditable($canDo, $userId) + { + return $canDo->get('core.edit') || ($canDo->get('core.edit.own') && $this->item->created_by == $userId); } } From 3341ecadc8ba97cb1169e5f43b60f4f5aa2d5212 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CPraneet?= <“praneet_s@tekditechnologies.com”> Date: Wed, 17 Oct 2018 12:58:57 +0530 Subject: [PATCH 02/24] Feature #8 feat: Added role and client filters for users list --- src/administrator/models/users.php | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/administrator/models/users.php b/src/administrator/models/users.php index 3a5e029..d860780 100755 --- a/src/administrator/models/users.php +++ b/src/administrator/models/users.php @@ -120,6 +120,27 @@ protected function getListQuery() } } + $roleId = $this->getState('filter.role_id'); + + if (!empty($roleId)) + { + $query->where($db->quoteName('a.role_id') . " = " . (int) $roleId); + } + + $client = $this->getState('filter.client'); + + if (!empty($client)) + { + $query->where($db->quoteName('a.client') . " = " . $db->quote($client)); + } + + $clientId = $this->getState('filter.client_id'); + + if (!empty($clientId)) + { + $query->where($db->quoteName('a.client_id') . " = " . (int) $clientId); + } + $orderCol = $this->state->get('list.ordering'); $orderDirn = $this->state->get('list.direction'); From 3475e58afb8c1aad318853d6d529a9e4ab3d5375 Mon Sep 17 00:00:00 2001 From: Deepa Date: Mon, 15 Jul 2019 18:46:32 +0530 Subject: [PATCH 03/24] Bug #147535 fix: Backend : Com_subuser view (Actions,Role Action Mappings,Users) sorting is not working --- src/administrator/models/actions.php | 12 +- .../models/forms/filter_roles.xml | 2 +- src/administrator/models/roles.php | 4 +- src/administrator/models/users.php | 12 +- .../views/actions/tmpl/default.php | 114 +++++++++--------- .../views/users/tmpl/default.php | 2 +- .../en-GB/en-GB.com_subusers.ini | 3 + 7 files changed, 80 insertions(+), 69 deletions(-) diff --git a/src/administrator/models/actions.php b/src/administrator/models/actions.php index 0133ecf..c15bf73 100755 --- a/src/administrator/models/actions.php +++ b/src/administrator/models/actions.php @@ -33,9 +33,10 @@ public function __construct($config = array()) if (empty($config['filter_fields'])) { $config['filter_fields'] = array( - 'id', 'a.`id`', - 'name', 'a.`name`', - 'client', 'a.`client`' + 'id', 'a.id', + 'name', 'a.name', + 'client', 'a.client', + 'code', 'a.code' ); } @@ -115,7 +116,10 @@ protected function getListQuery() else { $search = $db->Quote('%' . $db->escape($search, true) . '%'); - $query->where('( a.`name` LIKE ' . $search . ' )'); + $query->where('( a.`name` LIKE ' . $search . + ' OR a.client LIKE ' . $search . + ' OR a.code LIKE ' . $search . + ' )'); } } diff --git a/src/administrator/models/forms/filter_roles.xml b/src/administrator/models/forms/filter_roles.xml index a223100..0d181ed 100644 --- a/src/administrator/models/forms/filter_roles.xml +++ b/src/administrator/models/forms/filter_roles.xml @@ -5,7 +5,7 @@ name="search" type="text" label="COM_SUBUSERS_FILTER_SEARCH_LABEL" - description="COM_SUBUSERS_ACTION_FILTER_SEARCH_DESC" + description="COM_SUBUSERS_ROLES_FILTER_SEARCH_DESC" hint="JSEARCH_FILTER" filter="string" /> diff --git a/src/administrator/models/roles.php b/src/administrator/models/roles.php index 0641c61..66c418e 100755 --- a/src/administrator/models/roles.php +++ b/src/administrator/models/roles.php @@ -98,7 +98,9 @@ protected function getListQuery() else { $search = $db->Quote('%' . $db->escape($search, true) . '%'); - $query->where('( a.`name` LIKE ' . $search . ' )'); + $query->where('( a.`name` LIKE ' . $search . + ' OR a.client LIKE ' . $search . + ' )'); } } diff --git a/src/administrator/models/users.php b/src/administrator/models/users.php index d860780..123ddb7 100755 --- a/src/administrator/models/users.php +++ b/src/administrator/models/users.php @@ -30,12 +30,12 @@ public function __construct($config = array()) if (empty($config['filter_fields'])) { $config['filter_fields'] = array( - 'id', 'a.`id`', - 'user_id', 'a.`user_id`', - 'role_id', 'a.`role_id`', - 'client', 'a.`client`', - 'client_id', 'a.`client_id`', - 'created_by', 'a.`created_by`', + 'id', 'a.id', + 'user_id', 'a.user_id', + 'role_id', 'a.role_id', + 'client', 'a.client', + 'client_id', 'a.client_id', + 'created_by', 'a.created_by', ); } diff --git a/src/administrator/views/actions/tmpl/default.php b/src/administrator/views/actions/tmpl/default.php index 5c9369b..9d14d98 100755 --- a/src/administrator/views/actions/tmpl/default.php +++ b/src/administrator/views/actions/tmpl/default.php @@ -26,8 +26,8 @@
- - sidebar)) + sidebar)) { ?>
@@ -42,10 +42,10 @@
$this)); - ?> - items)) { ?> @@ -57,48 +57,50 @@ else { ?> - - - - - - - - - - - - - - - - - - items as $i => $item) - { - $canEdit = $this->canDo->get('core.edit'); - $canEditOwn = $this->canDo->get('core.edit.own'); - ?> - +
- - - - - - - - - -
- pagination->getListFooter(); ?> -
+ + + + + + + + + + + + + + + + + items as $i => $item) + { + $canEdit = $this->canDo->get('core.edit'); + $canEditOwn = $this->canDo->get('core.edit.own'); + ?> + - - -
+ + + + + + + + + +
+ pagination->getListFooter(); ?> +
id); ?>
- escape($item->name); ?> + } + else + { + ?> escape($item->name); ?> escape($item->client); ?>
id; ?>
- - - - + + + + + + +
diff --git a/src/administrator/views/users/tmpl/default.php b/src/administrator/views/users/tmpl/default.php index bb567f4..82264f4 100755 --- a/src/administrator/views/users/tmpl/default.php +++ b/src/administrator/views/users/tmpl/default.php @@ -71,7 +71,7 @@ - + diff --git a/src/languages/administrator/en-GB/en-GB.com_subusers.ini b/src/languages/administrator/en-GB/en-GB.com_subusers.ini index 9a08e13..68b88dc 100755 --- a/src/languages/administrator/en-GB/en-GB.com_subusers.ini +++ b/src/languages/administrator/en-GB/en-GB.com_subusers.ini @@ -202,3 +202,6 @@ COM_SUBUSERS_FORM_DESC_ACTION_CODE="Choose unique code name" ;Component option COM_SUBUSERS_TOOLBAR_DATABASE_FIX="Fix Database" +COM_SUBUSERS_ROLES_FILTER_SEARCH_DESC="Search by Name, Client" +COM_SUBUSERS_ACTION_FILTER_SEARCH_DESC="Search by Name, Code, Client" +COM_SUBUSERS_USERS_FILTER_SEARCH_DESC="Search by User Name, Role" From 428cd49f2242d751402e5c581a89ad34fbd9423f Mon Sep 17 00:00:00 2001 From: Deepa Date: Wed, 17 Jul 2019 16:39:30 +0530 Subject: [PATCH 04/24] Bug #147535 fix: Backend : Com_subuser view (Actions,Role Action Mappings,Users) sorting is not working --- src/administrator/models/actions.php | 2 +- src/administrator/models/roles.php | 2 +- src/administrator/models/users.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/administrator/models/actions.php b/src/administrator/models/actions.php index c15bf73..4538ac5 100755 --- a/src/administrator/models/actions.php +++ b/src/administrator/models/actions.php @@ -115,7 +115,7 @@ protected function getListQuery() } else { - $search = $db->Quote('%' . $db->escape($search, true) . '%'); + $search = $db->Quote('%' . $db->escape(trim($search), true) . '%'); $query->where('( a.`name` LIKE ' . $search . ' OR a.client LIKE ' . $search . ' OR a.code LIKE ' . $search . diff --git a/src/administrator/models/roles.php b/src/administrator/models/roles.php index 66c418e..bbe1b11 100755 --- a/src/administrator/models/roles.php +++ b/src/administrator/models/roles.php @@ -97,7 +97,7 @@ protected function getListQuery() } else { - $search = $db->Quote('%' . $db->escape($search, true) . '%'); + $search = $db->Quote('%' . $db->escape(trim($search), true) . '%'); $query->where('( a.`name` LIKE ' . $search . ' OR a.client LIKE ' . $search . ' )'); diff --git a/src/administrator/models/users.php b/src/administrator/models/users.php index 123ddb7..a52271b 100755 --- a/src/administrator/models/users.php +++ b/src/administrator/models/users.php @@ -115,7 +115,7 @@ protected function getListQuery() } else { - $search = $db->Quote('%' . $db->escape($search, true) . '%'); + $search = $db->Quote('%' . $db->escape(trim($search), true) . '%'); $query->where('( uc.`name` LIKE ' . $search . ' OR a.`user_id` LIKE ' . $search . ' OR a.`client_id` LIKE ' . $search . ' )'); } } From 36421f14c70a3fb099c65c8248e27003d808424c Mon Sep 17 00:00:00 2001 From: Amol Thite Date: Wed, 7 Aug 2019 18:34:20 +0530 Subject: [PATCH 05/24] Task #14 chore: Update the doc comment --- src/administrator/controller.php | 9 +++++---- src/administrator/controllers/action.php | 9 +++++---- src/administrator/controllers/actions.php | 10 ++++++---- src/administrator/controllers/database.php | 6 ++++-- src/administrator/controllers/mapping.php | 9 +++++---- src/administrator/controllers/mappings.php | 9 +++++---- src/administrator/controllers/role.php | 9 +++++---- src/administrator/controllers/roles.php | 9 +++++---- src/administrator/controllers/user.php | 9 +++++---- src/administrator/controllers/users.php | 9 +++++---- src/administrator/helpers/subusers.php | 10 ++++++---- src/administrator/includes/rbacl.php | 9 +++++---- src/administrator/libraries/action.php | 9 +++++---- src/administrator/libraries/role.php | 9 +++++---- src/administrator/models/action.php | 11 ++++++----- src/administrator/models/actions.php | 11 ++++++----- src/administrator/models/database.php | 6 ++++-- src/administrator/models/fields/action.php | 9 +++++---- src/administrator/models/fields/role.php | 9 +++++---- src/administrator/models/mapping.php | 9 +++++---- src/administrator/models/mappings.php | 11 ++++++----- src/administrator/models/role.php | 11 ++++++----- src/administrator/models/roles.php | 9 +++++---- src/administrator/models/user.php | 11 ++++++----- src/administrator/models/users.php | 9 +++++---- src/administrator/sql/install.mysql.utf8.sql | 8 ++++---- src/administrator/subusers.php | 9 +++++---- src/administrator/tables/action.php | 9 +++++---- src/administrator/tables/mapping.php | 14 ++++++++------ src/administrator/tables/role.php | 9 +++++---- src/administrator/tables/user.php | 9 +++++---- src/administrator/views/action/view.html.php | 9 +++++---- src/administrator/views/actions/tmpl/default.php | 2 +- src/administrator/views/actions/view.html.php | 9 +++++---- src/administrator/views/mapping/view.html.php | 10 +++++----- .../views/mappings/tmpl/default.php | 2 +- src/administrator/views/mappings/view.html.php | 9 +++++---- src/administrator/views/role/view.html.php | 9 +++++---- src/administrator/views/roles/tmpl/default.php | 2 +- src/administrator/views/roles/view.html.php | 9 +++++---- src/administrator/views/user/view.html.php | 9 +++++---- src/administrator/views/users/tmpl/default.php | 2 +- src/administrator/views/users/view.html.php | 9 +++++---- src/script.php | 16 ++++++++-------- 44 files changed, 214 insertions(+), 172 deletions(-) diff --git a/src/administrator/controller.php b/src/administrator/controller.php index 383a9e1..91935e1 100755 --- a/src/administrator/controller.php +++ b/src/administrator/controller.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/controllers/action.php b/src/administrator/controllers/action.php index 0dabcb6..aa782ea 100755 --- a/src/administrator/controllers/action.php +++ b/src/administrator/controllers/action.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ // No direct access diff --git a/src/administrator/controllers/actions.php b/src/administrator/controllers/actions.php index 8ca55b3..4044816 100755 --- a/src/administrator/controllers/actions.php +++ b/src/administrator/controllers/actions.php @@ -1,11 +1,13 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ + defined('_JEXEC') or die(); use Joomla\CMS\MVC\Controller\AdminController; diff --git a/src/administrator/controllers/database.php b/src/administrator/controllers/database.php index db6c9d0..1bab1a4 100755 --- a/src/administrator/controllers/database.php +++ b/src/administrator/controllers/database.php @@ -2,8 +2,10 @@ /** * @package Subusers * @subpackage com_subusers - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/controllers/mapping.php b/src/administrator/controllers/mapping.php index fb3c37f..09b02ca 100755 --- a/src/administrator/controllers/mapping.php +++ b/src/administrator/controllers/mapping.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/controllers/mappings.php b/src/administrator/controllers/mappings.php index abb94d1..41c6970 100755 --- a/src/administrator/controllers/mappings.php +++ b/src/administrator/controllers/mappings.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/controllers/role.php b/src/administrator/controllers/role.php index f8f1c6a..d7f3013 100755 --- a/src/administrator/controllers/role.php +++ b/src/administrator/controllers/role.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ // No direct access diff --git a/src/administrator/controllers/roles.php b/src/administrator/controllers/roles.php index cdab763..5cad871 100755 --- a/src/administrator/controllers/roles.php +++ b/src/administrator/controllers/roles.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/controllers/user.php b/src/administrator/controllers/user.php index ece4a7d..3d41993 100755 --- a/src/administrator/controllers/user.php +++ b/src/administrator/controllers/user.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/controllers/users.php b/src/administrator/controllers/users.php index 889bfc0..d149fae 100755 --- a/src/administrator/controllers/users.php +++ b/src/administrator/controllers/users.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/helpers/subusers.php b/src/administrator/helpers/subusers.php index 972e257..8f15faf 100755 --- a/src/administrator/helpers/subusers.php +++ b/src/administrator/helpers/subusers.php @@ -1,11 +1,13 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ + defined('_JEXEC') or die(); /** diff --git a/src/administrator/includes/rbacl.php b/src/administrator/includes/rbacl.php index be4ff87..4717e43 100644 --- a/src/administrator/includes/rbacl.php +++ b/src/administrator/includes/rbacl.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die(); diff --git a/src/administrator/libraries/action.php b/src/administrator/libraries/action.php index 855e4d1..b28aee9 100644 --- a/src/administrator/libraries/action.php +++ b/src/administrator/libraries/action.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die('Unauthorized Access'); diff --git a/src/administrator/libraries/role.php b/src/administrator/libraries/role.php index 7d2fd8e..9afbd83 100644 --- a/src/administrator/libraries/role.php +++ b/src/administrator/libraries/role.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die('Unauthorized Access'); diff --git a/src/administrator/models/action.php b/src/administrator/models/action.php index af56ff6..38a8aea 100755 --- a/src/administrator/models/action.php +++ b/src/administrator/models/action.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; @@ -58,7 +59,7 @@ public function getForm($data = array(), $loadData = true) $form = $this->loadForm( 'com_subusers.action', 'action', array('control' => 'jform', - 'load_data' => $loadData + 'load_data' => $loadData, ) ); diff --git a/src/administrator/models/actions.php b/src/administrator/models/actions.php index 4538ac5..73f9724 100755 --- a/src/administrator/models/actions.php +++ b/src/administrator/models/actions.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die(); @@ -36,7 +37,7 @@ public function __construct($config = array()) 'id', 'a.id', 'name', 'a.name', 'client', 'a.client', - 'code', 'a.code' + 'code', 'a.code', ); } diff --git a/src/administrator/models/database.php b/src/administrator/models/database.php index b890c54..791fc0c 100755 --- a/src/administrator/models/database.php +++ b/src/administrator/models/database.php @@ -3,8 +3,9 @@ * @package Subusers * @subpackage com_subusers * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; @@ -37,6 +38,7 @@ public function getItems() return false; } + return $changeSet; } } diff --git a/src/administrator/models/fields/action.php b/src/administrator/models/fields/action.php index d3db3ee..72446fb 100644 --- a/src/administrator/models/fields/action.php +++ b/src/administrator/models/fields/action.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die(); diff --git a/src/administrator/models/fields/role.php b/src/administrator/models/fields/role.php index 7d3545a..dc6afff 100644 --- a/src/administrator/models/fields/role.php +++ b/src/administrator/models/fields/role.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die(); diff --git a/src/administrator/models/mapping.php b/src/administrator/models/mapping.php index 594580f..94db96b 100755 --- a/src/administrator/models/mapping.php +++ b/src/administrator/models/mapping.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/models/mappings.php b/src/administrator/models/mappings.php index 358d98f..4a0ef5a 100755 --- a/src/administrator/models/mappings.php +++ b/src/administrator/models/mappings.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; @@ -81,7 +82,7 @@ protected function getListQuery() $db = $this->getDbo(); $query = $db->getQuery(true); - $query->select(array('a.*','b.name as role_name', 'b.client as role_client', 'c.name as action_name', 'c.code as action_code')); + $query->select(array('a.*', 'b.name as role_name', 'b.client as role_client', 'c.name as action_name', 'c.code as action_code')); $query->from('`#__tjsu_role_action_map` AS a'); $query->join('INNER', $db->quoteName('#__tjsu_roles', 'b') . ' ON (' . $db->quoteName('a.role_id') . ' = ' . $db->quoteName('b.id') . ')'); $query->join('INNER', $db->quoteName('#__tjsu_actions', 'c') . ' ON (' . $db->quoteName('a.action_id') . ' = ' . $db->quoteName('c.id') . ')'); diff --git a/src/administrator/models/role.php b/src/administrator/models/role.php index 5d24833..5e1633e 100755 --- a/src/administrator/models/role.php +++ b/src/administrator/models/role.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; @@ -57,7 +58,7 @@ public function getForm($data = array(), $loadData = true) $form = $this->loadForm( 'com_subusers.role', 'role', array('control' => 'jform', - 'load_data' => $loadData + 'load_data' => $loadData, ) ); diff --git a/src/administrator/models/roles.php b/src/administrator/models/roles.php index bbe1b11..3366df1 100755 --- a/src/administrator/models/roles.php +++ b/src/administrator/models/roles.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/models/user.php b/src/administrator/models/user.php index 1eb049a..f36d0fe 100755 --- a/src/administrator/models/user.php +++ b/src/administrator/models/user.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; @@ -60,7 +61,7 @@ public function getForm($data = array(), $loadData = true) $form = $this->loadForm( 'com_subusers.user', 'user', array('control' => 'jform', - 'load_data' => $loadData + 'load_data' => $loadData, ) ); diff --git a/src/administrator/models/users.php b/src/administrator/models/users.php index a52271b..b0e812e 100755 --- a/src/administrator/models/users.php +++ b/src/administrator/models/users.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/sql/install.mysql.utf8.sql b/src/administrator/sql/install.mysql.utf8.sql index 56e1212..6929ca2 100755 --- a/src/administrator/sql/install.mysql.utf8.sql +++ b/src/administrator/sql/install.mysql.utf8.sql @@ -12,7 +12,7 @@ CREATE TABLE IF NOT EXISTS `#__tjsu_roles` ( `modified_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `ordering` int(11) NOT NULL, PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci; -- -------------------------------------------------------- @@ -26,7 +26,7 @@ CREATE TABLE IF NOT EXISTS `#__tjsu_actions` ( `client` varchar(255) NOT NULL COMMENT 'The client name Eg. com_tjlms, com_jlike', `created_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci; -- -------------------------------------------------------- @@ -39,7 +39,7 @@ CREATE TABLE IF NOT EXISTS `#__tjsu_role_action_map` ( `role_id` int(11) NOT NULL COMMENT 'FK to roles table', `action_id` int(11) NOT NULL COMMENT 'FK to actions table', PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci; -- -------------------------------------------------------- @@ -58,4 +58,4 @@ CREATE TABLE IF NOT EXISTS `#__tjsu_users` ( `modified_by` int(11) NOT NULL, `modified_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci; diff --git a/src/administrator/subusers.php b/src/administrator/subusers.php index a09811a..bbfc51a 100755 --- a/src/administrator/subusers.php +++ b/src/administrator/subusers.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/tables/action.php b/src/administrator/tables/action.php index 01c9b52..43577ab 100755 --- a/src/administrator/tables/action.php +++ b/src/administrator/tables/action.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/tables/mapping.php b/src/administrator/tables/mapping.php index 6a4d74b..c1a1847 100755 --- a/src/administrator/tables/mapping.php +++ b/src/administrator/tables/mapping.php @@ -1,16 +1,18 @@ - * @copyright Copyright (C) 2005 - 2014. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @package Subusers + * @subpackage com_subusers + * + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ + // No direct access defined('_JEXEC') or die; use Joomla\Utilities\ArrayHelper; + /** * mapping Table class * diff --git a/src/administrator/tables/role.php b/src/administrator/tables/role.php index 2d51399..92f436e 100755 --- a/src/administrator/tables/role.php +++ b/src/administrator/tables/role.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/tables/user.php b/src/administrator/tables/user.php index 26aee90..0cff5cb 100755 --- a/src/administrator/tables/user.php +++ b/src/administrator/tables/user.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/views/action/view.html.php b/src/administrator/views/action/view.html.php index 2fee19c..3b0ca40 100755 --- a/src/administrator/views/action/view.html.php +++ b/src/administrator/views/action/view.html.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/views/actions/tmpl/default.php b/src/administrator/views/actions/tmpl/default.php index 9d14d98..ff74756 100755 --- a/src/administrator/views/actions/tmpl/default.php +++ b/src/administrator/views/actions/tmpl/default.php @@ -27,7 +27,7 @@
sidebar)) + if (!empty($this->sidebar)) { ?>
diff --git a/src/administrator/views/actions/view.html.php b/src/administrator/views/actions/view.html.php index 107c757..249b522 100755 --- a/src/administrator/views/actions/view.html.php +++ b/src/administrator/views/actions/view.html.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/views/mapping/view.html.php b/src/administrator/views/mapping/view.html.php index 8fb219e..05b63ce 100755 --- a/src/administrator/views/mapping/view.html.php +++ b/src/administrator/views/mapping/view.html.php @@ -1,16 +1,16 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; use Joomla\CMS\Factory; -use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\MVC\View\HtmlView; /** diff --git a/src/administrator/views/mappings/tmpl/default.php b/src/administrator/views/mappings/tmpl/default.php index 2848c59..3ed67ff 100755 --- a/src/administrator/views/mappings/tmpl/default.php +++ b/src/administrator/views/mappings/tmpl/default.php @@ -27,7 +27,7 @@
- sidebar)) + sidebar)) { ?>
diff --git a/src/administrator/views/mappings/view.html.php b/src/administrator/views/mappings/view.html.php index d8bb714..6adb191 100755 --- a/src/administrator/views/mappings/view.html.php +++ b/src/administrator/views/mappings/view.html.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/views/role/view.html.php b/src/administrator/views/role/view.html.php index 2e8c5e0..4c32d97 100755 --- a/src/administrator/views/role/view.html.php +++ b/src/administrator/views/role/view.html.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/views/roles/tmpl/default.php b/src/administrator/views/roles/tmpl/default.php index 8d0f3ca..c017d2d 100755 --- a/src/administrator/views/roles/tmpl/default.php +++ b/src/administrator/views/roles/tmpl/default.php @@ -27,7 +27,7 @@
- sidebar)) + sidebar)) { ?>
diff --git a/src/administrator/views/roles/view.html.php b/src/administrator/views/roles/view.html.php index b16a575..028a8f5 100755 --- a/src/administrator/views/roles/view.html.php +++ b/src/administrator/views/roles/view.html.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/views/user/view.html.php b/src/administrator/views/user/view.html.php index 373d25e..935ed18 100755 --- a/src/administrator/views/user/view.html.php +++ b/src/administrator/views/user/view.html.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/views/users/tmpl/default.php b/src/administrator/views/users/tmpl/default.php index 82264f4..e95fbe8 100755 --- a/src/administrator/views/users/tmpl/default.php +++ b/src/administrator/views/users/tmpl/default.php @@ -27,7 +27,7 @@
- sidebar)) + sidebar)) { ?>
diff --git a/src/administrator/views/users/view.html.php b/src/administrator/views/users/view.html.php index b30707e..095fb58 100755 --- a/src/administrator/views/users/view.html.php +++ b/src/administrator/views/users/view.html.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die(); diff --git a/src/script.php b/src/script.php index a6371d5..a1cc040 100755 --- a/src/script.php +++ b/src/script.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; @@ -61,7 +62,6 @@ public function install($parent) $this->installModules($parent); } - /** * Installs plugins for this component * @@ -114,7 +114,7 @@ private function installPlugins($parent) array( 'type LIKE ' . $db->quote('plugin'), 'element LIKE ' . $db->quote($pluginName), - 'folder LIKE ' . $db->quote($pluginGroup) + 'folder LIKE ' . $db->quote($pluginGroup), ) ); $db->setQuery($query); @@ -250,7 +250,7 @@ private function uninstallPlugins($parent) array( 'type LIKE ' . $db->quote('plugin'), 'element LIKE ' . $db->quote($pluginName), - 'folder LIKE ' . $db->quote($pluginGroup) + 'folder LIKE ' . $db->quote($pluginGroup), ) ); $db->setQuery($query); @@ -304,7 +304,7 @@ private function uninstallModules($parent) ->where( array( 'type LIKE ' . $db->quote('module'), - 'element LIKE ' . $db->quote($moduleName) + 'element LIKE ' . $db->quote($moduleName), ) ); $db->setQuery($query); From 69b97fafed5f3cbe00dafd203468ff53908b4a45 Mon Sep 17 00:00:00 2001 From: Tushar Shekokar Date: Tue, 17 Sep 2019 19:11:53 +0530 Subject: [PATCH 06/24] Get assigned roles by providing array of multiple action ids --- src/administrator/models/action.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/administrator/models/action.php b/src/administrator/models/action.php index af56ff6..fd068de 100755 --- a/src/administrator/models/action.php +++ b/src/administrator/models/action.php @@ -111,7 +111,16 @@ public function getAssignedRoles($actionId) $query->select('DISTINCT role_id'); $query->from($db->quoteName('#__tjsu_role_action_map')); - $query->where($db->quoteName('action_id') . " = " . (int) $actionId); + + if (is_array($actionId)) + { + $query->where($db->quoteName('action_id') . 'IN (' . implode(',', $db->quote($actionId)) . ')'); + } + else + { + $query->where($db->quoteName('action_id') . " = " . (int) $actionId); + } + $db->setQuery($query); return $db->loadColumn(); From d4a0e44f4b47b61a040969678830c614a37fdf97 Mon Sep 17 00:00:00 2001 From: Prav Date: Thu, 9 Jan 2020 14:37:56 +0530 Subject: [PATCH 07/24] Feature #155819 chore: Upgrade com_subuser --- src/administrator/controllers/mappings.php | 1 + src/administrator/includes/rbacl.php | 18 +++++---- src/administrator/models/action.php | 13 ++++++- src/administrator/models/fields/role.php | 1 + src/administrator/models/forms/mapping.xml | 39 +++++++------------ src/administrator/models/mapping.php | 10 ++++- src/administrator/models/mappings.php | 2 + src/administrator/models/role.php | 2 +- src/administrator/models/roles.php | 9 +++++ src/administrator/models/user.php | 13 +++++-- .../views/mappings/tmpl/default.php | 1 + 11 files changed, 69 insertions(+), 40 deletions(-) diff --git a/src/administrator/controllers/mappings.php b/src/administrator/controllers/mappings.php index 41c6970..f66a489 100755 --- a/src/administrator/controllers/mappings.php +++ b/src/administrator/controllers/mappings.php @@ -8,6 +8,7 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ +// No direct access. defined('_JEXEC') or die; use Joomla\CMS\MVC\Controller\AdminController; diff --git a/src/administrator/includes/rbacl.php b/src/administrator/includes/rbacl.php index 4717e43..79532ed 100644 --- a/src/administrator/includes/rbacl.php +++ b/src/administrator/includes/rbacl.php @@ -64,7 +64,7 @@ public static function table($name) **/ public static function model($name, $config = array()) { - BaseDatabaseModel::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_subusers/models'); + BaseDatabaseModel::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_subusers/models', 'SubusersModel'); // @TODO Add support for cache return BaseDatabaseModel::getInstance($name, 'SubusersModel', $config); @@ -130,7 +130,9 @@ public static function check($userId, $client, $action, $contentId = null) $userModel = self::model("user"); $contentRoleId = $userModel->getAssociatedContentRole($userId, $client, $contentId); - if (in_array($contentRoleId, $allowedRoles)) + $rolesAllowed = array_intersect($contentRoleId, $allowedRoles); + + if (!empty($rolesAllowed)) { return true; } @@ -166,15 +168,15 @@ public static function authorise($userId, $client, $action, $contentId = null) /** * Get user roles by user id and client id * - * @param integer $userId userId - * @param string $client client for role - * @param integer $clientContentIid content id + * @param integer $userId userId + * @param string $client client for role + * @param integer $clientContentId content id * * @return array * * @since __DEPLOY_VERSION__ */ - public static function getRoleByUser($userId, $client = '', $clientContentIid = 0) + public static function getRoleByUser($userId, $client = '', $clientContentId = null) { $roles = array(); @@ -191,9 +193,9 @@ public static function getRoleByUser($userId, $client = '', $clientContentIid = $query->where($db->quoteName('client') . " = " . $db->quote($client)); } - if (!empty($clientContentIid)) + if (!is_null($clientContentId)) { - $query->where($db->quoteName('client_id') . " = " . $db->quote($clientContentIid)); + $query->where($db->quoteName('client_id') . " = " . $db->quote($clientContentId)); } $db->setQuery($query); diff --git a/src/administrator/models/action.php b/src/administrator/models/action.php index 38a8aea..bf44e68 100755 --- a/src/administrator/models/action.php +++ b/src/administrator/models/action.php @@ -59,7 +59,7 @@ public function getForm($data = array(), $loadData = true) $form = $this->loadForm( 'com_subusers.action', 'action', array('control' => 'jform', - 'load_data' => $loadData, + 'load_data' => $loadData ) ); @@ -112,7 +112,16 @@ public function getAssignedRoles($actionId) $query->select('DISTINCT role_id'); $query->from($db->quoteName('#__tjsu_role_action_map')); - $query->where($db->quoteName('action_id') . " = " . (int) $actionId); + + if (is_array($actionId)) + { + $query->where($db->quoteName('action_id') . 'IN (' . implode(',', $db->quote($actionId)) . ')'); + } + else + { + $query->where($db->quoteName('action_id') . " = " . (int) $actionId); + } + $db->setQuery($query); return $db->loadColumn(); diff --git a/src/administrator/models/fields/role.php b/src/administrator/models/fields/role.php index dc6afff..7afc333 100644 --- a/src/administrator/models/fields/role.php +++ b/src/administrator/models/fields/role.php @@ -8,6 +8,7 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ +// No direct access. defined('_JEXEC') or die(); use Joomla\CMS\Factory; use Joomla\CMS\HTML\HTMLHelper; diff --git a/src/administrator/models/forms/mapping.xml b/src/administrator/models/forms/mapping.xml index a09657d..d9678e8 100755 --- a/src/administrator/models/forms/mapping.xml +++ b/src/administrator/models/forms/mapping.xml @@ -1,27 +1,18 @@ -
- - - -
+
+ + + + + + + + + + + + + +
\ No newline at end of file diff --git a/src/administrator/models/mapping.php b/src/administrator/models/mapping.php index 94db96b..ba3ac80 100755 --- a/src/administrator/models/mapping.php +++ b/src/administrator/models/mapping.php @@ -8,6 +8,7 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ +// No direct access. defined('_JEXEC') or die; use Joomla\CMS\Factory; @@ -55,7 +56,13 @@ public function getTable($type = 'Mapping', $prefix = 'SubusersTable', $config = */ public function getForm($data = array(), $loadData = true) { - $form = $this->loadForm('com_subusers.mapping', 'mapping', array('control' => 'jform', 'load_data' => $loadData)); + // Get the form. + $form = $this->loadForm( + 'com_subusers.mapping', 'mapping', + array('control' => 'jform', + 'load_data' => $loadData + ) + ); if (empty($form)) { @@ -74,6 +81,7 @@ public function getForm($data = array(), $loadData = true) */ protected function loadFormData() { + // Check the session for previously entered form data. $data = Factory::getApplication()->getUserState('com_subusers.edit.mapping.data', array()); if (empty($data)) diff --git a/src/administrator/models/mappings.php b/src/administrator/models/mappings.php index 4a0ef5a..f0510c0 100755 --- a/src/administrator/models/mappings.php +++ b/src/administrator/models/mappings.php @@ -61,6 +61,7 @@ protected function populateState($ordering = 'a.id', $direction = 'desc') { $app = Factory::getApplication('administrator'); + // Load the filter state. $search = $app->getUserStateFromRequest($this->context . '.filter.search', 'filter_search'); $this->setState('filter.search', $search); @@ -79,6 +80,7 @@ protected function populateState($ordering = 'a.id', $direction = 'desc') */ protected function getListQuery() { + // Create a new query object. $db = $this->getDbo(); $query = $db->getQuery(true); diff --git a/src/administrator/models/role.php b/src/administrator/models/role.php index 400a81b..64ce006 100755 --- a/src/administrator/models/role.php +++ b/src/administrator/models/role.php @@ -59,7 +59,7 @@ public function getForm($data = array(), $loadData = true) $form = $this->loadForm( 'com_subusers.role', 'role', array('control' => 'jform', - 'load_data' => $loadData, + 'load_data' => $loadData ) ); diff --git a/src/administrator/models/roles.php b/src/administrator/models/roles.php index 3366df1..691b0f5 100755 --- a/src/administrator/models/roles.php +++ b/src/administrator/models/roles.php @@ -58,9 +58,11 @@ protected function populateState($ordering = 'a.id', $direction = 'desc') { $app = Factory::getApplication('administrator'); + // Load the filter state. $search = $app->getUserStateFromRequest($this->context . '.filter.search', 'filter_search'); $this->setState('filter.search', $search); + // Load the parameters. $params = JComponentHelper::getParams('com_subusers'); $this->setState('params', $params); @@ -76,18 +78,23 @@ protected function populateState($ordering = 'a.id', $direction = 'desc') */ protected function getListQuery() { + // Create a new query object. $db = $this->getDbo(); $query = $db->getQuery(true); + // Select the required fields from the table. $query->select( $this->getState( 'list.select', 'DISTINCT a.*' ) ); $query->from('`#__tjsu_roles` AS a'); + + // Join over the user field 'created_by' $query->select('`created_by`.name AS `created_by`'); $query->join('LEFT', '#__users AS `created_by` ON `created_by`.id = a.`created_by`'); + // Filter by search in title $search = $this->getState('filter.search'); if (!empty($search)) @@ -107,11 +114,13 @@ protected function getListQuery() $client = $this->getState('filter.client'); + // Filter by client if (!empty($client)) { $query->where($db->quoteName('a.client') . ' = ' . $db->quote($client)); } + // Add the list ordering clause. $orderCol = $this->state->get('list.ordering'); $orderDirn = $this->state->get('list.direction'); diff --git a/src/administrator/models/user.php b/src/administrator/models/user.php index f36d0fe..7c31e52 100755 --- a/src/administrator/models/user.php +++ b/src/administrator/models/user.php @@ -61,7 +61,7 @@ public function getForm($data = array(), $loadData = true) $form = $this->loadForm( 'com_subusers.user', 'user', array('control' => 'jform', - 'load_data' => $loadData, + 'load_data' => $loadData ) ); @@ -109,7 +109,7 @@ protected function loadFormData() * * @since __DEPLOY_VERSION__ */ - public function getAssociatedContentRole($userId, $client, $contentId) + public function getAssociatedContentRole($userId, $client, $contentId = null) { $db = Factory::getDbo(); $query = $db->getQuery(true); @@ -118,9 +118,14 @@ public function getAssociatedContentRole($userId, $client, $contentId) $query->from($db->quoteName('#__tjsu_users')); $query->where($db->quoteName('user_id') . " = " . (int) $userId); $query->where($db->quoteName('client') . " = " . $db->q($client)); - $query->where($db->quoteName('client_id') . " = " . (int) $contentId); + + if (!is_null($contentId)) + { + $query->where($db->quoteName('client_id') . " = " . $db->quote($contentId)); + } + $db->setQuery($query); - return $db->loadResult(); + return $db->loadColumn(); } } diff --git a/src/administrator/views/mappings/tmpl/default.php b/src/administrator/views/mappings/tmpl/default.php index 3ed67ff..c08cb13 100755 --- a/src/administrator/views/mappings/tmpl/default.php +++ b/src/administrator/views/mappings/tmpl/default.php @@ -7,6 +7,7 @@ * @license GNU General Public License version 2 or later; see LICENSE.txt */ +// No direct access defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; From 37152137ed77653b1c62c0063e27977c4b7fbe06 Mon Sep 17 00:00:00 2001 From: Kishori Karale Date: Mon, 10 Oct 2022 11:18:31 +0530 Subject: [PATCH 08/24] Task #189115 feat: com_subusers improvements --- src/administrator/controller.php | 2 +- src/administrator/controllers/action.php | 2 +- src/administrator/controllers/actions.php | 2 +- src/administrator/controllers/database.php | 2 +- src/administrator/controllers/mapping.php | 13 +++- src/administrator/controllers/mappings.php | 69 ++++++++++++++++++- src/administrator/controllers/role.php | 2 +- src/administrator/controllers/roles.php | 2 +- src/administrator/controllers/user.php | 2 +- src/administrator/controllers/users.php | 2 +- src/administrator/helpers/subusers.php | 2 +- src/administrator/includes/rbacl.php | 2 +- src/administrator/libraries/action.php | 2 +- src/administrator/libraries/role.php | 2 +- src/administrator/models/action.php | 2 +- src/administrator/models/actions.php | 2 +- src/administrator/models/database.php | 2 +- src/administrator/models/fields/role.php | 2 +- src/administrator/models/mapping.php | 2 +- src/administrator/models/mappings.php | 2 +- src/administrator/models/role.php | 2 +- src/administrator/models/roles.php | 2 +- src/administrator/models/user.php | 2 +- src/administrator/models/users.php | 2 +- src/administrator/subusers.php | 2 +- src/administrator/tables/action.php | 2 +- src/administrator/tables/mapping.php | 2 +- src/administrator/tables/role.php | 2 +- src/administrator/tables/user.php | 2 +- src/administrator/views/action/view.html.php | 2 +- src/administrator/views/actions/view.html.php | 2 +- src/administrator/views/mapping/tmpl/edit.php | 9 +-- src/administrator/views/mapping/view.html.php | 2 +- .../views/mappings/tmpl/default.php | 4 +- .../views/mappings/view.html.php | 5 +- src/administrator/views/role/view.html.php | 2 +- .../views/roles/tmpl/default.php | 5 +- src/administrator/views/roles/view.html.php | 5 +- src/administrator/views/user/view.html.php | 2 +- src/administrator/views/users/view.html.php | 2 +- 40 files changed, 129 insertions(+), 47 deletions(-) diff --git a/src/administrator/controller.php b/src/administrator/controller.php index 91935e1..9b4f2ae 100755 --- a/src/administrator/controller.php +++ b/src/administrator/controller.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/controllers/action.php b/src/administrator/controllers/action.php index aa782ea..b923a00 100755 --- a/src/administrator/controllers/action.php +++ b/src/administrator/controllers/action.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/controllers/actions.php b/src/administrator/controllers/actions.php index 4044816..1979e81 100755 --- a/src/administrator/controllers/actions.php +++ b/src/administrator/controllers/actions.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/controllers/database.php b/src/administrator/controllers/database.php index 1bab1a4..690eb77 100755 --- a/src/administrator/controllers/database.php +++ b/src/administrator/controllers/database.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/controllers/mapping.php b/src/administrator/controllers/mapping.php index 09b02ca..fbbafb9 100755 --- a/src/administrator/controllers/mapping.php +++ b/src/administrator/controllers/mapping.php @@ -4,10 +4,11 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ +// No direct access defined('_JEXEC') or die; use Joomla\CMS\MVC\Controller\FormController; @@ -19,4 +20,14 @@ */ class SubusersControllerMapping extends FormController { + /** + * Constructor + * + * @throws Exception + */ + public function __construct() + { + $this->view_list = 'mappings'; + parent::__construct(); + } } diff --git a/src/administrator/controllers/mappings.php b/src/administrator/controllers/mappings.php index f66a489..a9c9350 100755 --- a/src/administrator/controllers/mappings.php +++ b/src/administrator/controllers/mappings.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ @@ -12,6 +12,7 @@ defined('_JEXEC') or die; use Joomla\CMS\MVC\Controller\AdminController; +use Joomla\Utilities\ArrayHelper; /** * Mappings list controller class. @@ -20,6 +21,39 @@ */ class SubusersControllerMappings extends AdminController { + /** + * Method to clone existing Mappings + * + * @return void + */ + public function duplicate() + { + // Check for request forgeries + Jsession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Get id(s) + $pks = $this->input->post->get('cid', array(), 'array'); + + try + { + if (empty($pks)) + { + throw new Exception(JText::_('COM_SUBUSERS_NO_ELEMENT_SELECTED')); + } + + ArrayHelper::toInteger($pks); + $model = $this->getModel(); + $model->duplicate($pks); + $this->setMessage(Jtext::_('COM_SUBUSERS_ITEMS_SUCCESS_DUPLICATED')); + } + catch (Exception $e) + { + JFactory::getApplication()->enqueueMessage($e->getMessage(), 'warning'); + } + + $this->setRedirect('index.php?option=com_subusers&view=mappings'); + } + /** * Proxy for getModel. * @@ -35,4 +69,37 @@ public function getModel($name = 'mapping', $prefix = 'SubusersModel', $config = { return parent::getModel($name, $prefix, array('ignore_request' => true)); } + + /** + * Method to save the submitted ordering values for records via AJAX. + * + * @return void + * + * @since 3.0 + */ + public function saveOrderAjax() + { + // Get the input + $input = JFactory::getApplication()->input; + $pks = $input->post->get('cid', array(), 'array'); + $order = $input->post->get('order', array(), 'array'); + + // Sanitize the input + ArrayHelper::toInteger($pks); + ArrayHelper::toInteger($order); + + // Get the model + $model = $this->getModel(); + + // Save the ordering + $return = $model->saveorder($pks, $order); + + if ($return) + { + echo "1"; + } + + // Close the application + JFactory::getApplication()->close(); + } } diff --git a/src/administrator/controllers/role.php b/src/administrator/controllers/role.php index d7f3013..6170e2d 100755 --- a/src/administrator/controllers/role.php +++ b/src/administrator/controllers/role.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/controllers/roles.php b/src/administrator/controllers/roles.php index 5cad871..df38804 100755 --- a/src/administrator/controllers/roles.php +++ b/src/administrator/controllers/roles.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/controllers/user.php b/src/administrator/controllers/user.php index 3d41993..58ef7f7 100755 --- a/src/administrator/controllers/user.php +++ b/src/administrator/controllers/user.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/controllers/users.php b/src/administrator/controllers/users.php index d149fae..8b6b620 100755 --- a/src/administrator/controllers/users.php +++ b/src/administrator/controllers/users.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/helpers/subusers.php b/src/administrator/helpers/subusers.php index 8f15faf..ab7a9f0 100755 --- a/src/administrator/helpers/subusers.php +++ b/src/administrator/helpers/subusers.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/includes/rbacl.php b/src/administrator/includes/rbacl.php index 79532ed..bb55c05 100644 --- a/src/administrator/includes/rbacl.php +++ b/src/administrator/includes/rbacl.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/libraries/action.php b/src/administrator/libraries/action.php index b28aee9..3822273 100644 --- a/src/administrator/libraries/action.php +++ b/src/administrator/libraries/action.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/libraries/role.php b/src/administrator/libraries/role.php index 9afbd83..ce92559 100644 --- a/src/administrator/libraries/role.php +++ b/src/administrator/libraries/role.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/models/action.php b/src/administrator/models/action.php index bf44e68..4fdbe2f 100755 --- a/src/administrator/models/action.php +++ b/src/administrator/models/action.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/models/actions.php b/src/administrator/models/actions.php index 73f9724..89fa085 100755 --- a/src/administrator/models/actions.php +++ b/src/administrator/models/actions.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/models/database.php b/src/administrator/models/database.php index 791fc0c..d0486df 100755 --- a/src/administrator/models/database.php +++ b/src/administrator/models/database.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/models/fields/role.php b/src/administrator/models/fields/role.php index 7afc333..095e82d 100644 --- a/src/administrator/models/fields/role.php +++ b/src/administrator/models/fields/role.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/models/mapping.php b/src/administrator/models/mapping.php index ba3ac80..11f1e1f 100755 --- a/src/administrator/models/mapping.php +++ b/src/administrator/models/mapping.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/models/mappings.php b/src/administrator/models/mappings.php index f0510c0..fe3e55e 100755 --- a/src/administrator/models/mappings.php +++ b/src/administrator/models/mappings.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/models/role.php b/src/administrator/models/role.php index 64ce006..cd83518 100755 --- a/src/administrator/models/role.php +++ b/src/administrator/models/role.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/models/roles.php b/src/administrator/models/roles.php index 691b0f5..373632c 100755 --- a/src/administrator/models/roles.php +++ b/src/administrator/models/roles.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/models/user.php b/src/administrator/models/user.php index 7c31e52..b814b2b 100755 --- a/src/administrator/models/user.php +++ b/src/administrator/models/user.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/models/users.php b/src/administrator/models/users.php index e3f9814..a054d5c 100755 --- a/src/administrator/models/users.php +++ b/src/administrator/models/users.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/subusers.php b/src/administrator/subusers.php index bbfc51a..c971a1c 100755 --- a/src/administrator/subusers.php +++ b/src/administrator/subusers.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/tables/action.php b/src/administrator/tables/action.php index 43577ab..03857c6 100755 --- a/src/administrator/tables/action.php +++ b/src/administrator/tables/action.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/tables/mapping.php b/src/administrator/tables/mapping.php index c1a1847..a6f26af 100755 --- a/src/administrator/tables/mapping.php +++ b/src/administrator/tables/mapping.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/tables/role.php b/src/administrator/tables/role.php index 92f436e..d71063d 100755 --- a/src/administrator/tables/role.php +++ b/src/administrator/tables/role.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/tables/user.php b/src/administrator/tables/user.php index 0cff5cb..5a16eb7 100755 --- a/src/administrator/tables/user.php +++ b/src/administrator/tables/user.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/views/action/view.html.php b/src/administrator/views/action/view.html.php index 3b0ca40..a7b2729 100755 --- a/src/administrator/views/action/view.html.php +++ b/src/administrator/views/action/view.html.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/views/actions/view.html.php b/src/administrator/views/actions/view.html.php index 249b522..324251e 100755 --- a/src/administrator/views/actions/view.html.php +++ b/src/administrator/views/actions/view.html.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/views/mapping/tmpl/edit.php b/src/administrator/views/mapping/tmpl/edit.php index 960d6c2..d56c41f 100755 --- a/src/administrator/views/mapping/tmpl/edit.php +++ b/src/administrator/views/mapping/tmpl/edit.php @@ -1,10 +1,11 @@ - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @author Techjoomla + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; diff --git a/src/administrator/views/mapping/view.html.php b/src/administrator/views/mapping/view.html.php index 05b63ce..c1c460f 100755 --- a/src/administrator/views/mapping/view.html.php +++ b/src/administrator/views/mapping/view.html.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/views/mappings/tmpl/default.php b/src/administrator/views/mappings/tmpl/default.php index c08cb13..f7e2903 100755 --- a/src/administrator/views/mappings/tmpl/default.php +++ b/src/administrator/views/mappings/tmpl/default.php @@ -3,7 +3,7 @@ * @package Subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ @@ -133,4 +133,4 @@
-
\ No newline at end of file +
diff --git a/src/administrator/views/mappings/view.html.php b/src/administrator/views/mappings/view.html.php index 6adb191..54d2431 100755 --- a/src/administrator/views/mappings/view.html.php +++ b/src/administrator/views/mappings/view.html.php @@ -4,10 +4,10 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ - +// No direct access defined('_JEXEC') or die; use Joomla\CMS\Factory; @@ -103,6 +103,7 @@ public function display($tpl = null) } SubusersHelper::addSubmenu('mappings'); + $this->addToolbar(); $this->sidebar = JHtmlSidebar::render(); diff --git a/src/administrator/views/role/view.html.php b/src/administrator/views/role/view.html.php index 4c32d97..1628e05 100755 --- a/src/administrator/views/role/view.html.php +++ b/src/administrator/views/role/view.html.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/views/roles/tmpl/default.php b/src/administrator/views/roles/tmpl/default.php index c017d2d..942a7aa 100755 --- a/src/administrator/views/roles/tmpl/default.php +++ b/src/administrator/views/roles/tmpl/default.php @@ -3,10 +3,11 @@ * @package Subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2018 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ +// No direct access defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; @@ -132,4 +133,4 @@
-
\ No newline at end of file +
diff --git a/src/administrator/views/roles/view.html.php b/src/administrator/views/roles/view.html.php index 028a8f5..6343510 100755 --- a/src/administrator/views/roles/view.html.php +++ b/src/administrator/views/roles/view.html.php @@ -4,10 +4,10 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ - +// No direct access defined('_JEXEC') or die; use Joomla\CMS\Factory; @@ -102,6 +102,7 @@ public function display($tpl = null) } SubusersHelper::addSubmenu('roles'); + $this->addToolbar(); $this->sidebar = JHtmlSidebar::render(); diff --git a/src/administrator/views/user/view.html.php b/src/administrator/views/user/view.html.php index 935ed18..068d88f 100755 --- a/src/administrator/views/user/view.html.php +++ b/src/administrator/views/user/view.html.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ diff --git a/src/administrator/views/users/view.html.php b/src/administrator/views/users/view.html.php index 095fb58..e89dafa 100755 --- a/src/administrator/views/users/view.html.php +++ b/src/administrator/views/users/view.html.php @@ -4,7 +4,7 @@ * @subpackage com_subusers * * @author Techjoomla - * @copyright Copyright (C) 2009 - 2019 Techjoomla. All rights reserved. + * @copyright Copyright (C) 2009 - 2022 Techjoomla. All rights reserved. * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ From 87b9e683f49e2e97fa473273f14427edb5722960 Mon Sep 17 00:00:00 2001 From: Kishori Karale Date: Mon, 10 Oct 2022 11:24:29 +0530 Subject: [PATCH 09/24] Task #189115 feat: com_subusers improvements --- src/administrator/controllers/mapping.php | 10 ---- src/administrator/controllers/mappings.php | 66 ---------------------- 2 files changed, 76 deletions(-) diff --git a/src/administrator/controllers/mapping.php b/src/administrator/controllers/mapping.php index fbbafb9..14d5be7 100755 --- a/src/administrator/controllers/mapping.php +++ b/src/administrator/controllers/mapping.php @@ -20,14 +20,4 @@ */ class SubusersControllerMapping extends FormController { - /** - * Constructor - * - * @throws Exception - */ - public function __construct() - { - $this->view_list = 'mappings'; - parent::__construct(); - } } diff --git a/src/administrator/controllers/mappings.php b/src/administrator/controllers/mappings.php index a9c9350..d7a73b5 100755 --- a/src/administrator/controllers/mappings.php +++ b/src/administrator/controllers/mappings.php @@ -21,39 +21,6 @@ */ class SubusersControllerMappings extends AdminController { - /** - * Method to clone existing Mappings - * - * @return void - */ - public function duplicate() - { - // Check for request forgeries - Jsession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); - - // Get id(s) - $pks = $this->input->post->get('cid', array(), 'array'); - - try - { - if (empty($pks)) - { - throw new Exception(JText::_('COM_SUBUSERS_NO_ELEMENT_SELECTED')); - } - - ArrayHelper::toInteger($pks); - $model = $this->getModel(); - $model->duplicate($pks); - $this->setMessage(Jtext::_('COM_SUBUSERS_ITEMS_SUCCESS_DUPLICATED')); - } - catch (Exception $e) - { - JFactory::getApplication()->enqueueMessage($e->getMessage(), 'warning'); - } - - $this->setRedirect('index.php?option=com_subusers&view=mappings'); - } - /** * Proxy for getModel. * @@ -69,37 +36,4 @@ public function getModel($name = 'mapping', $prefix = 'SubusersModel', $config = { return parent::getModel($name, $prefix, array('ignore_request' => true)); } - - /** - * Method to save the submitted ordering values for records via AJAX. - * - * @return void - * - * @since 3.0 - */ - public function saveOrderAjax() - { - // Get the input - $input = JFactory::getApplication()->input; - $pks = $input->post->get('cid', array(), 'array'); - $order = $input->post->get('order', array(), 'array'); - - // Sanitize the input - ArrayHelper::toInteger($pks); - ArrayHelper::toInteger($order); - - // Get the model - $model = $this->getModel(); - - // Save the ordering - $return = $model->saveorder($pks, $order); - - if ($return) - { - echo "1"; - } - - // Close the application - JFactory::getApplication()->close(); - } } From f3893a665354b6317fa0929a9131efbe3f40a17a Mon Sep 17 00:00:00 2001 From: Kishori Karale Date: Mon, 10 Oct 2022 11:42:48 +0530 Subject: [PATCH 10/24] Task #189115 feat: com_subusers improvements --- src/administrator/sql/install.mysql.utf8.sql | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/administrator/sql/install.mysql.utf8.sql b/src/administrator/sql/install.mysql.utf8.sql index 6929ca2..b5a118d 100755 --- a/src/administrator/sql/install.mysql.utf8.sql +++ b/src/administrator/sql/install.mysql.utf8.sql @@ -59,3 +59,7 @@ CREATE TABLE IF NOT EXISTS `#__tjsu_users` ( `modified_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci; + +INSERT INTO `#__tjsu_roles` (`id`, `name`, `client`, `created_by`, `created_date`, `modified_by`, `modified_date`, `ordering`) VALUES +(1, 'Organization Manager', 'com_multiagency', 0, '0000-00-00 00:00:00', 0, '0000-00-00 00:00:00', 1), +(2, 'Organization User', 'com_multiagency', 0, '0000-00-00 00:00:00', 0, '0000-00-00 00:00:00', 2); From 0260ce8f1a951fc33647cf1d330aefca458d729d Mon Sep 17 00:00:00 2001 From: Kishori Karale Date: Mon, 10 Oct 2022 12:47:31 +0530 Subject: [PATCH 11/24] Task #189115 feat: com_subusers improvements --- src/administrator/controllers/database.php | 17 +++++++---- src/administrator/helpers/subusers.php | 9 +++--- src/administrator/libraries/action.php | 5 ++-- src/administrator/libraries/role.php | 5 ++-- src/administrator/models/database.php | 6 ++-- src/administrator/models/fields/action.php | 3 +- src/administrator/models/fields/role.php | 3 +- src/administrator/models/role.php | 4 +-- src/administrator/models/roles.php | 3 +- src/administrator/models/user.php | 2 +- src/administrator/models/users.php | 6 ++-- src/administrator/subusers.php | 3 +- src/administrator/tables/mapping.php | 29 +++++++++++-------- src/administrator/views/action/view.html.php | 6 ++-- src/administrator/views/actions/view.html.php | 6 ++-- src/administrator/views/mapping/view.html.php | 7 +++-- .../views/mappings/view.html.php | 6 ++-- src/administrator/views/role/view.html.php | 6 ++-- src/administrator/views/roles/view.html.php | 9 ++++-- src/administrator/views/user/view.html.php | 6 ++-- src/administrator/views/users/view.html.php | 6 ++-- 21 files changed, 92 insertions(+), 55 deletions(-) diff --git a/src/administrator/controllers/database.php b/src/administrator/controllers/database.php index 690eb77..5cda846 100755 --- a/src/administrator/controllers/database.php +++ b/src/administrator/controllers/database.php @@ -10,12 +10,17 @@ defined('_JEXEC') or die; +use Joomla\CMS\MVC\Controller\BaseController; +use Joomla\CMS\Factory; +use Joomla\CMS\MVC\Model\BaseDatabaseModel; +use Joomla\CMS\Router\Route; + /** * Installer Database Controller * * @since 2.5 */ -class SubusersControllerDatabase extends JControllerLegacy +class SubusersControllerDatabase extends BaseController { /** * Tries to fix missing database updates @@ -28,19 +33,19 @@ class SubusersControllerDatabase extends JControllerLegacy public function fix() { // Get a handle to the Joomla! application object - $application = JFactory::getApplication(); + $application = Factory::getApplication(); $model = $this->getModel('database'); $model->fix(); // Purge updates - JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_joomlaupdate/models', 'JoomlaupdateModel'); - $updateModel = JModelLegacy::getInstance('default', 'JoomlaupdateModel'); + BaseDatabaseModel::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_joomlaupdate/models', 'JoomlaupdateModel'); + $updateModel = BaseDatabaseModel::getInstance('default', 'JoomlaupdateModel'); $updateModel->purge(); // Refresh versionable assets cache - JFactory::getApplication()->flushAssets(); + Factory::getApplication()->flushAssets(); - $this->setRedirect(JRoute::_('index.php?option=com_subusers&view=organizations', false)); + $this->setRedirect(Route::_('index.php?option=com_subusers&view=organizations', false)); } } diff --git a/src/administrator/helpers/subusers.php b/src/administrator/helpers/subusers.php index ab7a9f0..b26a68f 100755 --- a/src/administrator/helpers/subusers.php +++ b/src/administrator/helpers/subusers.php @@ -9,6 +9,7 @@ */ defined('_JEXEC') or die(); +use Joomla\CMS\Language\Text; /** * Subusers helper. @@ -26,9 +27,9 @@ class SubusersHelper */ public static function addSubmenu($vName = '') { - JHtmlSidebar::addEntry(JText::_('COM_SUBUSERS_TITLE_ROLES'), 'index.php?option=com_subusers&view=roles', $vName == 'roles'); - JHtmlSidebar::addEntry(JText::_('COM_SUBUSERS_TITLE_ACTIONS'), 'index.php?option=com_subusers&view=actions', $vName == 'actions'); - JHtmlSidebar::addEntry(JText::_('COM_SUBUSERS_TITLE_MAPPINGS'), 'index.php?option=com_subusers&view=mappings', $vName == 'mappings'); - JHtmlSidebar::addEntry(JText::_('COM_SUBUSERS_TITLE_USERS'), 'index.php?option=com_subusers&view=users', $vName == 'users'); + JHtmlSidebar::addEntry(Text::_('COM_SUBUSERS_TITLE_ROLES'), 'index.php?option=com_subusers&view=roles', $vName == 'roles'); + JHtmlSidebar::addEntry(Text::_('COM_SUBUSERS_TITLE_ACTIONS'), 'index.php?option=com_subusers&view=actions', $vName == 'actions'); + JHtmlSidebar::addEntry(Text::_('COM_SUBUSERS_TITLE_MAPPINGS'), 'index.php?option=com_subusers&view=mappings', $vName == 'mappings'); + JHtmlSidebar::addEntry(Text::_('COM_SUBUSERS_TITLE_USERS'), 'index.php?option=com_subusers&view=users', $vName == 'users'); } } diff --git a/src/administrator/libraries/action.php b/src/administrator/libraries/action.php index 3822273..53d40f1 100644 --- a/src/administrator/libraries/action.php +++ b/src/administrator/libraries/action.php @@ -12,6 +12,7 @@ use Joomla\CMS\Factory; use Joomla\CMS\Object\CMSObject; +use Joomla\CMS\Language\Text; /** * Action class. Handles all application interaction with a Action @@ -160,7 +161,7 @@ public function bind(&$array) { if (empty($array)) { - $this->setError(JText::_('COM_SUBUSER_EMPTY_DATA')); + $this->setError(Text::_('COM_SUBUSER_EMPTY_DATA')); return false; } @@ -168,7 +169,7 @@ public function bind(&$array) // Bind the array if (!$this->setProperties($array)) { - $this->setError(\JText::_('COM_SUBUSER_BINDING_ERROR')); + $this->setError(Text::_('COM_SUBUSER_BINDING_ERROR')); return false; } diff --git a/src/administrator/libraries/role.php b/src/administrator/libraries/role.php index ce92559..4a154a6 100644 --- a/src/administrator/libraries/role.php +++ b/src/administrator/libraries/role.php @@ -12,6 +12,7 @@ use Joomla\CMS\Factory; use Joomla\CMS\Object\CMSObject; +use Joomla\CMS\Language\Text; /** * Role class. Handles all application interaction with a Role @@ -168,7 +169,7 @@ public function bind(&$array) { if (empty($array)) { - $this->setError(JText::_('COM_CLUSTER_EMPTY_DATA')); + $this->setError(Text::_('COM_CLUSTER_EMPTY_DATA')); return false; } @@ -176,7 +177,7 @@ public function bind(&$array) // Bind the array if (!$this->setProperties($array)) { - $this->setError(\JText::_('COM_CLUSTER_BINDING_ERROR')); + $this->setError(Text::_('COM_CLUSTER_BINDING_ERROR')); return false; } diff --git a/src/administrator/models/database.php b/src/administrator/models/database.php index d0486df..850afd7 100755 --- a/src/administrator/models/database.php +++ b/src/administrator/models/database.php @@ -9,6 +9,8 @@ */ defined('_JEXEC') or die; +use Joomla\CMS\Factory; +use Joomla\CMS\Schema\ChangeSet; require_once JPATH_ADMINISTRATOR . '/components/com_installer/models/database.php'; @@ -30,11 +32,11 @@ public function getItems() try { - $changeSet = JSchemaChangeset::getInstance($this->getDbo(), $folder); + $changeSet = ChangeSet::getInstance($this->getDbo(), $folder); } catch (RuntimeException $e) { - JFactory::getApplication()->enqueueMessage($e->getMessage(), 'warning'); + Factory::getApplication()->enqueueMessage($e->getMessage(), 'warning'); return false; } diff --git a/src/administrator/models/fields/action.php b/src/administrator/models/fields/action.php index 72446fb..6792137 100644 --- a/src/administrator/models/fields/action.php +++ b/src/administrator/models/fields/action.php @@ -12,8 +12,9 @@ use Joomla\CMS\Factory; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; +use Joomla\CMS\Form\FormHelper; -JFormHelper::loadFieldClass('list'); +FormHelper::loadFieldClass('list'); /** * Supports an HTML select list of Roles diff --git a/src/administrator/models/fields/role.php b/src/administrator/models/fields/role.php index 095e82d..eb8ec69 100644 --- a/src/administrator/models/fields/role.php +++ b/src/administrator/models/fields/role.php @@ -13,8 +13,9 @@ use Joomla\CMS\Factory; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; +use Joomla\CMS\Form\FormHelper; -JFormHelper::loadFieldClass('list'); +FormHelper::loadFieldClass('list'); /** * Supports an HTML select list of Roles diff --git a/src/administrator/models/role.php b/src/administrator/models/role.php index cd83518..ec053f2 100755 --- a/src/administrator/models/role.php +++ b/src/administrator/models/role.php @@ -81,7 +81,7 @@ public function getForm($data = array(), $loadData = true) protected function loadFormData() { // Check the session for previously entered form data. - $data = JFactory::getApplication()->getUserState('com_subusers.edit.role.data', array()); + $data = Factory::getApplication()->getUserState('com_subusers.edit.role.data', array()); if (empty($data)) { @@ -107,7 +107,7 @@ protected function loadFormData() */ public function getActions($roleId) { - $db = JFactory::getDbo(); + $db = Factory::getDbo(); $query = $db->getQuery(true); $query->select('action'); $query->from($db->quoteName('#__tjsu_role_action_map')); diff --git a/src/administrator/models/roles.php b/src/administrator/models/roles.php index 373632c..5c5590c 100755 --- a/src/administrator/models/roles.php +++ b/src/administrator/models/roles.php @@ -12,6 +12,7 @@ use Joomla\CMS\Factory; use Joomla\CMS\MVC\Model\ListModel; +use Joomla\CMS\Component\ComponentHelper; /** * Methods supporting a list of Subusers records. @@ -63,7 +64,7 @@ protected function populateState($ordering = 'a.id', $direction = 'desc') $this->setState('filter.search', $search); // Load the parameters. - $params = JComponentHelper::getParams('com_subusers'); + $params = ComponentHelper::getParams('com_subusers'); $this->setState('params', $params); parent::populateState($ordering, $direction); diff --git a/src/administrator/models/user.php b/src/administrator/models/user.php index b814b2b..84100c9 100755 --- a/src/administrator/models/user.php +++ b/src/administrator/models/user.php @@ -83,7 +83,7 @@ public function getForm($data = array(), $loadData = true) protected function loadFormData() { // Check the session for previously entered form data. - $data = JFactory::getApplication()->getUserState('com_subusers.edit.user.data', array()); + $data = Factory::getApplication()->getUserState('com_subusers.edit.user.data', array()); if (empty($data)) { diff --git a/src/administrator/models/users.php b/src/administrator/models/users.php index a054d5c..179431d 100755 --- a/src/administrator/models/users.php +++ b/src/administrator/models/users.php @@ -10,7 +10,9 @@ defined('_JEXEC') or die; +use Joomla\CMS\Factory; use Joomla\CMS\MVC\Model\ListModel; +use Joomla\CMS\Component\ComponentHelper; /** * Methods supporting a list of Subusers records. @@ -57,14 +59,14 @@ public function __construct($config = array()) */ protected function populateState($ordering = null, $direction = null) { - $app = JFactory::getApplication('administrator'); + $app = Factory::getApplication('administrator'); $search = $app->getUserStateFromRequest($this->context . '.filter.search', 'filter_search'); $this->setState('filter.search', $search); $this->setState('filter.user_id', $app->getUserStateFromRequest($this->context . ' . filter.user_id', 'filter_user_id', '', 'string')); - $params = JComponentHelper::getParams('com_subusers'); + $params = ComponentHelper::getParams('com_subusers'); $this->setState('params', $params); parent::populateState('a.id', 'desc'); diff --git a/src/administrator/subusers.php b/src/administrator/subusers.php index c971a1c..3caaf7f 100755 --- a/src/administrator/subusers.php +++ b/src/administrator/subusers.php @@ -12,11 +12,12 @@ use Joomla\CMS\Factory; use Joomla\CMS\MVC\Controller\BaseController; +use Joomla\CMS\Language\Text; // Access check. if (!Factory::getUser()->authorise('core.manage', 'com_subusers')) { - throw new \Exception(JText::_('JERROR_ALERTNOAUTHOR')); + throw new \Exception(Text::_('JERROR_ALERTNOAUTHOR')); } \JLoader::import("/components/com_subusers/includes/rbacl", JPATH_ADMINISTRATOR); diff --git a/src/administrator/tables/mapping.php b/src/administrator/tables/mapping.php index a6f26af..636b8c3 100755 --- a/src/administrator/tables/mapping.php +++ b/src/administrator/tables/mapping.php @@ -12,13 +12,18 @@ defined('_JEXEC') or die; use Joomla\Utilities\ArrayHelper; +use Joomla\CMS\Table\Table; +use Joomla\CMS\Factory; +use Joomla\Registry\Registry; +use Joomla\CMS\Access\Access; +use Joomla\CMS\Language\Text; /** * mapping Table class * * @since 1.6 */ -class SubusersTablemapping extends JTable +class SubusersTablemapping extends Table { /** * Constructor @@ -45,38 +50,38 @@ public function bind($array, $ignore = '') { if ($array['id'] == 0) { - $array['created_by'] = JFactory::getUser()->id; + $array['created_by'] = Factory::getUser()->id; } - $input = JFactory::getApplication()->input; + $input = Factory::getApplication()->input; $task = $input->getString('task', ''); - if (($task == 'save' || $task == 'apply') && (!JFactory::getUser()->authorise('core.edit.state', 'com_subusers') && $array['state'] == 1)) + if (($task == 'save' || $task == 'apply') && (!Factory::getUser()->authorise('core.edit.state', 'com_subusers') && $array['state'] == 1)) { $array['state'] = 0; } if (isset($array['params']) && is_array($array['params'])) { - $registry = new JRegistry; + $registry = new Registry; $registry->loadArray($array['params']); $array['params'] = (string) $registry; } if (isset($array['metadata']) && is_array($array['metadata'])) { - $registry = new JRegistry; + $registry = new Registry; $registry->loadArray($array['metadata']); $array['metadata'] = (string) $registry; } - if (!JFactory::getUser()->authorise('core.admin', 'com_subusers.mapping.' . $array['id'])) + if (!Factory::getUser()->authorise('core.admin', 'com_subusers.mapping.' . $array['id'])) { - $actions = JAccess::getActionsFromFile( + $actions = Access::getActionsFromFile( JPATH_ADMINISTRATOR . '/components/com_subusers/access.xml', "/access/section[@name='mapping']/" ); - $default_actions = JAccess::getAssetRules('com_subusers.mapping.' . $array['id'])->getData(); + $default_actions = Access::getAssetRules('com_subusers.mapping.' . $array['id'])->getData(); $array_jaccess = array(); foreach ($actions as $action) @@ -174,7 +179,7 @@ public function publish($pks = null, $state = 1, $userId = 0) // Nothing to set publishing state on, return false. else { - throw new Exception(500, JText::_('JLIB_DATABASE_ERROR_NO_ROWS_SELECTED')); + throw new Exception(500, Text::_('JLIB_DATABASE_ERROR_NO_ROWS_SELECTED')); } } @@ -243,10 +248,10 @@ protected function _getAssetName() * * @return mixed The id on success, false on failure. */ - protected function _getAssetParentId(JTable $table = null, $id = null) + protected function _getAssetParentId(Table $table = null, $id = null) { // We will retrieve the parent-asset from the Asset-table - $assetParent = JTable::getInstance('Asset'); + $assetParent = Table::getInstance('Asset'); // Default: if no asset-parent can be found we take the global asset $assetParentId = $assetParent->getRootId(); diff --git a/src/administrator/views/action/view.html.php b/src/administrator/views/action/view.html.php index a7b2729..0cf9826 100755 --- a/src/administrator/views/action/view.html.php +++ b/src/administrator/views/action/view.html.php @@ -12,6 +12,8 @@ use Joomla\CMS\Factory; use Joomla\CMS\MVC\View\HtmlView; +use Joomla\CMS\Helper\ContentHelper; +use Joomla\CMS\Language\Text; /** * View to edit @@ -63,7 +65,7 @@ public function display($tpl = null) $this->item = $this->get('Item'); $this->form = $this->get('Form'); - $this->canDo = JHelperContent::getActions('com_subusers', 'action', $this->item->id); + $this->canDo = ContentHelper::getActions('com_subusers', 'action', $this->item->id); if (count($errors = $this->get('Errors'))) { @@ -91,7 +93,7 @@ protected function addToolbar() $layout = Factory::getApplication()->input->get("layout"); $this->sidebar = JHtmlSidebar::render(); - JToolBarHelper::title(JText::_('COM_SUBUSERS_TITLE_ACTION'), 'action.png'); + JToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_ACTION'), 'action.png'); // For new records, check the create permission. if ($layout != "default") diff --git a/src/administrator/views/actions/view.html.php b/src/administrator/views/actions/view.html.php index 324251e..6d4133f 100755 --- a/src/administrator/views/actions/view.html.php +++ b/src/administrator/views/actions/view.html.php @@ -12,6 +12,8 @@ use Joomla\CMS\Factory; use Joomla\CMS\MVC\View\HtmlView; +use Joomla\CMS\Helper\ContentHelper; +use Joomla\CMS\Language\Text; /** * View class for a list of Subusers. @@ -94,7 +96,7 @@ public function display($tpl = null) $this->filterForm = $this->get('FilterForm'); $this->activeFilters = $this->get('ActiveFilters'); $this->user = Factory::getUser(); - $this->canDo = JHelperContent::getActions('com_subusers'); + $this->canDo = ContentHelper::getActions('com_subusers'); if (count($errors = $this->get('Errors'))) { @@ -118,7 +120,7 @@ public function display($tpl = null) */ protected function addToolbar() { - JToolBarHelper::title(JText::_('COM_SUBUSERS_TITLE_ACTIONS'), ''); + JToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_ACTIONS'), ''); $canDo = $this->canDo; diff --git a/src/administrator/views/mapping/view.html.php b/src/administrator/views/mapping/view.html.php index c1c460f..031e839 100755 --- a/src/administrator/views/mapping/view.html.php +++ b/src/administrator/views/mapping/view.html.php @@ -12,7 +12,8 @@ use Joomla\CMS\Factory; use Joomla\CMS\MVC\View\HtmlView; - +use Joomla\CMS\Helper\ContentHelper; +use Joomla\CMS\Language\Text; /** * View to edit * @@ -63,7 +64,7 @@ public function display($tpl = null) $this->item = $this->get('Item'); $this->form = $this->get('Form'); - $this->canDo = JHelperContent::getActions('com_subusers', 'mapping', $this->item->id); + $this->canDo = ContentHelper::getActions('com_subusers', 'mapping', $this->item->id); if (count($errors = $this->get('Errors'))) { @@ -91,7 +92,7 @@ protected function addToolbar() $layout = Factory::getApplication()->input->get("layout"); $this->sidebar = JHtmlSidebar::render(); - JToolBarHelper::title(JText::_('COM_SUBUSERS_TITLE_MAPPING'), 'mapping.png'); + JToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_MAPPING'), 'mapping.png'); // For new records, check the create permission. if ($layout != "default") diff --git a/src/administrator/views/mappings/view.html.php b/src/administrator/views/mappings/view.html.php index 54d2431..d04393f 100755 --- a/src/administrator/views/mappings/view.html.php +++ b/src/administrator/views/mappings/view.html.php @@ -12,6 +12,8 @@ use Joomla\CMS\Factory; use Joomla\CMS\MVC\View\HtmlView; +use Joomla\CMS\Helper\ContentHelper; +use Joomla\CMS\Language\Text; /** * View class for a list of Subusers. @@ -94,7 +96,7 @@ public function display($tpl = null) $this->filterForm = $this->get('FilterForm'); $this->activeFilters = $this->get('ActiveFilters'); $this->user = Factory::getUser(); - $this->canDo = JHelperContent::getActions('com_subusers'); + $this->canDo = ContentHelper::getActions('com_subusers'); // Check for errors. if (count($errors = $this->get('Errors'))) @@ -119,7 +121,7 @@ public function display($tpl = null) */ protected function addToolbar() { - JToolBarHelper::title(JText::_('COM_SUBUSERS_TITLE_MAPPINGS'), ''); + JToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_MAPPINGS'), ''); if ($this->canDo->get('core.create')) { diff --git a/src/administrator/views/role/view.html.php b/src/administrator/views/role/view.html.php index 1628e05..5e9398e 100755 --- a/src/administrator/views/role/view.html.php +++ b/src/administrator/views/role/view.html.php @@ -12,6 +12,8 @@ use Joomla\CMS\Factory; use Joomla\CMS\MVC\View\HtmlView; +use Joomla\CMS\Helper\ContentHelper; +use Joomla\CMS\Language\Text; /** * View to edit @@ -63,7 +65,7 @@ public function display($tpl = null) $this->item = $this->get('Item'); $this->form = $this->get('Form'); - $this->canDo = JHelperContent::getActions('com_subusers', 'role', $this->item->id); + $this->canDo = ContentHelper::getActions('com_subusers', 'role', $this->item->id); if (count($errors = $this->get('Errors'))) { @@ -91,7 +93,7 @@ protected function addToolbar() $layout = Factory::getApplication()->input->get("layout"); $this->sidebar = JHtmlSidebar::render(); - JToolBarHelper::title(JText::_('COM_SUBUSERS_TITLE_ROLE'), 'role.png'); + JToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_ROLE'), 'role.png'); // For new records, check the create permission. if ($layout != "default") diff --git a/src/administrator/views/roles/view.html.php b/src/administrator/views/roles/view.html.php index 6343510..441beaa 100755 --- a/src/administrator/views/roles/view.html.php +++ b/src/administrator/views/roles/view.html.php @@ -11,13 +11,16 @@ defined('_JEXEC') or die; use Joomla\CMS\Factory; +use Joomla\CMS\Helper\ContentHelper; +use Joomla\CMS\Language\Text; +use Joomla\CMS\MVC\View\HtmlView; /** * View class for a list of Subusers. * * @since 1.0.0 */ -class SubusersViewRoles extends JViewLegacy +class SubusersViewRoles extends HtmlView { /** * An array of items @@ -93,7 +96,7 @@ public function display($tpl = null) $this->filterForm = $this->get('FilterForm'); $this->activeFilters = $this->get('ActiveFilters'); $this->user = Factory::getUser(); - $this->canDo = JHelperContent::getActions('com_subusers'); + $this->canDo = ContentHelper::getActions('com_subusers'); // Check for errors. if (count($errors = $this->get('Errors'))) @@ -118,7 +121,7 @@ public function display($tpl = null) */ protected function addToolbar() { - JToolBarHelper::title(JText::_('COM_SUBUSERS_TITLE_ROLES'), ''); + JToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_ROLES'), ''); if ($this->canDo->get('core.create')) { diff --git a/src/administrator/views/user/view.html.php b/src/administrator/views/user/view.html.php index 068d88f..efd5afc 100755 --- a/src/administrator/views/user/view.html.php +++ b/src/administrator/views/user/view.html.php @@ -12,6 +12,8 @@ use Joomla\CMS\Factory; use Joomla\CMS\MVC\View\HtmlView; +use Joomla\CMS\Helper\ContentHelper; +use Joomla\CMS\Language\Text; /** * View to edit @@ -63,7 +65,7 @@ public function display($tpl = null) $this->item = $this->get('Item'); $this->form = $this->get('Form'); - $this->canDo = JHelperContent::getActions('com_subusers', 'user', $this->item->id); + $this->canDo = ContentHelper::getActions('com_subusers', 'user', $this->item->id); if (count($errors = $this->get('Errors'))) { @@ -91,7 +93,7 @@ protected function addToolbar() $layout = Factory::getApplication()->input->get("layout"); $this->sidebar = JHtmlSidebar::render(); - JToolBarHelper::title(JText::_('COM_SUBUSERS_TITLE_USER'), 'user.png'); + JToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_USER'), 'user.png'); // For new records, check the create permission. if ($layout != "default") diff --git a/src/administrator/views/users/view.html.php b/src/administrator/views/users/view.html.php index e89dafa..b8cfb7f 100755 --- a/src/administrator/views/users/view.html.php +++ b/src/administrator/views/users/view.html.php @@ -12,6 +12,8 @@ use Joomla\CMS\Factory; use Joomla\CMS\MVC\View\HtmlView; +use Joomla\CMS\Helper\ContentHelper; +use Joomla\CMS\Language\Text; /** * View class for a list of Subusers. @@ -94,7 +96,7 @@ public function display($tpl = null) $this->filterForm = $this->get('FilterForm'); $this->activeFilters = $this->get('ActiveFilters'); $this->user = Factory::getUser(); - $this->canDo = JHelperContent::getActions('com_subusers'); + $this->canDo = ContentHelper::getActions('com_subusers'); if (count($errors = $this->get('Errors'))) { @@ -118,7 +120,7 @@ public function display($tpl = null) */ protected function addToolbar() { - JToolBarHelper::title(JText::_('COM_SUBUSERS_TITLE_USERS'), 'users.png'); + JToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_USERS'), 'users.png'); $canDo = $this->canDo; From 9fedc62c72fe5e330b4f700db856ab688ced4d56 Mon Sep 17 00:00:00 2001 From: Kishori Karale Date: Mon, 10 Oct 2022 13:26:05 +0530 Subject: [PATCH 12/24] Task #189115 feat: com_subusers improvements --- src/administrator/sql/updates/mysql/1.0.sql | 1 - src/administrator/sql/updates/mysql/1.1.0.sql | 10 ++++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) delete mode 100755 src/administrator/sql/updates/mysql/1.0.sql create mode 100755 src/administrator/sql/updates/mysql/1.1.0.sql diff --git a/src/administrator/sql/updates/mysql/1.0.sql b/src/administrator/sql/updates/mysql/1.0.sql deleted file mode 100755 index 8b13789..0000000 --- a/src/administrator/sql/updates/mysql/1.0.sql +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/administrator/sql/updates/mysql/1.1.0.sql b/src/administrator/sql/updates/mysql/1.1.0.sql new file mode 100755 index 0000000..e2e46f4 --- /dev/null +++ b/src/administrator/sql/updates/mysql/1.1.0.sql @@ -0,0 +1,10 @@ + +ALTER TABLE `#__tjsu_roles` ENGINE = InnoDB; +ALTER TABLE `#__tjsu_actions` ENGINE = InnoDB; +ALTER TABLE `#__tjsu_role_action_map` ENGINE = InnoDB; +ALTER TABLE `#__tjsu_users` ENGINE = InnoDB; + +ALTER TABLE `#__tjsu_roles` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE `#__tjsu_actions` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE `#__tjsu_role_action_map` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE `#__tjsu_users` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; From 66ec4ccd150e128c022a1d526b578bd7039ae55b Mon Sep 17 00:00:00 2001 From: Kishori Karale Date: Mon, 10 Oct 2022 15:19:06 +0530 Subject: [PATCH 13/24] Task #189115 feat: com_subusers improvements --- src/administrator/tables/mapping.php | 3 ++- src/administrator/views/mappings/view.html.php | 2 +- src/administrator/views/roles/view.html.php | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/administrator/tables/mapping.php b/src/administrator/tables/mapping.php index 636b8c3..6bf1bdf 100755 --- a/src/administrator/tables/mapping.php +++ b/src/administrator/tables/mapping.php @@ -14,9 +14,10 @@ use Joomla\Utilities\ArrayHelper; use Joomla\CMS\Table\Table; use Joomla\CMS\Factory; -use Joomla\Registry\Registry; use Joomla\CMS\Access\Access; use Joomla\CMS\Language\Text; +/** @scrutinizer ignore-deprecated */ +use Joomla\Registry\Registry; /** * mapping Table class diff --git a/src/administrator/views/mappings/view.html.php b/src/administrator/views/mappings/view.html.php index d04393f..4820a49 100755 --- a/src/administrator/views/mappings/view.html.php +++ b/src/administrator/views/mappings/view.html.php @@ -74,7 +74,7 @@ class SubusersViewMappings extends HtmlView /** * An ACL object to verify user rights. * - * @var CMSObject + * @var void * @since 1.0.0 */ protected $canDo; diff --git a/src/administrator/views/roles/view.html.php b/src/administrator/views/roles/view.html.php index 441beaa..8d5bbf3 100755 --- a/src/administrator/views/roles/view.html.php +++ b/src/administrator/views/roles/view.html.php @@ -74,7 +74,7 @@ class SubusersViewRoles extends HtmlView /** * An ACL object to verify user rights. * - * @var CMSObject + * @var void * @since 1.0.0 */ protected $canDo; From 4a7978640b134a64a4bac30ef21c0c269ddb878c Mon Sep 17 00:00:00 2001 From: Kishori Karale Date: Mon, 10 Oct 2022 15:30:21 +0530 Subject: [PATCH 14/24] Task #189115 feat: com_subusers improvements --- src/administrator/tables/mapping.php | 3 +-- src/administrator/views/mappings/view.html.php | 2 +- src/administrator/views/roles/view.html.php | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/administrator/tables/mapping.php b/src/administrator/tables/mapping.php index 6bf1bdf..0cd21eb 100755 --- a/src/administrator/tables/mapping.php +++ b/src/administrator/tables/mapping.php @@ -16,8 +16,7 @@ use Joomla\CMS\Factory; use Joomla\CMS\Access\Access; use Joomla\CMS\Language\Text; -/** @scrutinizer ignore-deprecated */ -use Joomla\Registry\Registry; +use /** @scrutinizer ignore-deprecated */ Joomla\Registry\Registry; /** * mapping Table class diff --git a/src/administrator/views/mappings/view.html.php b/src/administrator/views/mappings/view.html.php index 4820a49..1df89e1 100755 --- a/src/administrator/views/mappings/view.html.php +++ b/src/administrator/views/mappings/view.html.php @@ -74,7 +74,7 @@ class SubusersViewMappings extends HtmlView /** * An ACL object to verify user rights. * - * @var void + * @var Joomla\CMS\Object\CMSObject * @since 1.0.0 */ protected $canDo; diff --git a/src/administrator/views/roles/view.html.php b/src/administrator/views/roles/view.html.php index 8d5bbf3..d3ea6e4 100755 --- a/src/administrator/views/roles/view.html.php +++ b/src/administrator/views/roles/view.html.php @@ -74,7 +74,7 @@ class SubusersViewRoles extends HtmlView /** * An ACL object to verify user rights. * - * @var void + * @var Joomla\CMS\Object\CMSObject * @since 1.0.0 */ protected $canDo; From 5a349ea55518c1fd07c270f3394ac69cc38eaa4e Mon Sep 17 00:00:00 2001 From: Kishori Karale Date: Mon, 10 Oct 2022 17:01:56 +0530 Subject: [PATCH 15/24] Task #189115 feat: com_subusers improvements --- src/administrator/tables/mapping.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/administrator/tables/mapping.php b/src/administrator/tables/mapping.php index 0cd21eb..4fb1229 100755 --- a/src/administrator/tables/mapping.php +++ b/src/administrator/tables/mapping.php @@ -179,7 +179,9 @@ public function publish($pks = null, $state = 1, $userId = 0) // Nothing to set publishing state on, return false. else { - throw new Exception(500, Text::_('JLIB_DATABASE_ERROR_NO_ROWS_SELECTED')); + $this->setError(JText::_('JLIB_DATABASE_ERROR_NO_ROWS_SELECTED')); + + return false; } } @@ -221,6 +223,8 @@ public function publish($pks = null, $state = 1, $userId = 0) $this->state = $state; } + $this->setError(''); + return true; } From 9681cbe74a79bdcd8a5ea76a104a520c70891437 Mon Sep 17 00:00:00 2001 From: Kishori Karale Date: Mon, 10 Oct 2022 17:03:00 +0530 Subject: [PATCH 16/24] Task #189115 feat: com_subusers improvements --- src/administrator/tables/mapping.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/administrator/tables/mapping.php b/src/administrator/tables/mapping.php index 4fb1229..4c65ce9 100755 --- a/src/administrator/tables/mapping.php +++ b/src/administrator/tables/mapping.php @@ -16,7 +16,7 @@ use Joomla\CMS\Factory; use Joomla\CMS\Access\Access; use Joomla\CMS\Language\Text; -use /** @scrutinizer ignore-deprecated */ Joomla\Registry\Registry; +use Joomla\Registry\Registry; /** * mapping Table class From 3bcd172136ea8d9a616491a9860b535addf8b975 Mon Sep 17 00:00:00 2001 From: Kishori Karale Date: Mon, 10 Oct 2022 19:53:04 +0530 Subject: [PATCH 17/24] Task #189115 feat: com_subusers improvements --- src/administrator/tables/mapping.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/administrator/tables/mapping.php b/src/administrator/tables/mapping.php index 4c65ce9..a777536 100755 --- a/src/administrator/tables/mapping.php +++ b/src/administrator/tables/mapping.php @@ -16,7 +16,7 @@ use Joomla\CMS\Factory; use Joomla\CMS\Access\Access; use Joomla\CMS\Language\Text; -use Joomla\Registry\Registry; +use /** @scrutinizer ignore-type */ Joomla\Registry\Registry; /** * mapping Table class From cf47f4807f31693dd8903b32c2a7c54788c7f0a3 Mon Sep 17 00:00:00 2001 From: Kishori Karale Date: Mon, 10 Oct 2022 20:03:30 +0530 Subject: [PATCH 18/24] Task #189115 feat: com_subusers improvements --- src/administrator/tables/mapping.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/administrator/tables/mapping.php b/src/administrator/tables/mapping.php index a777536..522fb31 100755 --- a/src/administrator/tables/mapping.php +++ b/src/administrator/tables/mapping.php @@ -16,7 +16,8 @@ use Joomla\CMS\Factory; use Joomla\CMS\Access\Access; use Joomla\CMS\Language\Text; -use /** @scrutinizer ignore-type */ Joomla\Registry\Registry; +/** @scrutinizer ignore-type */ +use Joomla\Registry\Registry; /** * mapping Table class From e59a255c9c2551c54d301c175d98c3b298388f05 Mon Sep 17 00:00:00 2001 From: Kishori Karale Date: Mon, 10 Oct 2022 20:38:00 +0530 Subject: [PATCH 19/24] Task #189115 feat: com_subusers improvements --- src/administrator/tables/mapping.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/administrator/tables/mapping.php b/src/administrator/tables/mapping.php index 522fb31..4c65ce9 100755 --- a/src/administrator/tables/mapping.php +++ b/src/administrator/tables/mapping.php @@ -16,7 +16,6 @@ use Joomla\CMS\Factory; use Joomla\CMS\Access\Access; use Joomla\CMS\Language\Text; -/** @scrutinizer ignore-type */ use Joomla\Registry\Registry; /** From bf128c8f4dd5eed34af01178f72842ccce2ff6a7 Mon Sep 17 00:00:00 2001 From: Kishori Karale Date: Mon, 10 Oct 2022 23:43:44 +0530 Subject: [PATCH 20/24] Task #189115 feat: com_subusers improvements --- src/administrator/views/action/view.html.php | 13 +++++++------ src/administrator/views/actions/view.html.php | 13 +++++++------ src/administrator/views/mapping/view.html.php | 12 ++++++------ src/administrator/views/mappings/view.html.php | 12 ++++++------ src/administrator/views/role/view.html.php | 12 ++++++------ src/administrator/views/roles/view.html.php | 12 ++++++------ src/administrator/views/user/view.html.php | 12 ++++++------ src/administrator/views/users/view.html.php | 12 ++++++------ 8 files changed, 50 insertions(+), 48 deletions(-) diff --git a/src/administrator/views/action/view.html.php b/src/administrator/views/action/view.html.php index 0cf9826..2818f81 100755 --- a/src/administrator/views/action/view.html.php +++ b/src/administrator/views/action/view.html.php @@ -14,6 +14,7 @@ use Joomla\CMS\MVC\View\HtmlView; use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\Language\Text; +use Joomla\CMS\Toolbar\ToolbarHelper; /** * View to edit @@ -102,22 +103,22 @@ protected function addToolbar() if ($isNew) { - JToolbarHelper::save('action.save'); - JToolbarHelper::save2new('action.save2new'); - JToolbarHelper::cancel('action.cancel'); + ToolbarHelper::save('action.save'); + ToolbarHelper::save2new('action.save2new'); + ToolbarHelper::cancel('action.cancel'); } else { if ($this->isEditable($canDo, $user->id)) { - JToolbarHelper::save('action.save'); + ToolbarHelper::save('action.save'); } - JToolbarHelper::cancel('action.cancel', 'JTOOLBAR_CLOSE'); + ToolbarHelper::cancel('action.cancel', 'JTOOLBAR_CLOSE'); } } - JToolbarHelper::divider(); + ToolbarHelper::divider(); } /** diff --git a/src/administrator/views/actions/view.html.php b/src/administrator/views/actions/view.html.php index 6d4133f..64901da 100755 --- a/src/administrator/views/actions/view.html.php +++ b/src/administrator/views/actions/view.html.php @@ -14,6 +14,7 @@ use Joomla\CMS\MVC\View\HtmlView; use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\Language\Text; +use Joomla\CMS\Toolbar\ToolbarHelper; /** * View class for a list of Subusers. @@ -126,24 +127,24 @@ protected function addToolbar() if ($canDo->get('core.create')) { - JToolbarHelper::addNew('action.add'); + ToolbarHelper::addNew('action.add'); } if ($canDo->get('core.edit')) { - JToolbarHelper::editList('actions.edit'); + ToolbarHelper::editList('actions.edit'); } if ($canDo->get('core.delete')) { - JToolbarHelper::deleteList('JGLOBAL_CONFIRM_DELETE', 'actions.delete', 'JTOOLBAR_DELETE'); - JToolbarHelper::divider(); + ToolbarHelper::deleteList('JGLOBAL_CONFIRM_DELETE', 'actions.delete', 'JTOOLBAR_DELETE'); + ToolbarHelper::divider(); } if ($canDo->get('core.admin') || $canDo->get('core.options')) { - JToolbarHelper::preferences('com_subusers'); - JToolbarHelper::divider(); + ToolbarHelper::preferences('com_subusers'); + ToolbarHelper::divider(); } } } diff --git a/src/administrator/views/mapping/view.html.php b/src/administrator/views/mapping/view.html.php index 031e839..3fa0287 100755 --- a/src/administrator/views/mapping/view.html.php +++ b/src/administrator/views/mapping/view.html.php @@ -101,22 +101,22 @@ protected function addToolbar() if ($isNew) { - JToolbarHelper::save('mapping.save'); - JToolbarHelper::save2new('mapping.save2new'); - JToolbarHelper::cancel('mapping.cancel'); + ToolbarHelper::save('mapping.save'); + ToolbarHelper::save2new('mapping.save2new'); + ToolbarHelper::cancel('mapping.cancel'); } else { if ($this->isEditable($canDo, $user->id)) { - JToolbarHelper::save('mapping.save'); + ToolbarHelper::save('mapping.save'); } - JToolbarHelper::cancel('mapping.cancel', 'JTOOLBAR_CLOSE'); + ToolbarHelper::cancel('mapping.cancel', 'JTOOLBAR_CLOSE'); } } - JToolbarHelper::divider(); + ToolbarHelper::divider(); } /** diff --git a/src/administrator/views/mappings/view.html.php b/src/administrator/views/mappings/view.html.php index 1df89e1..fc70304 100755 --- a/src/administrator/views/mappings/view.html.php +++ b/src/administrator/views/mappings/view.html.php @@ -125,24 +125,24 @@ protected function addToolbar() if ($this->canDo->get('core.create')) { - JToolbarHelper::addNew('mapping.add'); + ToolbarHelper::addNew('mapping.add'); } if ($this->canDo->get('core.edit')) { - JToolbarHelper::editList('mapping.edit'); + ToolbarHelper::editList('mapping.edit'); } if ($this->canDo->get('core.delete')) { - JToolbarHelper::deleteList('JGLOBAL_CONFIRM_DELETE', 'mappings.delete', 'JTOOLBAR_DELETE'); - JToolbarHelper::divider(); + ToolbarHelper::deleteList('JGLOBAL_CONFIRM_DELETE', 'mappings.delete', 'JTOOLBAR_DELETE'); + ToolbarHelper::divider(); } if ($this->canDo->get('core.admin') || $this->canDo->get('core.options')) { - JToolbarHelper::preferences('com_subusers'); - JToolbarHelper::divider(); + ToolbarHelper::preferences('com_subusers'); + ToolbarHelper::divider(); } } } diff --git a/src/administrator/views/role/view.html.php b/src/administrator/views/role/view.html.php index 5e9398e..bf0ab12 100755 --- a/src/administrator/views/role/view.html.php +++ b/src/administrator/views/role/view.html.php @@ -102,22 +102,22 @@ protected function addToolbar() if ($isNew) { - JToolbarHelper::save('role.save'); - JToolbarHelper::save2new('role.save2new'); - JToolbarHelper::cancel('role.cancel'); + ToolbarHelper::save('role.save'); + ToolbarHelper::save2new('role.save2new'); + ToolbarHelper::cancel('role.cancel'); } else { if ($this->isEditable($canDo, $user->id)) { - JToolbarHelper::save('role.save'); + ToolbarHelper::save('role.save'); } - JToolbarHelper::cancel('role.cancel', 'JTOOLBAR_CLOSE'); + ToolbarHelper::cancel('role.cancel', 'JTOOLBAR_CLOSE'); } } - JToolbarHelper::divider(); + ToolbarHelper::divider(); } /** diff --git a/src/administrator/views/roles/view.html.php b/src/administrator/views/roles/view.html.php index d3ea6e4..9feebb4 100755 --- a/src/administrator/views/roles/view.html.php +++ b/src/administrator/views/roles/view.html.php @@ -125,24 +125,24 @@ protected function addToolbar() if ($this->canDo->get('core.create')) { - JToolbarHelper::addNew('role.add'); + ToolbarHelper::addNew('role.add'); } if ($this->canDo->get('core.edit')) { - JToolbarHelper::editList('role.edit'); + ToolbarHelper::editList('role.edit'); } if ($this->canDo->get('core.delete')) { - JToolbarHelper::deleteList('JGLOBAL_CONFIRM_DELETE', 'roles.delete', 'JTOOLBAR_DELETE'); - JToolbarHelper::divider(); + ToolbarHelper::deleteList('JGLOBAL_CONFIRM_DELETE', 'roles.delete', 'JTOOLBAR_DELETE'); + ToolbarHelper::divider(); } if ($this->canDo->get('core.admin') || $this->canDo->get('core.options')) { - JToolbarHelper::preferences('com_subusers'); - JToolbarHelper::divider(); + ToolbarHelper::preferences('com_subusers'); + ToolbarHelper::divider(); } } } diff --git a/src/administrator/views/user/view.html.php b/src/administrator/views/user/view.html.php index efd5afc..a282212 100755 --- a/src/administrator/views/user/view.html.php +++ b/src/administrator/views/user/view.html.php @@ -102,22 +102,22 @@ protected function addToolbar() if ($isNew) { - JToolbarHelper::save('user.save'); - JToolbarHelper::save2new('user.save2new'); - JToolbarHelper::cancel('user.cancel'); + ToolbarHelper::save('user.save'); + ToolbarHelper::save2new('user.save2new'); + ToolbarHelper::cancel('user.cancel'); } else { if ($this->isEditable($canDo, $user->id)) { - JToolbarHelper::save('user.save'); + ToolbarHelper::save('user.save'); } - JToolbarHelper::cancel('user.cancel', 'JTOOLBAR_CLOSE'); + ToolbarHelper::cancel('user.cancel', 'JTOOLBAR_CLOSE'); } } - JToolbarHelper::divider(); + ToolbarHelper::divider(); } /** diff --git a/src/administrator/views/users/view.html.php b/src/administrator/views/users/view.html.php index b8cfb7f..69d6e1b 100755 --- a/src/administrator/views/users/view.html.php +++ b/src/administrator/views/users/view.html.php @@ -126,24 +126,24 @@ protected function addToolbar() if ($canDo->get('core.create')) { - JToolbarHelper::addNew('user.add'); + ToolbarHelper::addNew('user.add'); } if ($canDo->get('core.edit')) { - JToolbarHelper::editList('users.edit'); + ToolbarHelper::editList('users.edit'); } if ($canDo->get('core.delete')) { - JToolbarHelper::deleteList('JGLOBAL_CONFIRM_DELETE', 'users.delete', 'JTOOLBAR_DELETE'); - JToolbarHelper::divider(); + ToolbarHelper::deleteList('JGLOBAL_CONFIRM_DELETE', 'users.delete', 'JTOOLBAR_DELETE'); + ToolbarHelper::divider(); } if ($canDo->get('core.admin') || $canDo->get('core.options')) { - JToolbarHelper::preferences('com_subusers'); - JToolbarHelper::divider(); + ToolbarHelper::preferences('com_subusers'); + ToolbarHelper::divider(); } } } From e1ceab9560eee70d287b7de6cab1aba725035dd1 Mon Sep 17 00:00:00 2001 From: Kishori Karale Date: Mon, 10 Oct 2022 23:46:13 +0530 Subject: [PATCH 21/24] Task #189115 feat: com_subusers improvements --- src/administrator/views/mapping/view.html.php | 2 ++ src/administrator/views/mappings/view.html.php | 1 + src/administrator/views/role/view.html.php | 1 + src/administrator/views/roles/view.html.php | 1 + src/administrator/views/user/view.html.php | 1 + src/administrator/views/users/view.html.php | 1 + 6 files changed, 7 insertions(+) diff --git a/src/administrator/views/mapping/view.html.php b/src/administrator/views/mapping/view.html.php index 3fa0287..c14ac24 100755 --- a/src/administrator/views/mapping/view.html.php +++ b/src/administrator/views/mapping/view.html.php @@ -14,6 +14,8 @@ use Joomla\CMS\MVC\View\HtmlView; use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\Language\Text; +use Joomla\CMS\Toolbar\ToolbarHelper; + /** * View to edit * diff --git a/src/administrator/views/mappings/view.html.php b/src/administrator/views/mappings/view.html.php index fc70304..8eaf78c 100755 --- a/src/administrator/views/mappings/view.html.php +++ b/src/administrator/views/mappings/view.html.php @@ -14,6 +14,7 @@ use Joomla\CMS\MVC\View\HtmlView; use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\Language\Text; +use Joomla\CMS\Toolbar\ToolbarHelper; /** * View class for a list of Subusers. diff --git a/src/administrator/views/role/view.html.php b/src/administrator/views/role/view.html.php index bf0ab12..b048221 100755 --- a/src/administrator/views/role/view.html.php +++ b/src/administrator/views/role/view.html.php @@ -14,6 +14,7 @@ use Joomla\CMS\MVC\View\HtmlView; use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\Language\Text; +use Joomla\CMS\Toolbar\ToolbarHelper; /** * View to edit diff --git a/src/administrator/views/roles/view.html.php b/src/administrator/views/roles/view.html.php index 9feebb4..3d21b2d 100755 --- a/src/administrator/views/roles/view.html.php +++ b/src/administrator/views/roles/view.html.php @@ -14,6 +14,7 @@ use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\View\HtmlView; +use Joomla\CMS\Toolbar\ToolbarHelper; /** * View class for a list of Subusers. diff --git a/src/administrator/views/user/view.html.php b/src/administrator/views/user/view.html.php index a282212..acefc0d 100755 --- a/src/administrator/views/user/view.html.php +++ b/src/administrator/views/user/view.html.php @@ -14,6 +14,7 @@ use Joomla\CMS\MVC\View\HtmlView; use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\Language\Text; +use Joomla\CMS\Toolbar\ToolbarHelper; /** * View to edit diff --git a/src/administrator/views/users/view.html.php b/src/administrator/views/users/view.html.php index 69d6e1b..9841634 100755 --- a/src/administrator/views/users/view.html.php +++ b/src/administrator/views/users/view.html.php @@ -14,6 +14,7 @@ use Joomla\CMS\MVC\View\HtmlView; use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\Language\Text; +use Joomla\CMS\Toolbar\ToolbarHelper; /** * View class for a list of Subusers. From 084522cf2c2c96e61afc35711c8971f97bb1e15b Mon Sep 17 00:00:00 2001 From: Kishori Karale Date: Tue, 11 Oct 2022 12:10:17 +0530 Subject: [PATCH 22/24] Task #189115 feat: com_subusers improvements --- src/administrator/views/action/view.html.php | 2 +- src/administrator/views/actions/view.html.php | 2 +- src/administrator/views/mapping/view.html.php | 2 +- src/administrator/views/mappings/view.html.php | 2 +- src/administrator/views/role/view.html.php | 2 +- src/administrator/views/roles/view.html.php | 2 +- src/administrator/views/user/view.html.php | 2 +- src/administrator/views/users/view.html.php | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/administrator/views/action/view.html.php b/src/administrator/views/action/view.html.php index 2818f81..9f54f9f 100755 --- a/src/administrator/views/action/view.html.php +++ b/src/administrator/views/action/view.html.php @@ -94,7 +94,7 @@ protected function addToolbar() $layout = Factory::getApplication()->input->get("layout"); $this->sidebar = JHtmlSidebar::render(); - JToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_ACTION'), 'action.png'); + ToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_ACTION'), 'action.png'); // For new records, check the create permission. if ($layout != "default") diff --git a/src/administrator/views/actions/view.html.php b/src/administrator/views/actions/view.html.php index 64901da..bd69e5f 100755 --- a/src/administrator/views/actions/view.html.php +++ b/src/administrator/views/actions/view.html.php @@ -121,7 +121,7 @@ public function display($tpl = null) */ protected function addToolbar() { - JToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_ACTIONS'), ''); + ToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_ACTIONS'), ''); $canDo = $this->canDo; diff --git a/src/administrator/views/mapping/view.html.php b/src/administrator/views/mapping/view.html.php index c14ac24..65e15d4 100755 --- a/src/administrator/views/mapping/view.html.php +++ b/src/administrator/views/mapping/view.html.php @@ -94,7 +94,7 @@ protected function addToolbar() $layout = Factory::getApplication()->input->get("layout"); $this->sidebar = JHtmlSidebar::render(); - JToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_MAPPING'), 'mapping.png'); + ToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_MAPPING'), 'mapping.png'); // For new records, check the create permission. if ($layout != "default") diff --git a/src/administrator/views/mappings/view.html.php b/src/administrator/views/mappings/view.html.php index 8eaf78c..774623d 100755 --- a/src/administrator/views/mappings/view.html.php +++ b/src/administrator/views/mappings/view.html.php @@ -122,7 +122,7 @@ public function display($tpl = null) */ protected function addToolbar() { - JToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_MAPPINGS'), ''); + ToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_MAPPINGS'), ''); if ($this->canDo->get('core.create')) { diff --git a/src/administrator/views/role/view.html.php b/src/administrator/views/role/view.html.php index b048221..0fe8c66 100755 --- a/src/administrator/views/role/view.html.php +++ b/src/administrator/views/role/view.html.php @@ -94,7 +94,7 @@ protected function addToolbar() $layout = Factory::getApplication()->input->get("layout"); $this->sidebar = JHtmlSidebar::render(); - JToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_ROLE'), 'role.png'); + ToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_ROLE'), 'role.png'); // For new records, check the create permission. if ($layout != "default") diff --git a/src/administrator/views/roles/view.html.php b/src/administrator/views/roles/view.html.php index 3d21b2d..9594cd0 100755 --- a/src/administrator/views/roles/view.html.php +++ b/src/administrator/views/roles/view.html.php @@ -122,7 +122,7 @@ public function display($tpl = null) */ protected function addToolbar() { - JToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_ROLES'), ''); + ToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_ROLES'), ''); if ($this->canDo->get('core.create')) { diff --git a/src/administrator/views/user/view.html.php b/src/administrator/views/user/view.html.php index acefc0d..d295171 100755 --- a/src/administrator/views/user/view.html.php +++ b/src/administrator/views/user/view.html.php @@ -94,7 +94,7 @@ protected function addToolbar() $layout = Factory::getApplication()->input->get("layout"); $this->sidebar = JHtmlSidebar::render(); - JToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_USER'), 'user.png'); + ToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_USER'), 'user.png'); // For new records, check the create permission. if ($layout != "default") diff --git a/src/administrator/views/users/view.html.php b/src/administrator/views/users/view.html.php index 9841634..c9510bd 100755 --- a/src/administrator/views/users/view.html.php +++ b/src/administrator/views/users/view.html.php @@ -121,7 +121,7 @@ public function display($tpl = null) */ protected function addToolbar() { - JToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_USERS'), 'users.png'); + ToolBarHelper::title(Text::_('COM_SUBUSERS_TITLE_USERS'), 'users.png'); $canDo = $this->canDo; From dc6001af87769b5bfe0268f97bb3db19edca4a4d Mon Sep 17 00:00:00 2001 From: Kishori Karale Date: Fri, 4 Nov 2022 17:39:41 +0530 Subject: [PATCH 23/24] Task #189115 chore: Updated Indexing and table changes --- src/administrator/sql/install.mysql.utf8.sql | 6 ++++++ src/administrator/sql/updates/mysql/1.1.0.sql | 3 +++ 2 files changed, 9 insertions(+) diff --git a/src/administrator/sql/install.mysql.utf8.sql b/src/administrator/sql/install.mysql.utf8.sql index b5a118d..86cea9a 100755 --- a/src/administrator/sql/install.mysql.utf8.sql +++ b/src/administrator/sql/install.mysql.utf8.sql @@ -58,8 +58,14 @@ CREATE TABLE IF NOT EXISTS `#__tjsu_users` ( `modified_by` int(11) NOT NULL, `modified_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`) + KEY `user_id_idx` (`user_id`) + KEY `client_id_idx` (`client_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci; INSERT INTO `#__tjsu_roles` (`id`, `name`, `client`, `created_by`, `created_date`, `modified_by`, `modified_date`, `ordering`) VALUES (1, 'Organization Manager', 'com_multiagency', 0, '0000-00-00 00:00:00', 0, '0000-00-00 00:00:00', 1), (2, 'Organization User', 'com_multiagency', 0, '0000-00-00 00:00:00', 0, '0000-00-00 00:00:00', 2); + +INSERT INTO `#__tjsu_actions` (`id`, `code`, `name`, `client`, `created_date`) VALUES +(1, 'core.agency.user.delete', 'Remove user from agency', 'com_multiagency', '0000-00-00 00:00:00'), +(2, 'core.agency.delete', 'Remove agency', 'com_multiagency', '0000-00-00 00:00:00'); diff --git a/src/administrator/sql/updates/mysql/1.1.0.sql b/src/administrator/sql/updates/mysql/1.1.0.sql index e2e46f4..735f87d 100755 --- a/src/administrator/sql/updates/mysql/1.1.0.sql +++ b/src/administrator/sql/updates/mysql/1.1.0.sql @@ -8,3 +8,6 @@ ALTER TABLE `#__tjsu_roles` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_uni ALTER TABLE `#__tjsu_actions` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `#__tjsu_role_action_map` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `#__tjsu_users` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +ALTER TABLE #__tjsu_users ADD INDEX user_id_idx (user_id); +ALTER TABLE #__tjsu_users ADD INDEX client_id_idx (client_id); From 92574d1e290e5d8d9a9e4783a90ec1004e388166 Mon Sep 17 00:00:00 2001 From: Kishori Karale Date: Sat, 5 Nov 2022 11:15:35 +0530 Subject: [PATCH 24/24] Task #189115 chore: Updated Indexing --- src/administrator/sql/install.mysql.utf8.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/administrator/sql/install.mysql.utf8.sql b/src/administrator/sql/install.mysql.utf8.sql index 86cea9a..3c0bae7 100755 --- a/src/administrator/sql/install.mysql.utf8.sql +++ b/src/administrator/sql/install.mysql.utf8.sql @@ -57,8 +57,8 @@ CREATE TABLE IF NOT EXISTS `#__tjsu_users` ( `created_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `modified_by` int(11) NOT NULL, `modified_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - PRIMARY KEY (`id`) - KEY `user_id_idx` (`user_id`) + PRIMARY KEY (`id`), + KEY `user_id_idx` (`user_id`), KEY `client_id_idx` (`client_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;