• 216 Ip Admin Only - право показывать IP только админам • 
Что бы не видели IP адреса пользователей
При создании темы о модах для двигателя форумов phpBB ветки 3.0.Х название темы должно начинаться с названия мода на английском, без указания версии, затем тире, затем короткое название мода на русском с маленькой буквы. Создание тем не о модах в данном подфоруме запрещено. Посторонние темы о двиге и посторонних проблемах для ветки 3.0.Х в соседнем подфоруме. И помните - Вам тут никто ничего не должен. При малейшем "приказном" тоне в сообщениях - бан на вечно.

    216 Ip Admin Only - право показывать IP только админам

Сообщение Разместил Pthelovod 14 апр 2017, 09:19

Подскажите, пожалуйста, можно ли сделать так, чтобы модераторы не видели IP адреса пользователей?

Вариантов несколько.... Начнем по порядку...

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  216 Ip Admin Only - право показывать IP только админам

Сообщение Разместил Pthelovod 14 апр 2017, 09:32

Во первых, это умеет данный мод (там появляется раздается новое право - видеть не видеть IP)


Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  216 Ip Admin Only - право показывать IP только админам

Сообщение Разместил Pthelovod 14 апр 2017, 09:36

Совет от MIT с Гуру -
Возникла необходимость скрыть от пользователей и модераторов IP администратора, но модераторам соотв должны быть видны IP пользователей

Ну вот, например, можно сделать так:
Open includes/session.php
Find
Код: выделить все
            $s_browser = ($config['browser_check']) ? trim(strtolower(substr($this->data['session_browser'], 0, 149))) : '';

Add before
Код: выделить все
            switch ($this->data['user_id'])
            {
               case 2:
                  $this->ip = $s_ip = $u_ip = '127.0.0.1';
                  break;
            }

Где 2 — идентификатор пользователя. Условие можно поставить и другое, например для основателей.
В дополнение интересует sql запрос либо же скрипт который "подчистит" все записи о IP членов группы "администраторы"

