Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
Имитация прав доступа
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
-
- Former team member
- Сообщения: 2224
- Стаж: 15 лет 4 месяца
- Благодарил (а): 124 раза
- Поблагодарили: 138 раз
Имитация прав доступа
Кто бы ни открыл страничку скрипта, нужно сделать так, будто её открывает гость (открывать с правами гостя), но без потери авторизации и других багов. Как это сделать?
-
- Former team member
- Сообщения: 12113
- Стаж: 17 лет 2 месяца
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 41 раз
- Поблагодарили: 1716 раз
Re: Имитация прав доступа
По идее, чтобы глубоко не рыть, просто заменить у объекта $auth эти праметры
на гостевые.
Код: Выделить всё
[acl] => Array
(
[0] => 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100000000000000000000000000000
[1] => 10000010000001000011001000100000000000000000000000000000000000
[2] => 11111111111111111111111111111111111111111110000000000000000000
[3] => 11111111111111111111111111111111111111111110000000000000000000
[4] => 11111111111111111111111111111111111111111110000000000000000000
[5] => 10000010000001000011001000100000000000000000000000000000000000
[6] => 10000010000001000011001000100000000000000000000000000000000000
)
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
- Former team member
- Сообщения: 2224
- Стаж: 15 лет 4 месяца
- Благодарил (а): 124 раза
- Поблагодарили: 138 раз
Re: Имитация прав доступа
Sheer
Не знаю, не знаю, если тупо заменить, то валидацию точно не пройдёт, скажут "тупо заменил".
Не знаю, не знаю, если тупо заменить, то валидацию точно не пройдёт, скажут "тупо заменил".
-
- Former team member
- Сообщения: 12113
- Стаж: 17 лет 2 месяца
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 41 раз
- Поблагодарили: 1716 раз
Re: Имитация прав доступа
Ну и забей. Или используй функцию
function ghost_permissions($from_user_id, $to_user_id)
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
- Former team member
- Сообщения: 2224
- Стаж: 15 лет 4 месяца
- Благодарил (а): 124 раза
- Поблагодарили: 138 раз
Re: Имитация прав доступа
Решение следующее:
Код: Выделить всё
// Делаем резервную копию своих исходных прав
$backup = array(
'user_data' => $this->user->data,
'auth' => $this->auth
);
// Вытаскиваем права гостя на время
$sql = 'SELECT * FROM ' . USERS_TABLE . '
WHERE user_id = ' . ANONYMOUS;
$result = $this->db->sql_query($sql);
while ($row = $this->db->sql_fetchrow($result))
{
$this->user->data = $row;
$this->auth->acl($this->user->data);
}
$this->db->sql_freeresult($result);
========= ИСПОЛНЯЕМ ТУТ ЛЮБОЙ КОД, КОТОРЫЙ ТРЕБУЕТ ГОСТЕВЫЕ ПРАВА =========
// Возвращаем исходные права обратно
$this->auth = $backup['auth'];
$this->user->data = $backup['user_data'];
unset($backup);