|
|
|
@ -8,33 +8,33 @@
|
|
|
|
|
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
|
|
|
|
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
|
|
|
|
*/
|
|
|
|
|
namespace VDM\Plugin\Extension\ComponentbuilderPrivacyCompiler\Extension;
|
|
|
|
|
|
|
|
|
|
// No direct access to this file
|
|
|
|
|
defined('_JEXEC') or die('Restricted access');
|
|
|
|
|
|
|
|
|
|
JLoader::register('ComponentbuilderHelper', JPATH_ADMINISTRATOR . '/components/com_componentbuilder/helpers/componentbuilder.php');
|
|
|
|
|
|
|
|
|
|
use Joomla\CMS\Factory;
|
|
|
|
|
use Joomla\CMS\Language\Text;
|
|
|
|
|
use Joomla\CMS\Application\CMSApplication;
|
|
|
|
|
use Joomla\CMS\Plugin\CMSPlugin;
|
|
|
|
|
use Joomla\Registry\Registry;
|
|
|
|
|
use VDM\Joomla\Utilities\JsonHelper;
|
|
|
|
|
use VDM\Joomla\Utilities\ArrayHelper;
|
|
|
|
|
use VDM\Joomla\Componentbuilder\Compiler\Factory as CompilerFactory;
|
|
|
|
|
use VDM\Joomla\Utilities\StringHelper;
|
|
|
|
|
use VDM\Joomla\Componentbuilder\Compiler\Factory as CFactory;
|
|
|
|
|
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Placefix;
|
|
|
|
|
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Indent;
|
|
|
|
|
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Line;
|
|
|
|
|
use VDM\Joomla\Componentbuilder\Compiler\Utilities\Placefix;
|
|
|
|
|
use Joomla\Event\SubscriberInterface;
|
|
|
|
|
use Joomla\CMS\Plugin\PluginHelper;
|
|
|
|
|
|
|
|
|
|
// No direct access to this file
|
|
|
|
|
defined('_JEXEC') or die('Restricted access');
|
|
|
|
|
use VDM\Joomla\Utilities\JsonHelper;
|
|
|
|
|
use VDM\Joomla\Utilities\ArrayHelper;
|
|
|
|
|
use VDM\Joomla\Utilities\StringHelper;
|
|
|
|
|
use Joomla\CMS\Component\ComponentHelper;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Extension - Componentbuilder Privacy Compiler plugin.
|
|
|
|
|
*
|
|
|
|
|
* @package ComponentbuilderPrivacyCompiler
|
|
|
|
|
* @since 3.0.0
|
|
|
|
|
* @since 1.2.4
|
|
|
|
|
*/
|
|
|
|
|
final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements SubscriberInterface
|
|
|
|
|
class PlgExtensionComponentbuilderPrivacyCompiler extends CMSPlugin
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* Affects constructor behavior. If true, language files will be loaded automatically.
|
|
|
|
@ -99,25 +99,15 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
{
|
|
|
|
|
$view->addpermissions = array_values($view->addpermissions);
|
|
|
|
|
// add the new permissions
|
|
|
|
|
$view->addpermissions[] = [
|
|
|
|
|
'action' => 'view.privacy.delete',
|
|
|
|
|
'implementation' => 3,
|
|
|
|
|
'title' => $view->name_list . ' Privacy Delete',
|
|
|
|
|
'description' => ' Allows the users in this group to remove their personal data in ' . $view->name_list . ' via the Joomla privacy suite.'
|
|
|
|
|
];
|
|
|
|
|
$view->addpermissions[] = [
|
|
|
|
|
'action' => 'view.privacy.access',
|
|
|
|
|
'implementation' => 3,
|
|
|
|
|
'title' => $view->name_list . ' Privacy Access',
|
|
|
|
|
'description' => ' Allows the users in this group to access their personal data in ' . $view->name_list . ' via the Joomla privacy suite.'
|
|
|
|
|
];
|
|
|
|
|
$view->addpermissions[] = array('action' => 'view.privacy.delete', 'implementation' => 3, 'title' => $view->name_list . ' Privacy Delete', 'description' => ' Allows the users in this group to remove their personal data in ' . $view->name_list . ' via the Joomla privacy suite.');
|
|
|
|
|
$view->addpermissions[] = array('action' => 'view.privacy.access', 'implementation' => 3, 'title' => $view->name_list . ' Privacy Access', 'description' => ' Allows the users in this group to access their personal data in ' . $view->name_list . ' via the Joomla privacy suite.');
|
|
|
|
|
// convert back to json
|
|
|
|
|
$view->addpermissions = json_encode($view->addpermissions, JSON_FORCE_OBJECT);
|
|
|
|
|
}
|
|
|
|
|
// add placeholders to view if not already set
|
|
|
|
|
if (!isset($this->activeViews[$view->id]->placeholders))
|
|
|
|
|
{
|
|
|
|
|
$this->activeViews[$view->id]->placeholders = CompilerFactory::_('Placeholder')->active;
|
|
|
|
|
$this->activeViews[$view->id]->placeholders = CFactory::_('Placeholder')->active;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -134,7 +124,7 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
// check if this component needs a privacy plugin loaded
|
|
|
|
|
if ($this->loadPrivacy)
|
|
|
|
|
{
|
|
|
|
|
$plugin = PluginHelper::getPlugin('content', 'componentbuilderprivacytabs');
|
|
|
|
|
$plugin = JPluginHelper::getPlugin('content', 'componentbuilderprivacytabs');
|
|
|
|
|
// check if this is json
|
|
|
|
|
if (isset($plugin->params) && JsonHelper::check($plugin->params))
|
|
|
|
|
{
|
|
|
|
@ -147,11 +137,11 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
if (isset($plugin->params['plugin']) && $plugin->params['plugin'] > 0)
|
|
|
|
|
{
|
|
|
|
|
// if linked it will only load it once
|
|
|
|
|
CompilerFactory::_('Joomlaplugin.Data')->set($plugin->params['plugin']);
|
|
|
|
|
CFactory::_('Joomlaplugin.Data')->set($plugin->params['plugin']);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
$this->getApplication()->enqueueMessage(Text::_('PLG_EXTENSION_COMPONENTBUILDERPRIVACYCOMPILER_YOU_DO_NOT_HAVE_A_GLOBAL_PRIVACY_PLUGIN_SETUP_SO_THE_INTEGRATION_WITH_JOOMLA_PRIVACY_SUITE_COULD_NOT_BE_BUILD'), 'Warning');
|
|
|
|
|
Factory::getApplication()->enqueueMessage(Text::_('PLG_EXTENSION_COMPONENTBUILDERPRIVACYCOMPILER_YOU_DO_NOT_HAVE_A_GLOBAL_PRIVACY_PLUGIN_SETUP_SO_THE_INTEGRATION_WITH_JOOMLA_PRIVACY_SUITE_COULD_NOT_BE_BUILD'), 'Warning');
|
|
|
|
|
$this->loadPrivacy= false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -170,8 +160,8 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
if ($this->loadPrivacy && ArrayHelper::check($this->activeViews))
|
|
|
|
|
{
|
|
|
|
|
// get compiler defaults
|
|
|
|
|
$strictFieldExportPermissions = CompilerFactory::_('Config')->get('permission_strict_per_field', false);
|
|
|
|
|
$exportTextOnly = CompilerFactory::_('Config')->get('export_text_only', 1);
|
|
|
|
|
$strictFieldExportPermissions = CFactory::_('Config')->get('permission_strict_per_field', false);
|
|
|
|
|
$exportTextOnly = CFactory::_('Config')->get('export_text_only', 1);
|
|
|
|
|
|
|
|
|
|
// load the getPrivacyExport functions
|
|
|
|
|
foreach ($this->activeViews as $id => &$view)
|
|
|
|
@ -179,18 +169,18 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
// set permissions based on view
|
|
|
|
|
if (isset($view->params['privacy']['permissions']))
|
|
|
|
|
{
|
|
|
|
|
CompilerFactory::_('Config')->set('permission_strict_per_field', (bool) $view->params['privacy']['permissions']);
|
|
|
|
|
CFactory::_('Config')->set('permission_strict_per_field', (bool) $view->params['privacy']['permissions']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// allow text only export
|
|
|
|
|
CompilerFactory::_('Config')->set('export_text_only', 1);
|
|
|
|
|
CFactory::_('Config')->set('export_text_only', 1);
|
|
|
|
|
|
|
|
|
|
// set view list name
|
|
|
|
|
$viewName_list = StringHelper::safe($view->name_list);
|
|
|
|
|
// set view single name
|
|
|
|
|
$viewName_single = StringHelper::safe($view->name_single);
|
|
|
|
|
// load the function
|
|
|
|
|
CompilerFactory::_('Compiler.Builder.Content.Multi')->add($viewName_list . '|MODELEXPORTMETHOD',
|
|
|
|
|
CFactory::_('Compiler.Builder.Content.Multi')->add($viewName_list . '|MODELEXPORTMETHOD',
|
|
|
|
|
$compiler->setGetItemsModelMethod(
|
|
|
|
|
$viewName_single,
|
|
|
|
|
$viewName_list,
|
|
|
|
@ -202,7 +192,7 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
// get the permissions building values for later if needed
|
|
|
|
|
if (CompilerFactory::_('Config')->get('permission_strict_per_field', false) &&
|
|
|
|
|
if (CFactory::_('Config')->get('permission_strict_per_field', false) &&
|
|
|
|
|
isset($compiler->permissionFields[$viewName_single]) &&
|
|
|
|
|
ArrayHelper::check($compiler->permissionFields[$viewName_single]))
|
|
|
|
|
{
|
|
|
|
@ -211,8 +201,8 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// set compiler defaults
|
|
|
|
|
CompilerFactory::_('Config')->set('permission_strict_per_field', $strictFieldExportPermissions);
|
|
|
|
|
CompilerFactory::_('Config')->set('export_text_only', $exportTextOnly);
|
|
|
|
|
CFactory::_('Config')->set('permission_strict_per_field', $strictFieldExportPermissions);
|
|
|
|
|
CFactory::_('Config')->set('export_text_only', $exportTextOnly);
|
|
|
|
|
|
|
|
|
|
// add helper classes
|
|
|
|
|
$helper_strings = ['CUSTOM_HELPER_SCRIPT', 'SITE_CUSTOM_HELPER_SCRIPT', 'BOTH_CUSTOM_HELPER_SCRIPT'];
|
|
|
|
@ -224,7 +214,7 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
|
|
|
|
|
foreach ($helper_strings as $helper)
|
|
|
|
|
{
|
|
|
|
|
if (($helper_content = CompilerFactory::_('Compiler.Builder.Content.One')->get($helper)) !== null &&
|
|
|
|
|
if (($helper_content = CFactory::_('Compiler.Builder.Content.One')->get($helper)) !== null &&
|
|
|
|
|
StringHelper::check($helper_content))
|
|
|
|
|
{
|
|
|
|
|
foreach ($privacy_events as $privacy_event => &$add)
|
|
|
|
@ -239,8 +229,8 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// add the events still needed
|
|
|
|
|
CompilerFactory::_('Compiler.Builder.Content.One')->add('BOTH_CUSTOM_HELPER_SCRIPT',
|
|
|
|
|
CompilerFactory::_('Placeholder')->update_($this->getHelperMethod($privacy_events))
|
|
|
|
|
CFactory::_('Compiler.Builder.Content.One')->add('BOTH_CUSTOM_HELPER_SCRIPT',
|
|
|
|
|
CFactory::_('Placeholder')->update_($this->getHelperMethod($privacy_events))
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -258,7 +248,7 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
{
|
|
|
|
|
foreach($this->languageArray as $key => $string)
|
|
|
|
|
{
|
|
|
|
|
CompilerFactory::_('Language')->set('site', $key, $string);
|
|
|
|
|
CFactory::_('Language')->set('site', $key, $string);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -309,7 +299,7 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @param PrivacyPlugin \$plugin The plugin being processed";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @param PrivacyRemovalStatus \$status The status being set";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @param PrivacyTableRequest \$request The request record being processed";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @param Joomla__"."_effdaf6d_2275_425d_9f52_d4952e564d34___Power \$user The user account associated with this request if available";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @param JUser \$user The user account associated with this request if available";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " *";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @return PrivacyRemovalStatus";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " */";
|
|
|
|
@ -326,27 +316,27 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "//" . Line::_(__Line__, __Class__) . " Check if user has permission to delete " . $view->name_list;
|
|
|
|
|
// set the if statement based on the permission builder
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "if (!\$user->authorise('"
|
|
|
|
|
. CompilerFactory::_('Compiler.Creator.Permission')->getAction($viewName_single, 'core.delete')
|
|
|
|
|
. CFactory::_('Compiler.Creator.Permission')->getAction($viewName_single, 'core.delete')
|
|
|
|
|
. "', 'com_" . Placefix::_("component") . "') && !\$user->authorise('"
|
|
|
|
|
. CompilerFactory::_('Compiler.Creator.Permission')->getAction($viewName_single, 'core.privacy.delete')
|
|
|
|
|
. CFactory::_('Compiler.Creator.Permission')->getAction($viewName_single, 'core.privacy.delete')
|
|
|
|
|
. "', 'com_" . Placefix::_("component") . "'))";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "{";
|
|
|
|
|
// set language key
|
|
|
|
|
$lang_key = $view->placeholders[Placefix::_("LANG_PREFIX")] . '_PRIVACY_CANT_REMOVE_' . $view->placeholders[Placefix::_("VIEWS")];
|
|
|
|
|
// set language string
|
|
|
|
|
$this->languageArray[$lang_key] = "You do not have permission to remove/delete ". $view->name_list . ".";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(3) . "\$reasons[] = Joomla__" . "_ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('" . $lang_key . "');";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(3) . "\$reasons[] = JTe" . "xt::_('" . $lang_key . "');";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "}";
|
|
|
|
|
// set language key
|
|
|
|
|
$lang_key = $view->placeholders[Placefix::_("LANG_PREFIX")] . '_PRIVACY_CANT_REMOVE_CONTACT_SUPPORT';
|
|
|
|
|
}
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "//" . Line::_(__Line__, __Class__) . " Check if any reasons were found not to allow removal";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "if (Super__" . "_0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a___Power::check(\$reasons))";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "if (Super__"."_0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a___Power::check(\$reasons))";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "{";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(3) . "\$status->canRemove = false;";
|
|
|
|
|
// set language string
|
|
|
|
|
$this->languageArray[$lang_key] = 'Please contact support for more details.';
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(3) . "\$status->reason = implode(' ' . PHP_EOL, \$reasons) . ' ' . PHP_EOL . Joomla__" . "_ba6326ef_cb79_4348_80f4_ab086082e3c5___Power::_('" . $lang_key . "');";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(3) . "\$status->reason = implode(' ' . PHP_EOL, \$reasons) . ' ' . PHP_EOL . JTe" . "xt::_('" . $lang_key . "');";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "}";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "return \$status;";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . "}" . PHP_EOL;
|
|
|
|
@ -368,7 +358,7 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @param PrivacyPlugin \$plugin The plugin being processed";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @param DomainArray \$domains The array of domains";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @param PrivacyTableRequest \$request The request record being processed";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @param Joomla__"."_effdaf6d_2275_425d_9f52_d4952e564d34___Power \$user The user account associated with this request if available";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @param JUser \$user The user account associated with this request if available";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " *";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @return PrivacyExportDomain[]";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " */";
|
|
|
|
@ -384,9 +374,9 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "//" . Line::_(__Line__, __Class__) . " Check if user has permission to access " . $view->name_list;
|
|
|
|
|
// set the if statement based on the permission builder
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "if (\$user->authorise('"
|
|
|
|
|
. CompilerFactory::_('Compiler.Creator.Permission')->getGlobal($viewName_single, 'core.access')
|
|
|
|
|
. CFactory::_('Compiler.Creator.Permission')->getGlobal($viewName_single, 'core.access')
|
|
|
|
|
. "', 'com_" . Placefix::_("component") . "') || \$user->authorise('"
|
|
|
|
|
. CompilerFactory::_('Compiler.Creator.Permission')->getGlobal($viewName_single, 'core.privacy.access')
|
|
|
|
|
. CFactory::_('Compiler.Creator.Permission')->getGlobal($viewName_single, 'core.privacy.access')
|
|
|
|
|
. "', 'com_" . Placefix::_("component") . "'))";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "{";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(3) . "//" . Line::_(__Line__, __Class__) . " Get " . $view->name_single . " domain";
|
|
|
|
@ -406,7 +396,7 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . "/**";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * Create the domain for the " . $view->name_single;
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " *";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @param Joomla__"."_11accf54_fcb9_4ba0_a645_7c80ce14e224___Power \$user The Joomla__"."_11accf54_fcb9_4ba0_a645_7c80ce14e224___Power object to process";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @param JTableUser \$user The JTableUser object to process";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " *";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @return PrivacyExportDomain";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " */";
|
|
|
|
@ -454,7 +444,7 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "//" . Line::_(__Line__, __Class__) . " Get all item details of " . $view->name_list . " that belong to this user";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "\$items = \$model->getPrivacyExport(\$pks, \$user);";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "//" . Line::_(__Line__, __Class__) . " check if we have items since permissions could block the request";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "if (Super__" . "_0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a___Power::check(\$items))";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "if (Super__"."_0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a___Power::check(\$items))";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "{";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(3) . "//" . Line::_(__Line__, __Class__) . " Remove " . $view->name_single . " default columns";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(3) . "foreach (array('params', 'asset_id', 'checked_out', 'checked_out_time', 'created', 'created_by', 'modified', 'modified_by', 'published', 'ordering', 'access', 'version', 'hits') as \$column)";
|
|
|
|
@ -563,7 +553,7 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * Removes the data associated with a remove information request";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " *";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @param PrivacyTableRequest \$request The request record being processed";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @param Joomla__"."_effdaf6d_2275_425d_9f52_d4952e564d34___Power \$user The user account associated with this request if available";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @param JUser \$user The user account associated with this request if available";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " *";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @return void";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " */";
|
|
|
|
@ -586,9 +576,9 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "//" . Line::_(__Line__, __Class__) . " Check if user has permission to delet " . $view->name_list;
|
|
|
|
|
// set the if statement based on the permission builder
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "if (\$user->authorise('"
|
|
|
|
|
. CompilerFactory::_('Compiler.Creator.Permission')->getAction($viewName_single, 'core.delete')
|
|
|
|
|
. CFactory::_('Compiler.Creator.Permission')->getAction($viewName_single, 'core.delete')
|
|
|
|
|
. "', 'com_" . Placefix::_("component") . "') || \$user->authorise('"
|
|
|
|
|
. CompilerFactory::_('Compiler.Creator.Permission')->getAction($viewName_single, 'core.privacy.delete')
|
|
|
|
|
. CFactory::_('Compiler.Creator.Permission')->getAction($viewName_single, 'core.privacy.delete')
|
|
|
|
|
. "', 'com_" . Placefix::_("component") . "'))";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "{";
|
|
|
|
|
// check if this is a plain delete, or it is a Anonymize
|
|
|
|
@ -637,7 +627,7 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " *";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @param Joomla__"."_11accf54_fcb9_4ba0_a645_7c80ce14e224___Power \$user The Joomla__"."_11accf54_fcb9_4ba0_a645_7c80ce14e224___Power object to process";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @param JTableUser \$user The JTableUser object to process";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " *";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " * @return void";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . " */";
|
|
|
|
@ -691,7 +681,7 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "//" . Line::_(__Line__, __Class__) . " get all items for the " . $view->name_list . " table that belong to this user";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "\$pks = \$db->setQuery(\$query)->loadColumn();";
|
|
|
|
|
|
|
|
|
|
$methods .= PHP_EOL .PHP_EOL . Indent::_(2) . "if (Super__" . "_0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a___Power::check(\$pks))";
|
|
|
|
|
$methods .= PHP_EOL .PHP_EOL . Indent::_(2) . "if (Super__"."_0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a___Power::check(\$pks))";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(2) . "{";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(3) . "//" . Line::_(__Line__, __Class__) . " get the " . $viewName_single . " model";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(3) . "\$model = self::getModel('" . $viewName_single . "', JPATH_ADMINISTRATOR . '/components/com_" . Placefix::_("component") . "');";
|
|
|
|
@ -748,7 +738,7 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
if ($hasPermissional)
|
|
|
|
|
{
|
|
|
|
|
$methods .= PHP_EOL . PHP_EOL . Indent::_(3) . "//" . Line::_(__Line__, __Class__) . " Get global permissional control activation. (default is inactive)";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(3) . "\$strict_permission_per_field = Joomla__" . "_aeb8e463_291f_4445_9ac4_34b637c12dbd___Power::getParams('com_" . Placefix::_("component") . "')->get('strict_permission_per_field', 0);";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(3) . "\$strict_permission_per_field = ComponentHelper::getParams('com_" . Placefix::_("component") . "')->get('strict_permission_per_field', 0);";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(3) . "if(\$strict_permission_per_field)";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(3) . "{";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(4) . "//" . Line::_(__Line__, __Class__) . " remove all fields that is not permitted to be changed";
|
|
|
|
@ -778,7 +768,7 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(3) . "\$table = \$model->getTable();";
|
|
|
|
|
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(3) . "//" . Line::_(__Line__, __Class__) . " check that we still have pseudoanonymised data for " . $view->name_list . " set";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(3) . "if (!Super__" . "_0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a___Power::check(\$pseudoanonymisedData))";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(3) . "if (!Super__"."_0a59c65c_9daf_4bc9_baf4_e063ff9e6a8a___Power::check(\$pseudoanonymisedData))";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(3) . "{";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(4) . "//" . Line::_(__Line__, __Class__) . " still archive all items";
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(4) . "\$table->publish(\$pks, 2);";
|
|
|
|
@ -829,21 +819,4 @@ final class ComponentbuilderPrivacyCompiler extends CMSPlugin implements Subscri
|
|
|
|
|
$methods .= PHP_EOL . Indent::_(1) . "}" . PHP_EOL;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Returns an array of events this subscriber will listen to.
|
|
|
|
|
*
|
|
|
|
|
* @return array
|
|
|
|
|
*
|
|
|
|
|
* @since 5.0.0
|
|
|
|
|
*/
|
|
|
|
|
public static function getSubscribedEvents(): array
|
|
|
|
|
{
|
|
|
|
|
return [
|
|
|
|
|
'jcb_ce_onBeforeModelViewData' => 'jcb_ce_onBeforeModelViewData',
|
|
|
|
|
'jcb_ce_onAfterGet' => 'jcb_ce_onAfterGet',
|
|
|
|
|
'jcb_ce_onBeforeUpdateFiles' => 'jcb_ce_onBeforeUpdateFiles',
|
|
|
|
|
'jcb_ce_onBeforeSetLangFileData' => 'jcb_ce_onBeforeSetLangFileData'
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
}
|