forked from joomla/Component-Builder
Improved the permissions adding behaviour so that no permissions tab will be added if no permissions are set in a view. gh-629
This commit is contained in:
parent
3bd2158b83
commit
cc201b8ec0
@ -147,7 +147,7 @@ TODO
|
|||||||
+ *Version*: 2.12.3
|
+ *Version*: 2.12.3
|
||||||
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
|
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
|
||||||
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
||||||
+ *Line count*: **290895**
|
+ *Line count*: **290875**
|
||||||
+ *Field count*: **1601**
|
+ *Field count*: **1601**
|
||||||
+ *File count*: **1923**
|
+ *File count*: **1923**
|
||||||
+ *Folder count*: **316**
|
+ *Folder count*: **316**
|
||||||
|
@ -147,7 +147,7 @@ TODO
|
|||||||
+ *Version*: 2.12.3
|
+ *Version*: 2.12.3
|
||||||
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
|
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
|
||||||
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
||||||
+ *Line count*: **290895**
|
+ *Line count*: **290875**
|
||||||
+ *Field count*: **1601**
|
+ *Field count*: **1601**
|
||||||
+ *File count*: **1923**
|
+ *File count*: **1923**
|
||||||
+ *Folder count*: **316**
|
+ *Folder count*: **316**
|
||||||
|
@ -46,6 +46,13 @@ class Fields extends Structure
|
|||||||
*/
|
*/
|
||||||
public $layoutBuilder = array();
|
public $layoutBuilder = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* permissions builder
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public $hasPermissions = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* used to fix the zero order
|
* used to fix the zero order
|
||||||
*
|
*
|
||||||
@ -865,7 +872,8 @@ class Fields extends Structure
|
|||||||
}
|
}
|
||||||
// fix the permissions field "title" issue gh-629
|
// fix the permissions field "title" issue gh-629
|
||||||
// check if the the title is not already set
|
// check if the the title is not already set
|
||||||
if (!isset($this->fieldsNames[$nameSingleCode]['title']))
|
if (!isset($this->fieldsNames[$nameSingleCode]['title'])
|
||||||
|
&& $this->hasPermissionsSet($view, $nameSingleCode))
|
||||||
{
|
{
|
||||||
// set the field/tab name
|
// set the field/tab name
|
||||||
$field_name = "title";
|
$field_name = "title";
|
||||||
@ -1299,7 +1307,8 @@ class Fields extends Structure
|
|||||||
}
|
}
|
||||||
// fix the permissions field "title" issue gh-629
|
// fix the permissions field "title" issue gh-629
|
||||||
// check if the the title is not already set
|
// check if the the title is not already set
|
||||||
if (!isset($this->fieldsNames[$nameSingleCode]['title']))
|
if (!isset($this->fieldsNames[$nameSingleCode]['title'])
|
||||||
|
&& $this->hasPermissionsSet($view, $nameSingleCode))
|
||||||
{
|
{
|
||||||
// set the field/tab name
|
// set the field/tab name
|
||||||
$field_name = "title";
|
$field_name = "title";
|
||||||
@ -1455,6 +1464,81 @@ class Fields extends Structure
|
|||||||
return $this->xmlPrettyPrint($XML, 'fieldset');
|
return $this->xmlPrettyPrint($XML, 'fieldset');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check to see if a view has permissions
|
||||||
|
*
|
||||||
|
* @param array $view View details
|
||||||
|
* @param string $nameSingleCode View Single Code Name
|
||||||
|
*
|
||||||
|
* @return boolean true if it has permisssions
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
protected function hasPermissionsSet(&$view, &$nameSingleCode)
|
||||||
|
{
|
||||||
|
// first check if we have checked this already
|
||||||
|
if (!isset($this->hasPermissions[$nameSingleCode]))
|
||||||
|
{
|
||||||
|
// default is false
|
||||||
|
$this->hasPermissions[$nameSingleCode] = false;
|
||||||
|
// when a view has history, it has permissions
|
||||||
|
// since it tracks the version access
|
||||||
|
if (isset($view['history']) && $view['history'] == 1)
|
||||||
|
{
|
||||||
|
// set the permission for later
|
||||||
|
$this->hasPermissions[$nameSingleCode] = true;
|
||||||
|
// break out here
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// check if the view has permissions
|
||||||
|
if (isset($view['settings'])
|
||||||
|
&& ComponentbuilderHelper::checkArray(
|
||||||
|
$view['settings']->permissions
|
||||||
|
))
|
||||||
|
{
|
||||||
|
foreach ($view['settings']->permissions as $per)
|
||||||
|
{
|
||||||
|
// check if the permission targets the view
|
||||||
|
// 1 = view
|
||||||
|
// 3 = both view & component
|
||||||
|
if (isset($per['implementation'])
|
||||||
|
&& (
|
||||||
|
$per['implementation'] == 1
|
||||||
|
|| $per['implementation'] == 3
|
||||||
|
))
|
||||||
|
{
|
||||||
|
// set the permission for later
|
||||||
|
$this->hasPermissions[$nameSingleCode] = true;
|
||||||
|
// break out here
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// check if the fields has permissions
|
||||||
|
if (isset($view['settings'])
|
||||||
|
&& ComponentbuilderHelper::checkArray(
|
||||||
|
$view['settings']->fields
|
||||||
|
))
|
||||||
|
{
|
||||||
|
foreach ($view['settings']->fields as $field)
|
||||||
|
{
|
||||||
|
// if a field has any permissions
|
||||||
|
// the a view has permissions
|
||||||
|
if (isset($field['permission'])
|
||||||
|
&& ComponentbuilderHelper::checkArray(
|
||||||
|
$field['permission']
|
||||||
|
))
|
||||||
|
{
|
||||||
|
// set the permission for later
|
||||||
|
$this->hasPermissions[$nameSingleCode] = true;
|
||||||
|
// break out here
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $this->hasPermissions[$nameSingleCode];
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* set Field Names
|
* set Field Names
|
||||||
*
|
*
|
||||||
|
@ -13393,7 +13393,9 @@ class Interpretation extends Fields
|
|||||||
}
|
}
|
||||||
|
|
||||||
// make sure we dont load it to a view with the name component (as this will cause conflict with Joomla conventions)
|
// make sure we dont load it to a view with the name component (as this will cause conflict with Joomla conventions)
|
||||||
if ($nameSingleCode != 'component')
|
if ($nameSingleCode != 'component'
|
||||||
|
&& isset($this->hasPermissions[$nameSingleCode])
|
||||||
|
&& $this->hasPermissions[$nameSingleCode])
|
||||||
{
|
{
|
||||||
// set permissions tab lang
|
// set permissions tab lang
|
||||||
$tabLangName = $langView . '_PERMISSION';
|
$tabLangName = $langView . '_PERMISSION';
|
||||||
|
@ -5678,7 +5678,6 @@ COM_COMPONENTBUILDER_HELP_DOCUMENT_MODIFIED_DATE_LABEL="Modified Date"
|
|||||||
COM_COMPONENTBUILDER_HELP_DOCUMENT_NEW="A New Help Document"
|
COM_COMPONENTBUILDER_HELP_DOCUMENT_NEW="A New Help Document"
|
||||||
COM_COMPONENTBUILDER_HELP_DOCUMENT_NOT_REQUIRED="Not Required"
|
COM_COMPONENTBUILDER_HELP_DOCUMENT_NOT_REQUIRED="Not Required"
|
||||||
COM_COMPONENTBUILDER_HELP_DOCUMENT_ORDERING_LABEL="Ordering"
|
COM_COMPONENTBUILDER_HELP_DOCUMENT_ORDERING_LABEL="Ordering"
|
||||||
COM_COMPONENTBUILDER_HELP_DOCUMENT_PERMISSION="Permissions"
|
|
||||||
COM_COMPONENTBUILDER_HELP_DOCUMENT_PUBLISHING="Publishing"
|
COM_COMPONENTBUILDER_HELP_DOCUMENT_PUBLISHING="Publishing"
|
||||||
COM_COMPONENTBUILDER_HELP_DOCUMENT_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Help Document to customise the alias."
|
COM_COMPONENTBUILDER_HELP_DOCUMENT_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Help Document to customise the alias."
|
||||||
COM_COMPONENTBUILDER_HELP_DOCUMENT_SELECT_AN_OPTION="Select an option"
|
COM_COMPONENTBUILDER_HELP_DOCUMENT_SELECT_AN_OPTION="Select an option"
|
||||||
|
@ -82,25 +82,6 @@ $componentParams = $this->params; // will be removed just use $this->params inst
|
|||||||
<?php echo JHtml::_('bootstrap.endTab'); ?>
|
<?php echo JHtml::_('bootstrap.endTab'); ?>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<?php if ($this->canDo->get('core.admin')) : ?>
|
|
||||||
<?php echo JHtml::_('bootstrap.addTab', 'help_documentTab', 'permissions', JText::_('COM_COMPONENTBUILDER_HELP_DOCUMENT_PERMISSION', true)); ?>
|
|
||||||
<div class="row-fluid form-horizontal-desktop">
|
|
||||||
<div class="span12">
|
|
||||||
<fieldset class="adminform">
|
|
||||||
<div class="adminformlist">
|
|
||||||
<?php foreach ($this->form->getFieldset('accesscontrol') as $field): ?>
|
|
||||||
<div>
|
|
||||||
<?php echo $field->label; echo $field->input;?>
|
|
||||||
</div>
|
|
||||||
<div class="clearfix"></div>
|
|
||||||
<?php endforeach; ?>
|
|
||||||
</div>
|
|
||||||
</fieldset>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<?php echo JHtml::_('bootstrap.endTab'); ?>
|
|
||||||
<?php endif; ?>
|
|
||||||
|
|
||||||
<?php echo JHtml::_('bootstrap.endTabSet'); ?>
|
<?php echo JHtml::_('bootstrap.endTabSet'); ?>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
Loading…
Reference in New Issue
Block a user