Fixed count (php 7.2) issue across JCB. Improved the setModelExportMethod method in the compiler to now work as a setGetItemsModelMethod instead. Added more strict permissional implementation per/field across the export methods of JCB.

This commit is contained in:
2019-09-05 23:12:56 +02:00
parent 3cbe21f57d
commit e3f22d631c
60 changed files with 623 additions and 247 deletions

View File

@ -105,9 +105,15 @@ class ComponentbuilderModelHelp_documents extends JModelList
// set values to display correctly.
if (ComponentbuilderHelper::checkArray($items))
{
// Get the user object if not set.
if (!isset($user) || !ComponentbuilderHelper::checkObject($user))
{
$user = JFactory::getUser();
}
foreach ($items as $nr => &$item)
{
$access = (JFactory::getUser()->authorise('help_document.access', 'com_componentbuilder.help_document.' . (int) $item->id) && JFactory::getUser()->authorise('help_document.access', 'com_componentbuilder'));
// Remove items the user can't access.
$access = ($user->authorise('help_document.access', 'com_componentbuilder.help_document.' . (int) $item->id) && $user->authorise('help_document.access', 'com_componentbuilder'));
if (!$access)
{
unset($items[$nr]);
@ -118,21 +124,12 @@ class ComponentbuilderModelHelp_documents extends JModelList
$groupsArray = json_decode($item->groups, true);
if (ComponentbuilderHelper::checkArray($groupsArray))
{
$groupsNames = '';
$counter = 0;
$groupsNames = array();
foreach ($groupsArray as $groups)
{
if ($counter == 0)
{
$groupsNames .= ComponentbuilderHelper::getGroupName($groups);
}
else
{
$groupsNames .= ', '.ComponentbuilderHelper::getGroupName($groups);
}
$counter++;
$groupsNames[] = ComponentbuilderHelper::getGroupName($groups);
}
$item->groups = $groupsNames;
$item->groups = implode(', ', $groupsNames);
}
}
}
@ -271,6 +268,9 @@ class ComponentbuilderModelHelp_documents extends JModelList
/**
* Method to get list export data.
*
* @param array $pks The ids of the items to get
* @param JUser $user The user making the request
*
* @return mixed An array of data items on success, false on failure.
*/
public function getExportData($pks, $user = null)
@ -278,10 +278,10 @@ class ComponentbuilderModelHelp_documents extends JModelList
// setup the query
if (ComponentbuilderHelper::checkArray($pks))
{
// Set a value to know this is exporting method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
// Set a value to know this is export method. (USE IN CUSTOM CODE TO ALTER OUTCOME)
$_export = true;
// Get the user object if not set.
if (ComponentbuilderHelper::checkObject($user))
if (!isset($user) || !ComponentbuilderHelper::checkObject($user))
{
$user = JFactory::getUser();
}
@ -311,7 +311,8 @@ class ComponentbuilderModelHelp_documents extends JModelList
{
foreach ($items as $nr => &$item)
{
$access = (JFactory::getUser()->authorise('help_document.access', 'com_componentbuilder.help_document.' . (int) $item->id) && JFactory::getUser()->authorise('help_document.access', 'com_componentbuilder'));
// Remove items the user can't access.
$access = ($user->authorise('help_document.access', 'com_componentbuilder.help_document.' . (int) $item->id) && $user->authorise('help_document.access', 'com_componentbuilder'));
if (!$access)
{
unset($items[$nr]);