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

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

Как видят содержимое сайта пользователи группы, например Посетители? Это легко узнать установив этот хак. Он позволит оперативно менять Группу пользователей, что удобно при настройке и тестировании сайта на 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 и меняем группу.

Готово!

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

Примечание от Oxigen: Добавлен плагин для DLE версии 13.x

  • Oxigen
  • 4
  • 799
Информация
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.

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

Oxigen 19 сентября 2019 06:10
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>
Pahuchiy 18 сентября 2019 17:47
Цитата: Oxigen
Pahuchiy, ну тут как бы и не должно менятся. Ведь фактически вы остаётесь в своей старой группе. Т.е. если разлогинится и заного войти по своей учеткой, все будет как и раньше.

А как сделать так чтобы выводились определенные группы? Не все а к примеру только id 4 и 6
Oxigen 18 сентября 2019 17:10
Pahuchiy, ну тут как бы и не должно менятся. Ведь фактически вы остаётесь в своей старой группе. Т.е. если разлогинится и заного войти по своей учеткой, все будет как и раньше.
Pahuchiy 18 сентября 2019 11:22
Всё круто, все работает. НО! Как сделать чтобы при смене группы, в профиле пользователя тоже менялась группа? А то когда меняю группу через этот хак, на странице профиля группа не меняется.