Spade
Mini Shell
| Directory:~$ /home/lmsyaran/public_html/css/ |
| [Home] [System Details] [Kill Me] |
PK넋[bDkI��controller.phpnu�[���<?php
/**
* @package Joomla.Site
* @subpackage com_privacy
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
/**
* Privacy Controller
*
* @since 3.9.0
*/
class PrivacyController extends JControllerLegacy
{
/**
* Method to display a view.
*
* @param boolean $cachable If true, the view output will be cached
* @param array $urlparams An array of safe URL parameters and their
variable types, for valid values see {@link JFilterInput::clean()}.
*
* @return $this
*
* @since 3.9.0
*/
public function display($cachable = false, $urlparams = array())
{
$view = $this->input->get('view',
$this->default_view);
// Submitting information requests through the frontend is restricted to
authenticated users at this time
if ($view === 'request' &&
JFactory::getUser()->guest)
{
$this->setRedirect(
JRoute::_('index.php?option=com_users&view=login&return='
. base64_encode('index.php?option=com_privacy&view=request'),
false)
);
return $this;
}
// Set a Referrer-Policy header for views which require it
if (in_array($view, array('confirm', 'remind')))
{
JFactory::getApplication()->setHeader('Referrer-Policy',
'no-referrer', true);
}
return parent::display($cachable, $urlparams);
}
}
PK넋[���00controllers/request.phpnu�[���<?php
/**
* @package Joomla.Site
* @subpackage com_privacy
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
/**
* Request action controller class.
*
* @since 3.9.0
*/
class PrivacyControllerRequest extends JControllerLegacy
{
/**
* Method to confirm the information request.
*
* @return boolean
*
* @since 3.9.0
*/
public function confirm()
{
// Check the request token.
$this->checkToken('post');
/** @var PrivacyModelConfirm $model */
$model = $this->getModel('Confirm',
'PrivacyModel');
$data = $this->input->post->get('jform', array(),
'array');
$return = $model->confirmRequest($data);
// Check for a hard error.
if ($return instanceof Exception)
{
// Get the error message to display.
if (JFactory::getApplication()->get('error_reporting'))
{
$message = $return->getMessage();
}
else
{
$message = JText::_('COM_PRIVACY_ERROR_CONFIRMING_REQUEST');
}
// Go back to the confirm form.
$this->setRedirect(JRoute::_('index.php?option=com_privacy&view=confirm',
false), $message, 'error');
return false;
}
elseif ($return === false)
{
// Confirm failed.
// Go back to the confirm form.
$message =
JText::sprintf('COM_PRIVACY_ERROR_CONFIRMING_REQUEST_FAILED',
$model->getError());
$this->setRedirect(JRoute::_('index.php?option=com_privacy&view=confirm',
false), $message, 'notice');
return false;
}
else
{
// Confirm succeeded.
$this->setRedirect(JRoute::_(JUri::root()),
JText::_('COM_PRIVACY_CONFIRM_REQUEST_SUCCEEDED'),
'info');
return true;
}
}
/**
* Method to submit an information request.
*
* @return boolean
*
* @since 3.9.0
*/
public function submit()
{
// Check the request token.
$this->checkToken('post');
/** @var PrivacyModelRequest $model */
$model = $this->getModel('Request',
'PrivacyModel');
$data = $this->input->post->get('jform', array(),
'array');
$return = $model->createRequest($data);
// Check for a hard error.
if ($return instanceof Exception)
{
// Get the error message to display.
if (JFactory::getApplication()->get('error_reporting'))
{
$message = $return->getMessage();
}
else
{
$message = JText::_('COM_PRIVACY_ERROR_CREATING_REQUEST');
}
// Go back to the confirm form.
$this->setRedirect(JRoute::_('index.php?option=com_privacy&view=request',
false), $message, 'error');
return false;
}
elseif ($return === false)
{
// Confirm failed.
// Go back to the confirm form.
$message =
JText::sprintf('COM_PRIVACY_ERROR_CREATING_REQUEST_FAILED',
$model->getError());
$this->setRedirect(JRoute::_('index.php?option=com_privacy&view=request',
false), $message, 'notice');
return false;
}
else
{
// Confirm succeeded.
$this->setRedirect(JRoute::_(JUri::root()),
JText::_('COM_PRIVACY_CREATE_REQUEST_SUCCEEDED'),
'info');
return true;
}
}
/**
* Method to extend the privacy consent.
*
* @return boolean
*
* @since 3.9.0
*/
public function remind()
{
// Check the request token.
$this->checkToken('post');
/** @var PrivacyModelConfirm $model */
$model = $this->getModel('Remind',
'PrivacyModel');
$data = $this->input->post->get('jform', array(),
'array');
$return = $model->remindRequest($data);
// Check for a hard error.
if ($return instanceof Exception)
{
// Get the error message to display.
if (JFactory::getApplication()->get('error_reporting'))
{
$message = $return->getMessage();
}
else
{
$message = JText::_('COM_PRIVACY_ERROR_REMIND_REQUEST');
}
// Go back to the confirm form.
$this->setRedirect(JRoute::_('index.php?option=com_privacy&view=remind',
false), $message, 'error');
return false;
}
elseif ($return === false)
{
// Confirm failed.
// Go back to the confirm form.
$message =
JText::sprintf('COM_PRIVACY_ERROR_CONFIRMING_REMIND_FAILED',
$model->getError());
$this->setRedirect(JRoute::_('index.php?option=com_privacy&view=remind',
false), $message, 'notice');
return false;
}
else
{
// Confirm succeeded.
$this->setRedirect(JRoute::_(JUri::root()),
JText::_('COM_PRIVACY_CONFIRM_REMIND_SUCCEEDED'),
'info');
return true;
}
}
}
PK넋[�J�3kkmodels/confirm.phpnu�[���<?php
/**
* @package Joomla.Site
* @subpackage com_privacy
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
/**
* Request confirmation model class.
*
* @since 3.9.0
*/
class PrivacyModelConfirm extends JModelAdmin
{
/**
* Confirms the information request.
*
* @param array $data The data expected for the form.
*
* @return mixed Exception | JException | boolean
*
* @since 3.9.0
*/
public function confirmRequest($data)
{
// Get the form.
$form = $this->getForm();
$data['email'] =
JStringPunycode::emailToPunycode($data['email']);
// Check for an error.
if ($form instanceof Exception)
{
return $form;
}
// Filter and validate the form data.
$data = $form->filter($data);
$return = $form->validate($data);
// Check for an error.
if ($return instanceof Exception)
{
return $return;
}
// Check the validation results.
if ($return === false)
{
// Get the validation messages from the form.
foreach ($form->getErrors() as $formError)
{
$this->setError($formError->getMessage());
}
return false;
}
// Search for the information request
/** @var PrivacyTableRequest $table */
$table = $this->getTable();
if (!$table->load(array('email' =>
$data['email'], 'status' => 0)))
{
$this->setError(JText::_('COM_PRIVACY_ERROR_NO_PENDING_REQUESTS'));
return false;
}
// A request can only be confirmed if it is in a pending status and has a
confirmation token
if ($table->status != '0' || !$table->confirm_token)
{
$this->setError(JText::_('COM_PRIVACY_ERROR_NO_PENDING_REQUESTS'));
return false;
}
// A request can only be confirmed if the token is less than 24 hours old
$confirmTokenCreatedAt = new JDate($table->confirm_token_created_at);
$confirmTokenCreatedAt->add(new DateInterval('P1D'));
$now = new JDate('now');
if ($now > $confirmTokenCreatedAt)
{
// Invalidate the request
$table->status = -1;
$table->confirm_token = '';
try
{
$table->store();
}
catch (JDatabaseException $exception)
{
// The error will be logged in the database API, we just need to catch
it here to not let things fatal out
}
$this->setError(JText::_('COM_PRIVACY_ERROR_CONFIRM_TOKEN_EXPIRED'));
return false;
}
// Verify the token
if (!JUserHelper::verifyPassword($data['confirm_token'],
$table->confirm_token))
{
$this->setError(JText::_('COM_PRIVACY_ERROR_NO_PENDING_REQUESTS'));
return false;
}
// Everything is good to go, transition the request to confirmed
$saved = $this->save(
array(
'id' => $table->id,
'status' => 1,
'confirm_token' => '',
)
);
if (!$saved)
{
// Error was set by the save method
return false;
}
// Push a notification to the site's super users, deliberately
ignoring if this process fails so the below message goes out
JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR .
'/components/com_messages/models', 'MessagesModel');
JTable::addIncludePath(JPATH_ADMINISTRATOR .
'/components/com_messages/tables');
/** @var MessagesModelMessage $messageModel */
$messageModel = JModelLegacy::getInstance('Message',
'MessagesModel');
$messageModel->notifySuperUsers(
JText::_('COM_PRIVACY_ADMIN_NOTIFICATION_USER_CONFIRMED_REQUEST_SUBJECT'),
JText::sprintf('COM_PRIVACY_ADMIN_NOTIFICATION_USER_CONFIRMED_REQUEST_MESSAGE',
$table->email)
);
JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR .
'/components/com_actionlogs/models',
'ActionlogsModel');
$message = array(
'action' => 'request-confirmed',
'subjectemail' => $table->email,
'id' => $table->id,
'itemlink' =>
'index.php?option=com_privacy&view=request&id=' .
$table->id,
);
/** @var ActionlogsModelActionlog $model */
$model = JModelLegacy::getInstance('Actionlog',
'ActionlogsModel');
$model->addLog(array($message),
'COM_PRIVACY_ACTION_LOG_CONFIRMED_REQUEST',
'com_privacy.request');
return true;
}
/**
* Method for getting the form from the model.
*
* @param array $data Data for the form.
* @param boolean $loadData True if the form is to load its own data
(default case), false if not.
*
* @return JForm|boolean A JForm object on success, false on failure
*
* @since 3.9.0
*/
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_privacy.confirm',
'confirm', array('control' => 'jform'));
if (empty($form))
{
return false;
}
$input = JFactory::getApplication()->input;
if ($input->getMethod() === 'GET')
{
$form->setValue('confirm_token', '',
$input->get->getAlnum('confirm_token'));
}
return $form;
}
/**
* Method to get a table object, load it if necessary.
*
* @param string $name The table name. Optional.
* @param string $prefix The class prefix. Optional.
* @param array $options Configuration array for model. Optional.
*
* @return JTable A JTable object
*
* @since 3.9.0
* @throws \Exception
*/
public function getTable($name = 'Request', $prefix =
'PrivacyTable', $options = array())
{
return parent::getTable($name, $prefix, $options);
}
/**
* Method to auto-populate the model state.
*
* Note. Calling getState in this method will result in recursion.
*
* @return void
*
* @since 3.9.0
*/
protected function populateState()
{
// Get the application object.
$params =
JFactory::getApplication()->getParams('com_privacy');
// Load the parameters.
$this->setState('params', $params);
}
}
PK넋[A�� models/forms/confirm.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="default"
label="COM_PRIVACY_CONFIRM_REQUEST_FIELDSET_LABEL">
<field
name="email"
type="text"
label="JGLOBAL_EMAIL"
description="COM_PRIVACY_FIELD_CONFIRM_EMAIL_DESC"
validate="email"
required="true"
size="30"
/>
<field
name="confirm_token"
type="text"
label="COM_PRIVACY_FIELD_CONFIRM_CONFIRM_TOKEN_LABEL"
description="COM_PRIVACY_FIELD_CONFIRM_CONFIRM_TOKEN_DESC"
filter="alnum"
required="true"
size="32"
/>
</fieldset>
</form>
PK넋[�P�models/forms/remind.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="default"
label="COM_PRIVACY_REMIND_REQUEST_FIELDSET_LABEL">
<field
name="email"
type="text"
label="JGLOBAL_EMAIL"
description="COM_PRIVACY_FIELD_CONFIRM_EMAIL_DESC"
validate="email"
required="true"
size="30"
/>
<field
name="remind_token"
type="text"
label="COM_PRIVACY_FIELD_REMIND_CONFIRM_TOKEN_LABEL"
description="COM_PRIVACY_FIELD_REMIND_CONFIRM_TOKEN_DESC"
filter="alnum"
required="true"
size="32"
/>
</fieldset>
</form>
PK넋[H��wwmodels/forms/request.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<form>
<fieldset name="default">
<field
name="email"
type="email"
label="JGLOBAL_EMAIL"
description="COM_PRIVACY_FIELD_CONFIRM_EMAIL_DESC"
validate="email"
required="true"
size="30"
/>
<field
name="request_type"
type="list"
label="COM_PRIVACY_FIELD_REQUEST_TYPE_LABEL"
description="COM_PRIVACY_FIELD_REQUEST_TYPE_DESC"
filter="string"
default="export"
validate="options"
>
<option
value="export">COM_PRIVACY_REQUEST_TYPE_EXPORT</option>
<option
value="remove">COM_PRIVACY_REQUEST_TYPE_REMOVE</option>
</field>
</fieldset>
</form>
PK넋[_�:�::models/remind.phpnu�[���<?php
/**
* @package Joomla.Site
* @subpackage com_privacy
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
/**
* Remind confirmation model class.
*
* @since 3.9.0
*/
class PrivacyModelRemind extends JModelAdmin
{
/**
* Confirms the remind request.
*
* @param array $data The data expected for the form.
*
* @return mixed Exception | JException | boolean
*
* @since 3.9.0
*/
public function remindRequest($data)
{
// Get the form.
$form = $this->getForm();
$data['email'] =
JStringPunycode::emailToPunycode($data['email']);
// Check for an error.
if ($form instanceof Exception)
{
return $form;
}
// Filter and validate the form data.
$data = $form->filter($data);
$return = $form->validate($data);
// Check for an error.
if ($return instanceof Exception)
{
return $return;
}
// Check the validation results.
if ($return === false)
{
// Get the validation messages from the form.
foreach ($form->getErrors() as $formError)
{
$this->setError($formError->getMessage());
}
return false;
}
/** @var PrivacyTableConsent $table */
$table = $this->getTable();
$db = $this->getDbo();
$query = $db->getQuery(true)
->select($db->quoteName(array('r.id',
'r.user_id', 'r.token')));
$query->from($db->quoteName('#__privacy_consents',
'r'));
$query->join('LEFT', $db->quoteName('#__users',
'u') . ' ON u.id = r.user_id');
$query->where($db->quoteName('u.email') . ' = '
. $db->quote($data['email']));
$query->where($db->quoteName('r.remind') . ' =
1');
$db->setQuery($query);
try
{
$remind = $db->loadObject();
}
catch (RuntimeException $e)
{
$this->setError(JText::_('COM_PRIVACY_ERROR_NO_PENDING_REMIND'));
return false;
}
if (!$remind)
{
$this->setError(JText::_('COM_PRIVACY_ERROR_NO_PENDING_REMIND'));
return false;
}
// Verify the token
if (!JUserHelper::verifyPassword($data['remind_token'],
$remind->token))
{
$this->setError(JText::_('COM_PRIVACY_ERROR_NO_REMIND_REQUESTS'));
return false;
}
// Everything is good to go, transition the request to extended
$saved = $this->save(
array(
'id' => $remind->id,
'remind' => 0,
'token' => '',
'created' => JFactory::getDate()->toSql(),
)
);
if (!$saved)
{
// Error was set by the save method
return false;
}
return true;
}
/**
* Method for getting the form from the model.
*
* @param array $data Data for the form.
* @param boolean $loadData True if the form is to load its own data
(default case), false if not.
*
* @return JForm|boolean A JForm object on success, false on failure
*
* @since 3.9.0
*/
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_privacy.remind',
'remind', array('control' => 'jform'));
if (empty($form))
{
return false;
}
$input = JFactory::getApplication()->input;
if ($input->getMethod() === 'GET')
{
$form->setValue('remind_token', '',
$input->get->getAlnum('remind_token'));
}
return $form;
}
/**
* Method to get a table object, load it if necessary.
*
* @param string $name The table name. Optional.
* @param string $prefix The class prefix. Optional.
* @param array $options Configuration array for model. Optional.
*
* @return JTable A JTable object
*
* @since 3.9.0
* @throws \Exception
*/
public function getTable($name = 'Consent', $prefix =
'PrivacyTable', $options = array())
{
return parent::getTable($name, $prefix, $options);
}
/**
* Method to auto-populate the model state.
*
* Note. Calling getState in this method will result in recursion.
*
* @return void
*
* @since 3.9.0
*/
protected function populateState()
{
// Get the application object.
$params =
JFactory::getApplication()->getParams('com_privacy');
// Load the parameters.
$this->setState('params', $params);
}
}
PK넋[F��[[models/request.phpnu�[���<?php
/**
* @package Joomla.Site
* @subpackage com_privacy
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
use Joomla\CMS\Router\Route;
/**
* Request model class.
*
* @since 3.9.0
*/
class PrivacyModelRequest extends JModelAdmin
{
/**
* Creates an information request.
*
* @param array $data The data expected for the form.
*
* @return mixed Exception | JException | boolean
*
* @since 3.9.0
*/
public function createRequest($data)
{
// Creating requests requires the site's email sending be enabled
if (!JFactory::getConfig()->get('mailonline', 1))
{
$this->setError(JText::_('COM_PRIVACY_ERROR_CANNOT_CREATE_REQUEST_WHEN_SENDMAIL_DISABLED'));
return false;
}
// Get the form.
$form = $this->getForm();
$data['email'] =
JStringPunycode::emailToPunycode($data['email']);
// Check for an error.
if ($form instanceof Exception)
{
return $form;
}
// Filter and validate the form data.
$data = $form->filter($data);
$return = $form->validate($data);
// Check for an error.
if ($return instanceof Exception)
{
return $return;
}
// Check the validation results.
if ($return === false)
{
// Get the validation messages from the form.
foreach ($form->getErrors() as $formError)
{
$this->setError($formError->getMessage());
}
return false;
}
// Search for an open information request matching the email and type
$db = $this->getDbo();
$query = $db->getQuery(true)
->select('COUNT(id)')
->from('#__privacy_requests')
->where('email = ' .
$db->quote($data['email']))
->where('request_type = ' .
$db->quote($data['request_type']))
->where('status IN (0, 1)');
try
{
$result = (int) $db->setQuery($query)->loadResult();
}
catch (JDatabaseException $exception)
{
// Can't check for existing requests, so don't create a new
one
$this->setError(JText::_('COM_PRIVACY_ERROR_CHECKING_FOR_EXISTING_REQUESTS'));
return false;
}
if ($result > 0)
{
$this->setError(JText::_('COM_PRIVACY_ERROR_PENDING_REQUEST_OPEN'));
return false;
}
// Everything is good to go, create the request
$token =
JApplicationHelper::getHash(JUserHelper::genRandomPassword());
$hashedToken = JUserHelper::hashPassword($token);
$data['confirm_token'] = $hashedToken;
$data['confirm_token_created_at'] =
JFactory::getDate()->toSql();
if (!$this->save($data))
{
// The save function will set the error message, so just return here
return false;
}
// Push a notification to the site's super users, deliberately
ignoring if this process fails so the below message goes out
JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR .
'/components/com_messages/models', 'MessagesModel');
JTable::addIncludePath(JPATH_ADMINISTRATOR .
'/components/com_messages/tables');
/** @var MessagesModelMessage $messageModel */
$messageModel = JModelLegacy::getInstance('Message',
'MessagesModel');
$messageModel->notifySuperUsers(
JText::_('COM_PRIVACY_ADMIN_NOTIFICATION_USER_CREATED_REQUEST_SUBJECT'),
JText::sprintf('COM_PRIVACY_ADMIN_NOTIFICATION_USER_CREATED_REQUEST_MESSAGE',
$data['email'])
);
// The mailer can be set to either throw Exceptions or return boolean
false, account for both
try
{
$app = JFactory::getApplication();
$linkMode = $app->get('force_ssl', 0) == 2 ?
Route::TLS_FORCE : Route::TLS_IGNORE;
$substitutions = array(
'[SITENAME]' => $app->get('sitename'),
'[URL]' => JUri::root(),
'[TOKENURL]' => JRoute::link('site',
'index.php?option=com_privacy&view=confirm&confirm_token='
. $token, false, $linkMode, true),
'[FORMURL]' => JRoute::link('site',
'index.php?option=com_privacy&view=confirm', false,
$linkMode, true),
'[TOKEN]' => $token,
'\\n' => "\n",
);
switch ($data['request_type'])
{
case 'export':
$emailSubject =
JText::_('COM_PRIVACY_EMAIL_REQUEST_SUBJECT_EXPORT_REQUEST');
$emailBody =
JText::_('COM_PRIVACY_EMAIL_REQUEST_BODY_EXPORT_REQUEST');
break;
case 'remove':
$emailSubject =
JText::_('COM_PRIVACY_EMAIL_REQUEST_SUBJECT_REMOVE_REQUEST');
$emailBody =
JText::_('COM_PRIVACY_EMAIL_REQUEST_BODY_REMOVE_REQUEST');
break;
default:
$this->setError(JText::_('COM_PRIVACY_ERROR_UNKNOWN_REQUEST_TYPE'));
return false;
}
foreach ($substitutions as $k => $v)
{
$emailSubject = str_replace($k, $v, $emailSubject);
$emailBody = str_replace($k, $v, $emailBody);
}
$mailer = JFactory::getMailer();
$mailer->setSubject($emailSubject);
$mailer->setBody($emailBody);
$mailer->addRecipient($data['email']);
$mailResult = $mailer->Send();
if ($mailResult instanceof JException)
{
// JError was already called so we just need to return now
return false;
}
elseif ($mailResult === false)
{
$this->setError($mailer->ErrorInfo);
return false;
}
/** @var PrivacyTableRequest $table */
$table = $this->getTable();
if (!$table->load($this->getState($this->getName() .
'.id')))
{
$this->setError($table->getError());
return false;
}
// Log the request's creation
JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR .
'/components/com_actionlogs/models',
'ActionlogsModel');
$message = array(
'action' => 'request-created',
'requesttype' => $table->request_type,
'subjectemail' => $table->email,
'id' => $table->id,
'itemlink' =>
'index.php?option=com_privacy&view=request&id=' .
$table->id,
);
/** @var ActionlogsModelActionlog $model */
$model = JModelLegacy::getInstance('Actionlog',
'ActionlogsModel');
$model->addLog(array($message),
'COM_PRIVACY_ACTION_LOG_CREATED_REQUEST',
'com_privacy.request');
// The email sent and the record is saved, everything is good to go from
here
return true;
}
catch (phpmailerException $exception)
{
$this->setError($exception->getMessage());
return false;
}
}
/**
* Method for getting the form from the model.
*
* @param array $data Data for the form.
* @param boolean $loadData True if the form is to load its own data
(default case), false if not.
*
* @return JForm|boolean A JForm object on success, false on failure
*
* @since 3.9.0
*/
public function getForm($data = array(), $loadData = true)
{
return $this->loadForm('com_privacy.request',
'request', array('control' => 'jform'));
}
/**
* Method to get a table object, load it if necessary.
*
* @param string $name The table name. Optional.
* @param string $prefix The class prefix. Optional.
* @param array $options Configuration array for model. Optional.
*
* @return JTable A JTable object
*
* @since 3.9.0
* @throws \Exception
*/
public function getTable($name = 'Request', $prefix =
'PrivacyTable', $options = array())
{
return parent::getTable($name, $prefix, $options);
}
/**
* Method to auto-populate the model state.
*
* Note. Calling getState in this method will result in recursion.
*
* @return void
*
* @since 3.9.0
*/
protected function populateState()
{
// Get the application object.
$params =
JFactory::getApplication()->getParams('com_privacy');
// Load the parameters.
$this->setState('params', $params);
}
}
PK넋[�郗��privacy.phpnu�[���<?php
/**
* @package Joomla.Site
* @subpackage com_privacy
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
$controller = JControllerLegacy::getInstance('Privacy');
$controller->execute(JFactory::getApplication()->input->get('task'));
$controller->redirect();
PK넋[�Bk���
router.phpnu�[���<?php
/**
* @package Joomla.Site
* @subpackage com_privacy
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
/**
* Routing class from com_privacy
*
* @since 3.9.0
*/
class PrivacyRouter extends JComponentRouterView
{
/**
* Privacy Component router constructor
*
* @param JApplicationCms $app The application object
* @param JMenu $menu The menu object to work with
*
* @since 3.9.0
*/
public function __construct($app = null, $menu = null)
{
$this->registerView(new
JComponentRouterViewconfiguration('confirm'));
$this->registerView(new
JComponentRouterViewconfiguration('request'));
$this->registerView(new
JComponentRouterViewconfiguration('remind'));
parent::__construct($app, $menu);
$this->attachRule(new JComponentRouterRulesMenu($this));
$this->attachRule(new JComponentRouterRulesStandard($this));
$this->attachRule(new JComponentRouterRulesNomenu($this));
}
}
/**
* Privacy router functions
*
* These functions are proxies for the new router interface
* for old SEF extensions.
*
* @param array &$query REQUEST query
*
* @return array Segments of the SEF url
*
* @since 3.9.0
* @deprecated 4.0 Use Class based routers instead
*/
function privacyBuildRoute(&$query)
{
$app = JFactory::getApplication();
$router = new PrivacyRouter($app, $app->getMenu());
return $router->build($query);
}
/**
* Convert SEF URL segments into query variables
*
* @param array $segments Segments in the current URL
*
* @return array Query variables
*
* @since 3.9.0
* @deprecated 4.0 Use Class based routers instead
*/
function privacyParseRoute($segments)
{
$app = JFactory::getApplication();
$router = new PrivacyRouter($app, $app->getMenu());
return $router->parse($segments);
}
PK넋[1=%CCCviews/confirm/tmpl/default.phpnu�[���<?php
/**
* @package Joomla.Site
* @subpackage com_privacy
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
/** @var PrivacyViewConfirm $this */
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
?>
<div class="request-confirm<?php echo $this->pageclass_sfx;
?>">
<?php if ($this->params->get('show_page_heading')) :
?>
<div class="page-header">
<h1>
<?php echo
$this->escape($this->params->get('page_heading')); ?>
</h1>
</div>
<?php endif; ?>
<form action="<?php echo
JRoute::_('index.php?option=com_privacy&task=request.confirm');
?>" method="post" class="form-validate
form-horizontal well">
<?php foreach ($this->form->getFieldsets() as $fieldset) : ?>
<fieldset>
<?php if (!empty($fieldset->label)) : ?>
<legend><?php echo JText::_($fieldset->label);
?></legend>
<?php endif; ?>
<?php echo $this->form->renderFieldset($fieldset->name);
?>
</fieldset>
<?php endforeach; ?>
<div class="control-group">
<div class="controls">
<button type="submit" class="btn btn-primary
validate">
<?php echo JText::_('JSUBMIT'); ?>
</button>
</div>
</div>
<?php echo JHtml::_('form.token'); ?>
</form>
</div>
PK넋[���EEviews/confirm/tmpl/default.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<metadata>
<layout title="COM_PRIVACY_CONFIRM_VIEW_DEFAULT_TITLE"
option="COM_PRIVACY_CONFIRM_VIEW_DEFAULT_OPTION">
<help
key="JHELP_MENUS_MENU_ITEM_PRIVACY_CONFIRM_REQUEST"
/>
<message>
<![CDATA[COM_PRIVACY_CONFIRM_VIEW_DEFAULT_DESC]]>
</message>
</layout>
</metadata>
PK넋[���views/confirm/view.html.phpnu�[���<?php
/**
* @package Joomla.Site
* @subpackage com_privacy
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
use Joomla\Registry\Registry;
/**
* Request confirmation view class
*
* @since 3.9.0
*/
class PrivacyViewConfirm extends JViewLegacy
{
/**
* The form object
*
* @var JForm
* @since 3.9.0
*/
protected $form;
/**
* The CSS class suffix to append to the view container
*
* @var string
* @since 3.9.0
*/
protected $pageclass_sfx;
/**
* The view parameters
*
* @var Registry
* @since 3.9.0
*/
protected $params;
/**
* The state information
*
* @var JObject
* @since 3.9.0
*/
protected $state;
/**
* Execute and display a template script.
*
* @param string $tpl The name of the template file to parse;
automatically searches through the template paths.
*
* @return mixed A string if successful, otherwise an Error object.
*
* @see JViewLegacy::loadTemplate()
* @since 3.9.0
* @throws Exception
*/
public function display($tpl = null)
{
// Initialise variables.
$this->form = $this->get('Form');
$this->state = $this->get('State');
$this->params = $this->state->params;
// Check for errors.
if (count($errors = $this->get('Errors')))
{
throw new Exception(implode("\n", $errors), 500);
}
// Escape strings for HTML output
$this->pageclass_sfx =
htmlspecialchars($this->params->get('pageclass_sfx'),
ENT_COMPAT, 'UTF-8');
$this->prepareDocument();
return parent::display($tpl);
}
/**
* Prepares the document.
*
* @return void
*
* @since 3.9.0
*/
protected function prepareDocument()
{
$app = JFactory::getApplication();
$menus = $app->getMenu();
$title = null;
// Because the application sets a default page title,
// we need to get it from the menu item itself
$menu = $menus->getActive();
if ($menu)
{
$this->params->def('page_heading',
$this->params->get('page_title', $menu->title));
}
else
{
$this->params->def('page_heading',
JText::_('COM_PRIVACY_VIEW_CONFIRM_PAGE_TITLE'));
}
$title = $this->params->get('page_title', '');
if (empty($title))
{
$title = $app->get('sitename');
}
elseif ($app->get('sitename_pagetitles', 0) == 1)
{
$title = JText::sprintf('JPAGETITLE',
$app->get('sitename'), $title);
}
elseif ($app->get('sitename_pagetitles', 0) == 2)
{
$title = JText::sprintf('JPAGETITLE', $title,
$app->get('sitename'));
}
$this->document->setTitle($title);
if ($this->params->get('menu-meta_description'))
{
$this->document->setDescription($this->params->get('menu-meta_description'));
}
if ($this->params->get('menu-meta_keywords'))
{
$this->document->setMetadata('keywords',
$this->params->get('menu-meta_keywords'));
}
if ($this->params->get('robots'))
{
$this->document->setMetadata('robots',
$this->params->get('robots'));
}
}
}
PK넋[Q,�2AAviews/remind/tmpl/default.phpnu�[���<?php
/**
* @package Joomla.Site
* @subpackage com_privacy
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
/** @var PrivacyViewConfirm $this */
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
?>
<div class="remind-confirm<?php echo $this->pageclass_sfx;
?>">
<?php if ($this->params->get('show_page_heading')) :
?>
<div class="page-header">
<h1>
<?php echo
$this->escape($this->params->get('page_heading')); ?>
</h1>
</div>
<?php endif; ?>
<form action="<?php echo
JRoute::_('index.php?option=com_privacy&task=request.remind');
?>" method="post" class="form-validate
form-horizontal well">
<?php foreach ($this->form->getFieldsets() as $fieldset) : ?>
<fieldset>
<?php if (!empty($fieldset->label)) : ?>
<legend><?php echo JText::_($fieldset->label);
?></legend>
<?php endif; ?>
<?php echo $this->form->renderFieldset($fieldset->name);
?>
</fieldset>
<?php endforeach; ?>
<div class="control-group">
<div class="controls">
<button type="submit" class="btn btn-primary
validate">
<?php echo JText::_('JSUBMIT'); ?>
</button>
</div>
</div>
<?php echo JHtml::_('form.token'); ?>
</form>
</div>
PK넋[`A��AAviews/remind/tmpl/default.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<metadata>
<layout title="COM_PRIVACY_REMIND_VIEW_DEFAULT_TITLE"
option="COM_PRIVACY_REMIND_VIEW_DEFAULT_OPTION">
<help
key="JHELP_MENUS_MENU_ITEM_PRIVACY_REMIND_REQUEST"
/>
<message>
<![CDATA[COM_PRIVACY_REMIND_VIEW_DEFAULT_DESC]]>
</message>
</layout>
</metadata>
PK넋[�Vƃ��views/remind/view.html.phpnu�[���<?php
/**
* @package Joomla.Site
* @subpackage com_privacy
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
use Joomla\Registry\Registry;
/**
* Remind confirmation view class
*
* @since 3.9.0
*/
class PrivacyViewRemind extends JViewLegacy
{
/**
* The form object
*
* @var JForm
* @since 3.9.0
*/
protected $form;
/**
* The CSS class suffix to append to the view container
*
* @var string
* @since 3.9.0
*/
protected $pageclass_sfx;
/**
* The view parameters
*
* @var Registry
* @since 3.9.0
*/
protected $params;
/**
* The state information
*
* @var JObject
* @since 3.9.0
*/
protected $state;
/**
* Execute and display a template script.
*
* @param string $tpl The name of the template file to parse;
automatically searches through the template paths.
*
* @return mixed A string if successful, otherwise an Error object.
*
* @see JViewLegacy::loadTemplate()
* @since 3.9.0
* @throws Exception
*/
public function display($tpl = null)
{
// Initialise variables.
$this->form = $this->get('Form');
$this->state = $this->get('State');
$this->params = $this->state->params;
// Check for errors.
if (count($errors = $this->get('Errors')))
{
throw new Exception(implode("\n", $errors), 500);
}
// Escape strings for HTML output
$this->pageclass_sfx =
htmlspecialchars($this->params->get('pageclass_sfx'),
ENT_COMPAT, 'UTF-8');
$this->prepareDocument();
return parent::display($tpl);
}
/**
* Prepares the document.
*
* @return void
*
* @since 3.9.0
*/
protected function prepareDocument()
{
$app = JFactory::getApplication();
$menus = $app->getMenu();
$title = null;
// Because the application sets a default page title,
// we need to get it from the menu item itself
$menu = $menus->getActive();
if ($menu)
{
$this->params->def('page_heading',
$this->params->get('page_title', $menu->title));
}
else
{
$this->params->def('page_heading',
JText::_('COM_PRIVACY_VIEW_REMIND_PAGE_TITLE'));
}
$title = $this->params->get('page_title', '');
if (empty($title))
{
$title = $app->get('sitename');
}
elseif ($app->get('sitename_pagetitles', 0) == 1)
{
$title = JText::sprintf('JPAGETITLE',
$app->get('sitename'), $title);
}
elseif ($app->get('sitename_pagetitles', 0) == 2)
{
$title = JText::sprintf('JPAGETITLE', $title,
$app->get('sitename'));
}
$this->document->setTitle($title);
if ($this->params->get('menu-meta_description'))
{
$this->document->setDescription($this->params->get('menu-meta_description'));
}
if ($this->params->get('menu-meta_keywords'))
{
$this->document->setMetadata('keywords',
$this->params->get('menu-meta_keywords'));
}
if ($this->params->get('robots'))
{
$this->document->setMetadata('robots',
$this->params->get('robots'));
}
}
}
PK넋[�ˌ�YYviews/request/tmpl/default.phpnu�[���<?php
/**
* @package Joomla.Site
* @subpackage com_privacy
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
/** @var PrivacyViewRequest $this */
JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidator');
JHtml::_('formbehavior.chosen', 'select');
?>
<div class="request-form<?php echo $this->pageclass_sfx;
?>">
<?php if ($this->params->get('show_page_heading')) :
?>
<div class="page-header">
<h1>
<?php echo
$this->escape($this->params->get('page_heading')); ?>
</h1>
</div>
<?php endif; ?>
<?php if ($this->sendMailEnabled) : ?>
<form action="<?php echo
JRoute::_('index.php?option=com_privacy&task=request.submit');
?>" method="post" class="form-validate
form-horizontal well">
<?php foreach ($this->form->getFieldsets() as $fieldset) :
?>
<fieldset>
<?php if (!empty($fieldset->label)) : ?>
<legend><?php echo JText::_($fieldset->label);
?></legend>
<?php endif; ?>
<?php echo $this->form->renderFieldset($fieldset->name);
?>
</fieldset>
<?php endforeach; ?>
<div class="control-group">
<div class="controls">
<button type="submit" class="btn btn-primary
validate">
<?php echo JText::_('JSUBMIT'); ?>
</button>
</div>
</div>
<?php echo JHtml::_('form.token'); ?>
</form>
<?php else : ?>
<div class="alert alert-warning">
<p><?php echo
JText::_('COM_PRIVACY_WARNING_CANNOT_CREATE_REQUEST_WHEN_SENDMAIL_DISABLED');
?></p>
</div>
<?php endif; ?>
</div>
PK넋[
���DDviews/request/tmpl/default.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<metadata>
<layout title="COM_PRIVACY_REQUEST_VIEW_DEFAULT_TITLE"
option="COM_PRIVACY_REQUEST_VIEW_DEFAULT_OPTION">
<help
key="JHELP_MENUS_MENU_ITEM_PRIVACY_CREATE_REQUEST"
/>
<message>
<![CDATA[COM_PRIVACY_REQUEST_VIEW_DEFAULT_DESC]]>
</message>
</layout>
</metadata>
PK넋[��h���views/request/view.html.phpnu�[���<?php
/**
* @package Joomla.Site
* @subpackage com_privacy
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
use Joomla\Registry\Registry;
/**
* Request view class
*
* @since 3.9.0
*/
class PrivacyViewRequest extends JViewLegacy
{
/**
* The form object
*
* @var JForm
* @since 3.9.0
*/
protected $form;
/**
* The CSS class suffix to append to the view container
*
* @var string
* @since 3.9.0
*/
protected $pageclass_sfx;
/**
* The view parameters
*
* @var Registry
* @since 3.9.0
*/
protected $params;
/**
* Flag indicating the site supports sending email
*
* @var boolean
* @since 3.9.0
*/
protected $sendMailEnabled;
/**
* The state information
*
* @var JObject
* @since 3.9.0
*/
protected $state;
/**
* Execute and display a template script.
*
* @param string $tpl The name of the template file to parse;
automatically searches through the template paths.
*
* @return mixed A string if successful, otherwise an Error object.
*
* @see JViewLegacy::loadTemplate()
* @since 3.9.0
* @throws Exception
*/
public function display($tpl = null)
{
// Initialise variables.
$this->form = $this->get('Form');
$this->state = $this->get('State');
$this->params = $this->state->params;
$this->sendMailEnabled = (bool)
JFactory::getConfig()->get('mailonline', 1);
// Check for errors.
if (count($errors = $this->get('Errors')))
{
throw new Exception(implode("\n", $errors), 500);
}
// Escape strings for HTML output
$this->pageclass_sfx =
htmlspecialchars($this->params->get('pageclass_sfx'),
ENT_COMPAT, 'UTF-8');
$this->prepareDocument();
return parent::display($tpl);
}
/**
* Prepares the document.
*
* @return void
*
* @since 3.9.0
*/
protected function prepareDocument()
{
$app = JFactory::getApplication();
$menus = $app->getMenu();
$title = null;
// Because the application sets a default page title,
// we need to get it from the menu item itself
$menu = $menus->getActive();
if ($menu)
{
$this->params->def('page_heading',
$this->params->get('page_title', $menu->title));
}
else
{
$this->params->def('page_heading',
JText::_('COM_PRIVACY_VIEW_REQUEST_PAGE_TITLE'));
}
$title = $this->params->get('page_title', '');
if (empty($title))
{
$title = $app->get('sitename');
}
elseif ($app->get('sitename_pagetitles', 0) == 1)
{
$title = JText::sprintf('JPAGETITLE',
$app->get('sitename'), $title);
}
elseif ($app->get('sitename_pagetitles', 0) == 2)
{
$title = JText::sprintf('JPAGETITLE', $title,
$app->get('sitename'));
}
$this->document->setTitle($title);
if ($this->params->get('menu-meta_description'))
{
$this->document->setDescription($this->params->get('menu-meta_description'));
}
if ($this->params->get('menu-meta_keywords'))
{
$this->document->setMetadata('keywords',
$this->params->get('menu-meta_keywords'));
}
if ($this->params->get('robots'))
{
$this->document->setMetadata('robots',
$this->params->get('robots'));
}
}
}
PK넋[bDkI��controller.phpnu�[���PK넋[���00�controllers/request.phpnu�[���PK넋[�J�3kk=models/confirm.phpnu�[���PK넋[A��
�-models/forms/confirm.xmlnu�[���PK넋[�P�R0models/forms/remind.xmlnu�[���PK넋[H��ww�2models/forms/request.xmlnu�[���PK넋[_�:�::t5models/remind.phpnu�[���PK넋[F��[[�Emodels/request.phpnu�[���PK넋[�郗���cprivacy.phpnu�[���PK넋[�Bk���
lerouter.phpnu�[���PK넋[1=%CCC;mviews/confirm/tmpl/default.phpnu�[���PK넋[���EE�rviews/confirm/tmpl/default.xmlnu�[���PK넋[���_tviews/confirm/view.html.phpnu�[���PK넋[Q,�2AA��views/remind/tmpl/default.phpnu�[���PK넋[`A��AA6�views/remind/tmpl/default.xmlnu�[���PK넋[�Vƃ��ćviews/remind/view.html.phpnu�[���PK넋[�ˌ�YY �views/request/tmpl/default.phpnu�[���PK넋[
���DD��views/request/tmpl/default.xmlnu�[���PK넋[��h���B�views/request/view.html.phpnu�[���PKxn