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\Factory;
use Joomla\CMS\Language\Text;
class RsformControllerRichtext extends RsformController
{
public function __construct($config = array())
{
parent::__construct($config);
$this->registerTask('apply', 'save');
}
public function show()
{
$app = Factory::getApplication();
$app->input->set('view', 'richtext');
$app->input->set('layout', 'default');
parent::display();
}
public function save()
{
$db = Factory::getDbo();
$app = Factory::getApplication();
$formsModel = $this->getModel('forms');
$model = $this->getModel('richtext');
$lang = $formsModel->getLang();
$formId = $model->getFormId();
$opener = $model->getEditorName();
$value = $app->input->post->get($opener, '', 'raw');
$noEditor = $model->getNoEditor();
if ($formsModel->_form->Lang != $lang || (RSFormProHelper::getConfig('global.disable_multilanguage') && RSFormProHelper::getConfig('global.default_language') != 'en-GB'))
{
$model->saveTranslation($value);
}
else
{
$query = $db->getQuery(true)
->update($db->qn('#__rsform_forms'))
->set($db->qn($opener) . ' = ' . $db->q($value))
->where($db->qn('FormId') . ' = ' . $db->q($formId));
$db->setQuery($query);
$db->execute();
}
/**
* Add feedback in the modal window
*/
$app->enqueueMessage(Text::_('RSFP_CHANGES_SAVED'));
if ($this->getTask() == 'apply')
{
return $this->setRedirect('index.php?option=com_rsform&task=richtext.show&opener='.$opener.'&formId='.$formId.'&tmpl=component' . ($noEditor ? '&noEditor=1' : ''));
}
Factory::getDocument()->addScriptDeclaration('window.close();');
}
public function preview()
{
echo $this->getModel('richtext')->getEditorText();
}
}