XenForo 2.x.x Одобрение/отклонение пользователей без права модератора

Статус
В этой теме нельзя размещать новые ответы.

S_Sirius

Проверенные
Сообщения
312
Решения
6
Реакции
92
Баллы
330
Приветствую. Ищу дополнение, который позволяет определённым группам пользователей дать доступ к одобрение/отклонение зарегистрированных пользователей, без права модератора. Попробовал через настройки группы, но не работает.
1616844761457.png
 
Решение
S_Sirius, это никуда не добавляется, это код из движка. Но если уж так хочется что-то добавить...

Создаем файлы:
src/addons/Custom/XF/Entity/User.php:
PHP:
<?php
  
namespace Custom\XF\Entity;

class User extends XFCP_User
{
    public function canApproveRejectUser()
    {
        return $this->hasPermission('general', 'approveRejectUser');
    }
}
src/addons/Custom/XF/Pub/Controller/ApprovalQueue.php:
PHP:
<?php

namespace Custom\XF\Pub\Controller;

use XF;
use XF\Mvc\ParameterBag;

class ApprovalQueue extends XFCP_ApprovalQueue
{
   protected function preDispatchController($action, ParameterBag $params)
   {
      if (!XF::visitor()->is_moderator)
      {
         try
         {...
Приветствую. Ищу дополнение, который позволяет определённым группам пользователей дать доступ к одобрение/отклонение зарегистрированных пользователей, без права модератора. Попробовал через настройки группы, но не работает.
Посмотреть вложение 127240
Анализ прав на нужную группу покажите
 
root, а в чем смысл? Все равно ничего не выйдет, если пользователь не модератор.
PHP:
    public function canApproveRejectUser()
    {
        return $this->is_moderator && $this->hasPermission('general', 'approveRejectUser');
    }
 
S_Sirius, это никуда не добавляется, это код из движка. Но если уж так хочется что-то добавить...

Создаем файлы:
src/addons/Custom/XF/Entity/User.php:
PHP:
<?php
  
namespace Custom\XF\Entity;

class User extends XFCP_User
{
    public function canApproveRejectUser()
    {
        return $this->hasPermission('general', 'approveRejectUser');
    }
}
src/addons/Custom/XF/Pub/Controller/ApprovalQueue.php:
PHP:
<?php

namespace Custom\XF\Pub\Controller;

use XF;
use XF\Mvc\ParameterBag;

class ApprovalQueue extends XFCP_ApprovalQueue
{
   protected function preDispatchController($action, ParameterBag $params)
   {
      if (!XF::visitor()->is_moderator)
      {
         try
         {
            parent::preDispatchController($action, $params);
         }
         catch (XF\Mvc\Reply\Exception $e) {}
      }
   }
}

В src/config.php включаем режим разработчика: $config['development']['enabled'] = true;.

Идем сюда: /admin.php?class-extensions/add.
Базовый класс: XF\Entity\User.
Класс расширения: Custom\XF\Entity\User.
+
Базовый класс: XF\Pub\Controller\ApprovalQueue.
Класс расширения: Custom\XF\Pub\Controller\ApprovalQueue.

Создаем модификацию шаблона PAGE_CONTAINER:
Найти:
HTML:
<xf:if is="$xf.visitor.is_moderator && $xf.session.unapprovedCounts.total">
Заменить:
HTML:
<xf:if is="$xf.visitor.canApproveRejectUser() && $xf.session.unapprovedCounts.total">

Отключаем режим разработчика. Радуемся.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу