Просмотр сайта как член одной из группы

Просмотр сайта как член одной из группы

Как видят содержимое сайта пользователи группы, например Посетители? Это легко узнать установив этот хак. Он позволит оперативно менять Группу пользователей, что удобно при настройке и тестировании сайта на CMS DLE.
 
Установка:
1. Создать файл engine/modules/group.php содержания:
<?php
if( ! defined( 'DATALIFEENGINE' ) ) {
    die( "Hacking attempt!" );
}

    if($member_id['user_group']==1 or $_SESSION['newgroup'])
    {
        $groups = $db->query("select * from " . PREFIX . "_usergroups");
        $html_ = "<form method='post' actiuon=''><select name='newgroup'>";
        while( $val = $db->get_row($groups) ){
            if($member_id['user_group']==$val['id'])
            $h_=" selected";
            else
            $h_="";
            $html_ .= "<option value={$val['id']}{$h_}>{$val['group_name']}</option>";
        }

        $html_ .= "</select> <input type=\"submit\" value=\"ок\"></form>";

    }else
    $html_ = "Нет прав!";
    $tpl->load_template( 'group.tpl' );
    $tpl->set("%LIST%", $html_);
    $tpl->compile( 'content' );
    $tpl->clear();

?>

2. Создать шаблон group.tpl содержания:
%LIST%

3. Открыть файл engine/modules/sitelogin.php и в самом низу найти:
?>

Добавить выше:
if($member_id['user_group']==1 )
{
    if($_POST['newgroup'])
    $member_id['user_group'] = intval($_POST['newgroup']);
    elseif( $_COOKIE['newgroup'] )
    $member_id['user_group'] = intval($_COOKIE['newgroup']);
    elseif( $_SESSION['newgroup'] )
    $member_id['user_group'] = intval( $_SESSION['newgroup'] );
    if($member_id['user_group']==5) $is_logged = false;
    $_COOKIE['newgroup'] = $member_id['user_group'];
    $_SESSION['newgroup'] = $member_id['user_group'];
}

4. Открыть engine/inc/include/functions.inc.php и найти:
    if( $result ) {

        if( !allowed_ip( $row['allowed_ip'] ) ) {

            $member_id = array ();
            $result = false;
            set_cookie( "dle_user_id", "", 0 );
            set_cookie( "dle_name", "", 0 );
            set_cookie( "dle_password", "", 0 );
            set_cookie( "dle_hash", "", 0 );
            @session_destroy();
            @session_unset();
            set_cookie( session_name(), "", 0 );

            msg( "info", $lang['index_msge'], $lang['ip_block'] );

        }
    }

Добавить ниже:
if($member_id['user_group']==1 )
{
    if($_POST['newgroup'])
    $member_id['user_group'] = intval($_POST['newgroup']);
    elseif( $_COOKIE['newgroup'] )
    $member_id['user_group'] = intval($_COOKIE['newgroup']);
    elseif( $_SESSION['newgroup'] )
    $member_id['user_group'] = intval( $_SESSION['newgroup'] );
    if($member_id['user_group']==5) $is_logged = false;
    $_COOKIE['newgroup'] = $member_id['user_group'];
    $_SESSION['newgroup'] = $member_id['user_group'];
}

5. Открыть engine/engine.php и найти:
switch ( $do ) {

Добавить ниже:
    case "group" :
        include ENGINE_DIR . '/modules/group.php';
		break;

6. Переходим по ссылке сайт.ру/index.php?do=group и меняем группу.

Готово!

Скачать: файл могут только зарегистрированные посетители.
 
Версия DLE: 9.х-13.х
 

Статью отредактировал: Oxigen - 29-04-2019, 08:09
Причина: Добавлен плагин для DLE версии 13.x

  • Oxigen
  • 4
  • 463
Информация
Оставлять комментарии могут только зарегистрированные посетители.

Комментариев 4

Pahuchiy, в шаблоне
%LIST%

заменить на
<form method='post' actiuon=''><select name='newgroup'>
<option value=4 selected>Группа 4</option>
<option value=6>Группа 6</option>
</select> <input type="submit" value="ок"></form>
Цитата: Oxigen
Pahuchiy, ну тут как бы и не должно менятся. Ведь фактически вы остаётесь в своей старой группе. Т.е. если разлогинится и заного войти по своей учеткой, все будет как и раньше.

А как сделать так чтобы выводились определенные группы? Не все а к примеру только id 4 и 6
Pahuchiy, ну тут как бы и не должно менятся. Ведь фактически вы остаётесь в своей старой группе. Т.е. если разлогинится и заного войти по своей учеткой, все будет как и раньше.
Всё круто, все работает. НО! Как сделать чтобы при смене группы, в профиле пользователя тоже менялась группа?
Ато когда меняю группу через этот хак, на странице профиля группа не меняется
  • Рейтинг@Mail.ru
  • Яндекс.Метрика