Файловый менеджер - Редактировать - /var/www/html/administrator/components/com_kunena/src/Controller/UserController.php
Ðазад
<?php /** * Kunena Component * * @package Kunena.Administrator * @subpackage Controllers * * @copyright Copyright (C) 2008 - 2026 Kunena Team. All rights reserved. * @license https://www.gnu.org/copyleft/gpl.html GNU/GPL * @link https://www.kunena.org **/ namespace Kunena\Forum\Administrator\Controller; \defined('_JEXEC') or die(); use Exception; use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Controller\BaseController; use Joomla\CMS\MVC\Controller\FormController; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\Session\Session; use Joomla\Utilities\ArrayHelper; use Kunena\Forum\Libraries\Access\KunenaAccess; use Kunena\Forum\Libraries\Factory\KunenaFactory; use Kunena\Forum\Libraries\Forum\Category\KunenaCategoryHelper; use Kunena\Forum\Libraries\Forum\Message\KunenaMessageHelper; use Kunena\Forum\Libraries\Route\KunenaRoute; use Kunena\Forum\Libraries\User\KunenaUser; use Kunena\Forum\Libraries\User\KunenaUserHelper; /** * Kunena User Controller * * @since Kunena 3.0 */ class UserController extends FormController { /** * @var null|string * @since Kunena 6.0 */ protected $baseurl = null; /** * Constructor. * * @param MVCFactoryInterface|null $factory The factory. * @param null $app The CMSApplication for the dispatcher * @param null $input Input * * @param array $config An optional associative array of configuration settings. * * @throws Exception * @since Kunena 2.0 * * @see BaseController */ public function __construct($config = [], MVCFactoryInterface $factory = null, $app = null, $input = null) { parent::__construct($config, $factory, $app, $input); $this->baseurl = 'administrator/index.php?option=com_kunena&view=users'; } /** * Method to save the form data. * * @param null $key key * @param null $urlVar url var * * @return void * * @throws Exception * @since Kunena 2.0 */ public function save($key = null, $urlVar = null): void { if (!Session::checkToken()) { $this->app->enqueueMessage(Text::_('COM_KUNENA_ERROR_TOKEN'), 'error'); $this->setRedirect(KunenaRoute::_($this->baseurl, false)); return; } $this->saveInternal('save'); $this->setRedirect(KunenaRoute::_($this->baseurl, false)); } /** * Internal method to save an user * * @param string $type type * * @return void * * @throws Exception * @since Kunena 6.0 */ protected function saveInternal(string $type) { $newView = $this->app->getInput()->getString('newView'); $newRank = $this->app->getInput()->getString('newRank'); $signature = $this->app->getInput()->getString('signature'); $deleteSig = $this->app->getInput()->getInt('deleteSig'); $moderator = $this->app->getInput()->getInt('moderator'); $uid = $this->app->getInput()->getInt('uid'); $deleteAvatar = $this->app->getInput()->getInt('deleteAvatar'); $newOrder = $this->app->getInput()->getInt('newOrder'); $modCatids = $moderator ? $this->app->getInput()->get('catid', [], 'array') : []; $modCatids = ArrayHelper::toInteger($modCatids); KunenaFactory::loadLanguage('com_kunena.controllers', 'admin'); if ($uid) { $user = KunenaFactory::getUser($uid); // Prepare variables if ($deleteSig === 1) { $user->signature = ''; } else { $user->signature = $signature; } $user->personalText = $this->app->getInput()->getString('personalText'); $birthdate = $this->app->getInput()->getString('birthdate'); if ($birthdate) { $date = Factory::getDate($birthdate); $birthdate = $date->format('Y-m-d'); } else { $birthdate = '1000-01-01'; } $user->birthdate = $birthdate; $user->location = trim($this->app->getInput()->getString('location')); $user->gender = $this->app->getInput()->getInt('gender', ''); $user->websitename = $this->app->getInput()->getString('websitename'); $user->websiteurl = $this->app->getInput()->getString('websiteurl'); $user->hideEmail = $this->app->getInput()->getInt('hidemail'); $user->showOnline = $this->app->getInput()->getInt('showonline'); $user->canSubscribe = $this->app->getInput()->getInt('cansubscribe'); $user->userListtime = $this->app->getInput()->getInt('userlisttime'); $user->view = $newView; $user->ordering = $newOrder; $user->rank = $newRank; if ($deleteAvatar === 1) { $user->avatar = ''; } if (!$user->save()) { $this->app->enqueueMessage(Text::_('COM_KUNENA_USER_PROFILE_SAVED_FAILED'), 'error'); } else { $this->app->enqueueMessage(Text::_('COM_KUNENA_USER_PROFILE_SAVED_SUCCESSFULLY'), 'success'); } if ($type === 'save') { $this->setModerate($user, $modCatids); } else { // Update moderator rights $categories = KunenaCategoryHelper::getCategories(false, false, 'admin'); foreach ($categories as $category) { $category->setModerator($user, \in_array($category->id, $modCatids, true)); } // Global moderator is a special case if (KunenaUserHelper::getMyself()->isAdmin()) { KunenaAccess::getInstance()->setModerator(0, $user, \in_array(0, $modCatids, true)); } $this->setRedirect(KunenaRoute::_("administrator/index.php?option=com_kunena&view=user&layout=edit&userid={$uid}", false)); } } } /** * Set moderator rights on the user given * * @param KunenaUser $user KunenaUser object * @param array $modCatids modCatids * * @return boolean * * @throws Exception * @since Kunena 5.1 */ protected function setModerate(KunenaUser $user, array $modCatids): bool { // Update moderator rights $categories = KunenaCategoryHelper::getCategories(false, false, 'admin'); foreach ($categories as $category) { $category->setModerator($user, \in_array($category->id, $modCatids)); } // Global moderator is a special case if (KunenaUserHelper::getMyself()->isAdmin()) { KunenaAccess::getInstance()->setModerator(0, $user, \in_array(0, $modCatids)); } return true; } /** * Apply * * @return void * * @throws Exception * @since Kunena 2.0 */ public function applychanges(): void { if (!Session::checkToken('post')) { $this->app->enqueueMessage(Text::_('COM_KUNENA_ERROR_TOKEN'), 'error'); return; } $this->saveInternal('apply'); } /** * Move Messages * * @return void * * @throws Exception * @throws null * @since Kunena 2.0 */ public function moveMessages(): void { if (!Session::checkToken()) { $this->app->enqueueMessage(Text::_('COM_KUNENA_ERROR_TOKEN'), 'error'); $this->setRedirect(KunenaRoute::_($this->baseurl, false)); return; } $catid = $this->app->getInput()->getInt('catid'); $uids = (array) $this->app->getUserState('kunena.usermove.userids'); $error = null; if ($uids) { foreach ($uids as $id) { list($total, $messages) = KunenaMessageHelper::getLatestMessages(false, 0, 0, ['starttime' => '-1', 'user' => $id]); foreach ($messages as $message) { $topic = $message->getTopic(); try { $message->isAuthorised('move'); } catch (Exception $e) { $this->app->enqueueMessage($e->getMessage(), 'error'); } $target = KunenaCategoryHelper::get($catid); try { $topic->move($target, false, false, '', false); } catch (Exception $e) { $this->app->enqueueMessage($e->getMessage(), 'error'); } } } } else { $this->app->enqueueMessage(Text::_('COM_KUNENA_PROFILE_NO_USER'), 'error'); $this->setRedirect(KunenaRoute::_($this->baseurl, false)); return; } $this->app->enqueueMessage(Text::_('COM_KUNENA_A_USERMES_MOVED_DONE'), 'success'); $this->setRedirect(KunenaRoute::_($this->baseurl, false)); } }
| ver. 1.1 | |
.
| PHP 8.4.18 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0 |
proxy
|
phpinfo
|
ÐаÑтройка