shell bypass 403
<?php
/**
* @package RSForm! Pro
* @copyright (C) 2007-2019 www.rsjoomla.com
* @license GPL, http://www.gnu.org/copyleft/gpl.html
*/
defined('_JEXEC') or die;
use Joomla\CMS\MVC\View\HtmlView;
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Toolbar\ToolbarHelper;
use Joomla\CMS\HTML\HTMLHelper;
class RsformViewSubmissions extends HtmlView
{
protected $previewArray = array();
protected $staticHeaders = array();
protected $headers = array();
public function display($tpl = null)
{
if (!Factory::getUser()->authorise('submissions.manage', 'com_rsform'))
{
throw new Exception(Text::_('COM_RSFORM_NOT_AUTHORISED_TO_USE_THIS_SECTION'));
}
if (version_compare(JVERSION, '4.0', '>='))
{
Factory::getApplication()->input->set('hidemainmenu', true);
}
$this->tooltipClass = RSFormProHelper::getTooltipClass();
$this->formId = $this->get('formId');
$layout = strtolower($this->getLayout());
if ($layout == 'export')
{
$this->headers = $this->get('headers');
$this->staticHeaders = $this->get('staticHeaders');
for ($i = 0; $i < count($this->staticHeaders) + count($this->headers); $i++)
{
$this->previewArray[] = 'Value '.$i;
}
$this->formTitle = $this->get('formTitle');
$this->multipleSeparator = $this->get('FormMultipleSeparator');
$this->exportSelected = $this->get('exportSelected');
$this->exportSelectedCount = count($this->exportSelected);
$this->exportFilteredCount = $this->get('Total');
$this->exportAll = $this->exportSelectedCount == 0;
$this->exportType = $this->get('exportType');
$this->exportFile = $this->get('exportFile');
$this->tabs = new RSFormProAdapterTabs('exportTabs');
ToolbarHelper::title('RSForm! Pro <small>['.Text::sprintf('RSFP_EXPORTING', $this->exportType, $this->formTitle).']</small>','rsform');
ToolbarHelper::custom('submissions.exporttask', 'archive', 'archive', Text::_('RSFP_EXPORT'), false);
ToolbarHelper::spacer();
ToolbarHelper::cancel('submissions.manage');
}
elseif ($layout == 'import')
{
$this->headers = $this->get('headers');
$this->staticHeaders = $this->get('staticHeaders');
$this->formTitle = $this->get('formTitle');
$this->previewData = $this->get('previewImportData');
$this->countHeaders = $this->previewData ? count(reset($this->previewData)) : 0;
$options = array(
HTMLHelper::_('select.option', '', Text::_('COM_RSFORM_IMPORT_IGNORE'))
);
foreach ($this->staticHeaders as $header)
{
$options[] = HTMLHelper::_('select.option', $header->value, $header->label);
}
foreach ($this->headers as $header)
{
$options[] = HTMLHelper::_('select.option', $header->value, $header->label);
}
$this->options = $options;
$this->selected = $this->get('previewSelectedData');
ToolbarHelper::title('RSForm! Pro <small>['.Text::sprintf('COM_RSFORM_IMPORTING', $this->formTitle).']</small>','rsform');
ToolbarHelper::custom('submissions.importtask', 'archive', 'archive', Text::_('COM_RSFORM_IMPORT_SUBMISSIONS'), false);
ToolbarHelper::spacer();
ToolbarHelper::cancel('submissions.manage');
}
elseif ($layout == 'exportprocess')
{
$this->limit = RSFormProHelper::getConfig('export.limit');
$this->total = $this->get('exportTotal');
$this->file = Factory::getApplication()->input->getCmd('ExportFile');
$this->exportType = Factory::getApplication()->input->getCmd('ExportType');
$this->formId = $this->get('FormId');
ToolbarHelper::title('RSForm! Pro <small>['.Text::sprintf('RSFP_EXPORTING', $this->exportType, $this->get('formTitle')).']</small>','rsform');
ToolbarHelper::custom('submissions.cancelform', 'previous', 'previous', Text::_('RSFP_BACK_TO_FORM'), false);
ToolbarHelper::custom('submissions.back', 'database', 'database', Text::_('RSFP_SUBMISSIONS'), false);
}
elseif ($layout == 'importprocess')
{
$this->limit = 500;
$this->total = $this->get('importTotal');
$this->formId = $this->get('FormId');
ToolbarHelper::title('RSForm! Pro <small>['.Text::sprintf('COM_RSFORM_IMPORTING', $this->get('formTitle')).']</small>','rsform');
ToolbarHelper::custom('submissions.cancelform', 'previous', 'previous', Text::_('RSFP_BACK_TO_FORM'), false);
ToolbarHelper::custom('submissions.back', 'database', 'database', Text::_('RSFP_SUBMISSIONS'), false);
}
elseif ($layout == 'edit')
{
$this->formId = $this->get('submissionFormId');
$this->submissionId = $this->get('submissionId');
$this->submission = $this->get('submission');
$this->staticHeaders = $this->get('staticHeaders');
$this->staticFields = $this->get('staticFields');
$this->fields = $this->get('editFields');
ToolbarHelper::title('RSForm! Pro','rsform');
ToolbarHelper::custom('submissions.exportpdf', 'archive', 'archive', Text::_('RSFP_EXPORT_PDF'), false);
ToolbarHelper::spacer();
ToolbarHelper::apply('submissions.apply');
ToolbarHelper::save('submissions.save');
ToolbarHelper::spacer();
ToolbarHelper::cancel('submissions.manage');
}
else
{
$this->user = Factory::getUser();
$this->form = $this->get('FormProperties');
$this->headers = $this->get('headers');
$this->unescapedFields = $this->get('unescapedFields');
$this->staticHeaders = $this->get('staticHeaders');
$this->submissions = $this->get('submissions');
$this->pagination = $this->get('pagination');
$this->sortColumn = $this->get('sortColumn');
$this->sortOrder = $this->get('sortOrder');
$this->specialFields = $this->get('specialFields');
$this->filter = $this->get('filter');
$this->state = $this->get('State');
$this->filterForm = $this->get('FilterForm');
$this->activeFilters = $this->get('ActiveFilters');
if ($this->user->authorise('forms.manage', 'com_rsform'))
{
ToolbarHelper::custom('submissions.cancelform', 'previous', 'previous', Text::_('RSFP_BACK_TO_FORM'), false);
ToolbarHelper::spacer();
}
// Choose columns
ToolbarHelper::modal('columnsModal', 'icon icon-checkmark', 'RSFP_CUSTOMIZE_COLUMNS');
ToolbarHelper::spacer();
ToolbarHelper::custom('submissions.resend', 'mail', 'mail', Text::_('RSFP_RESEND_EMAILS'), true);
if ($this->form->ConfirmSubmission)
{
ToolbarHelper::custom('submissions.confirm', 'checkmark-2', 'checkmark-2', Text::_('COM_RSFORM_CONFIRM_SUBMISSIONS'), true);
}
ToolbarHelper::modal('exportModal', 'icon-archive icon white', 'RSFP_EXPORT');
ToolbarHelper::modal('importModal', 'icon-upload icon white', 'COM_RSFORM_IMPORT_SUBMISSIONS');
ToolbarHelper::spacer();
ToolbarHelper::editList('submissions.edit', Text::_('JTOOLBAR_EDIT'));
ToolbarHelper::deleteList(Text::_('RSFP_ARE_YOU_SURE_DELETE'), 'submissions.delete', Text::_('JTOOLBAR_DELETE'));
ToolbarHelper::spacer();
ToolbarHelper::cancel('submissions.cancel', Text::_('JTOOLBAR_CLOSE'));
ToolbarHelper::title('RSForm! Pro <small>['.$this->get('formTitle').']</small>','rsform');
}
parent::display($tpl);
}
}