Что бы потеретьIP`ы из базы, выполни запросы
Код: выделить все
UPDATE phpbb_sessions SET session_ip = '127.0.0.1' WHERE session_user_id = 2

Код: выделить все
UPDATE phpbb_users SET user_ip = '127.0.0.1' WHERE user_id = 2

Код: выделить все
UPDATE phpbb_posts SET poster_ip = '127.0.0.1' WHERE poster_id = 2

Код: выделить все
UPDATE phpbb_log SET log_ip = '127.0.0.1' WHERE user_id = 2

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  216 Ip Admin Only - право показывать IP только админам

Сообщение Разместил МайскийЖук 14 апр 2017, 09:42

Вариант от МайскийЖук с гуру -
Откройте файлы:
/includes/mcp/mcp_front.php
/includes/mcp/mcp_logs.php
/includes/mcp/mcp_notess.php
и во всех них найдите:
Код: выделить все
                'IP'            => $row['ip'],

Во всех этих файлах замените эту строчку на следующую:
Код: выделить все
                'IP'            => ($auth->acl_get('a_')) ? $row['ip'] : '',

Откройте файл /includes/mcp/mcp_main.phpи найдите там следующую строчку:
Код: выделить все
                    'poster_ip'            => (string) $row['poster_ip'], 

Замените ее на строчку:
Код: выделить все
                    'poster_ip'            => ($auth->acl_get('a_')) ? (string) $row['poster_ip'] : '', 

Откройте файл includes/mcp/mcp_post.php и найдите в нем:
Код: выделить все
        'POST_IP'                => $post_info['poster_ip'], 

Замените на:
Код: выделить все
        'POST_IP'                => ($auth->acl_get('a_')) ?  $post_info['poster_ip'] : '', 

Найдите:
Код: выделить все
                'IP'            => $row['poster_ip'],   

Замените на:
Код: выделить все
                'IP'            => ($auth->acl_get('a_')) ? $row['poster_ip'] : '',   

Найдите:
Код: выделить все
        'POST_IPADDR'            => ($auth->acl_get('m_info', 

Замените на:
Код: выделить все
        'POST_IPADDR'            => ($auth->acl_get('a_', 

Найдите:
Код: выделить все
        'U_LOOKUP_IP'            => ($auth->acl_get('m_info' 

Замените на:
Код: выделить все
        'U_LOOKUP_IP'            => ($auth->acl_get('a_' 

Найдите:
Код: выделить все
        'U_WHOIS'                => ($auth->acl_get('m_info', 

Замените на:
Код: выделить все
        'U_WHOIS'                => ($auth->acl_get('a_', 

Найдите:
Код: выделить все
$template->assign_block_vars('iprow', array(
                'IP'            => $row['poster_ip'], 
                'HOSTNAME'        => $hostname,
                'NUM_POSTS'        => $row['postings'],
                'L_POST_S'        => ($row['postings'] == 1) ? $user->lang['POST'] : $user->lang['POSTS'],
                'U_LOOKUP_IP'    => ($rdns_ip_num == $row['poster_ip'] || $rdns_ip_num == 'all') ? '' : "$url&i=$id&mode=post_details&rdns={$row['poster_ip']}#ip",
                'U_WHOIS'        => append_sid("{$phpbb_root_path}mcp.$phpEx", "i=$id&mode=$mode&action=whois&p=$post_id&ip={$row['poster_ip']}"))
            );

Замените на:
Код: выделить все
            if ($auth->acl_get('a_')){
            $template->assign_block_vars('iprow', array(
                'IP'            => $row['poster_ip'], 
                'HOSTNAME'        => $hostname,
                'NUM_POSTS'        => $row['postings'],
                'L_POST_S'        => ($row['postings'] == 1) ? $user->lang['POST'] : $user->lang['POSTS'],
                'U_LOOKUP_IP'    => ($rdns_ip_num == $row['poster_ip'] || $rdns_ip_num == 'all') ? '' : "$url&i=$id&mode=post_details&rdns={$row['poster_ip']}#ip",
                'U_WHOIS'        => append_sid("{$phpbb_root_path}mcp.$phpEx", "i=$id&mode=$mode&action=whois&p=$post_id&ip={$row['poster_ip']}"))
            );           
            }
            else
            {
            $template->assign_block_vars('iprow', array(
                'IP'            => '', 
                'HOSTNAME'        => '',
                'NUM_POSTS'        => $row['postings'],
                'L_POST_S'        => ($row['postings'] == 1) ? $user->lang['POST'] : $user->lang['POSTS'],
                'U_LOOKUP_IP'    => '',
                'U_WHOIS'        => '')
            );
            }

Внимание! Как обычно работоспособность не гарантирована. Перед внесением изменений в файлы не забывайте делать резервные копии этих файлов.
Любовь и боль, покой и бой я как любой несу с собой...

МайскийЖук
Советник форума
Советник форума 

  216 Ip Admin Only - право показывать IP только админам

Сообщение Разместил Pthelovod 14 апр 2017, 09:43

От меня -
Интересно, а в админке Пользователи и группы / Управление пользователями, каким запросом можно стереть или изменить информацию Зарегистрирован с IP-адреса: ………?

adm/style/acp_users_overview.html
удалить
Код: выделить все
<!-- IF S_USER_IP -->
<dl>
   <dt><label>{L_REGISTERED_IP}:</label></dt>
   <dd><a href="{U_SHOW_IP}">{REGISTERED_IP}</a></dd>
   <dd>[ <a href="{U_WHOIS}" onclick="popup(this.href, 700, 500, '_whois'); return false;">{L_WHOIS}</a> ]</dd>
</dl>
<!-- ENDIF -->

Pthelovod
Александр (можно Николаич)
Александр (можно Николаич) 

  216 Ip Admin Only - право показывать IP только админам

Сообщение Разместил Татьяна5 14 апр 2017, 09:50

Еще совет от Татьяна5 с Гуру -
Как сделать так, чтобы ip подменялся сразу при входе на форум в Кто сейчас на конференции , без необходимости заходить а админ-панель?

Убрать отображениеIP в "кто сейчас на конференции" для администраторов (группа с id=5 должна быть назначена по умолчанию):
viewonline.php
Найти
Код: выделить все
$sql = 'SELECT u.user_id, u.username, u.username_clean, u.user_type, u.user_colour

Добавить после в строке
Код: выделить все
, u.group_id

Найти
Код: выделить все
'USER_IP'         => ($auth->acl_get('a_') || $auth->acl_get('m_can_view_ip')) ? (($mode == 'lookup' && $session_id == $row['session_id']) ? gethostbyaddr($row['session_ip']) : $row['session_ip']) : '',

Заменить на
Код: выделить все
'USER_IP'         => ($row['group_id'] == 5) ? '' : (($auth->acl_get('a_') || $auth->acl_get('m_can_view_ip')) ? (($mode == 'lookup' && $session_id == $row['session_id']) ? gethostbyaddr($row['session_ip']) : $row['session_ip']) : ''),

biro писал(а):
В "Кто сейчас на конференции" то они видят только пользователей и модераторов, а Админов никогда

Администраторы всегда скрыты (группа с id=5 должна быть назначена по умолчанию):
viewonline.php
Найти
Код: выделить все
$sql = 'SELECT u.user_id, u.username, u.username_clean, u.user_type, u.user_colour

Добавить после в строке
Код: выделить все
, u.group_id

Найти
Код: выделить все
      $username_full = ($row['user_type'] != USER_IGNORE) ? get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']) : '<span' . $user_colour . '>' . $row['username'] . '</span>';

Добавить после
Код: выделить все
      // Hide admin
      $row['session_viewonline'] = ($row['group_id'] == 5) ? 0 : $row['session_viewonline'];

Найти
Код: выделить все
$sql = 'SELECT s.session_user_id, s.session_ip, s.session_viewonline

В строке найти
Код: выделить все
s.session_user_id,

Заменить на
Код: выделить все
u.user_id, u.group_id, s.session_user_id,

Найти
Код: выделить все
      FROM ' . SESSIONS_TABLE . ' s

Заменить на
Код: выделить все
      FROM ' . USERS_TABLE . ' u, ' . SESSIONS_TABLE . ' s

Найти
Код: выделить все
WHERE s.session_time >= ' . ($time - ((int) ($time % 30))) .

В строке найти
Код: выделить все
      WHERE

Заменить на
Код: выделить все
      WHERE u.user_id = s.session_user_id
         AND

Найти
Код: выделить все
         $online_users['online_users'][$row['session_user_id']] = (int) $row['session_user_id'];

Добавить после
Код: выделить все
         // Hide admin
         $row['session_viewonline'] = ($row['group_id'] == 5) ? 0 : $row['session_viewonline'];
Татьяна5
Профессор форума
Профессор форума 

Вернуться в Коды и модификации для движка phpBB версий до 3.0.Х