kppava, Благодарю за обнаружение проблемы.Проблема: Недостаточная проверка, при выборке в файле: /engine/bullet_energy/action/site/user.php в следствии которой в методах topics, messages, likes можно видеть сообщения или темы в недоступных для группы разделах.
Ошибка в версии: 1.3 и все более ранние версии, так-же затрагивает модификацию
user_likes (просмот всех лайков пользователя)
Степень опасности: ВысокаяВарианты исправлений: Ручное, Файлы с применёнными исправлениями
Ручное исправление: В файле /engine/bullet_energy/action/site/user.php
Найти
два раза
if($row['topic_type'] == 1) {
$row['topic_private_user'] = unserialize($row['topic_private_user']) ;
if(in_array(parent::$member_id['name'], parent::$cache['moderator']['name'])) {
if(!parent::$helper->ckeckModulesConfig('be_moder_top_view_privat
e') and !in_array(parent::$member_id['user_id'], $row['topic_private_user']['array'])) {
continue ;
}
} elseif(!in_array(parent::$member_id['user_id'], $row['topic_private_user']['array'])) {
continue ;
}
}
Заменить на:
if($row['topic_type'] == 1) {
$row['topic_private_user'] = unserialize($row['topic_private_user']) ;
if(in_array(parent::$member_id['name'], parent::$cache['moderator']['name'])) {
if(!parent::$helper->ckeckModulesConfig('be_moder_top_view_privat
e') and !in_array(parent::$member_id['user_id'], $row['topic_private_user']['array'])) {
continue ;
}
} elseif(!in_array(parent::$member_id['user_id'], $row['topic_private_user']['array'])) {
continue ;
}
} elseif(!parent::$helper->checkTreeConfigParam('readTopic', $row['id_parent'])) {
continue ;
}
Далее найти:
parent::$db->query("SELECT thanks.thanks_date, post.message_text, post.id AS post_id, post.id_topic, user.user_id, user.name,user.foto, topic.title FROM " . PREFIX . "_be_thanks AS thanks LEFT JOIN " . PREFIX . "_be_message AS post ON thanks.thanks_msg_id = post.id LEFT JOIN " . PREFIX . "_users AS user ON thanks.thanks_id_user = user.user_id LEFT JOIN " . PREFIX . "_be_topic AS topic ON topic.id = post.id_topic WHERE thanks.thanks_msg_id_user = {$this->user['user_id']} {$option['joinAprove']} LIMIT {$pag['start']},{$pag['nums']}") ;
Заменить на:
parent::$db->query("SELECT thanks.thanks_date, post.message_text, post.id AS post_id, post.id_topic, user.user_id, user.name,user.foto, topic.title, topic.topic_private_user, topic.topic_type, topic.id_parent FROM " . PREFIX . "_be_thanks AS thanks LEFT JOIN " . PREFIX . "_be_message AS post ON thanks.thanks_msg_id = post.id LEFT JOIN " . PREFIX . "_users AS user ON thanks.thanks_id_user = user.user_id LEFT JOIN " . PREFIX . "_be_topic AS topic ON topic.id = post.id_topic WHERE thanks.thanks_msg_id_user = {$this->user['user_id']} {$option['joinAprove']} LIMIT {$pag['start']},{$pag['nums']}") ;
Найти:
while ($row = parent::$db->get_row()) {
parent::$tpl->load_template('user.tpl') ;
Заменить на:
while ($row = parent::$db->get_row()) {
if($row['topic_type'] == 1) {
$row['topic_private_user'] = unserialize($row['topic_private_user']) ;
if(in_array(parent::$member_id['name'], parent::$cache['moderator']['name'])) {
if(!parent::$helper->ckeckModulesConfig('be_moder_top_view_privat
e') and !in_array(parent::$member_id['user_id'], $row['topic_private_user']['array'])) {
continue ;
}
} elseif(!in_array(parent::$member_id['user_id'], $row['topic_private_user']['array'])) {
continue ;
}
} elseif(!parent::$helper->checkTreeConfigParam('readTopic', $row['id_parent'])) {
continue ;
}
parent::$tpl->load_template('user.tpl') ;
Готово, теперь сообщения и темы из закрытых не будут отображаться отображаться при просмотре сообщений пользователя.
Файлы с применёнными исправлениями: Вложены в это сообщение, user.rar - это user.php, user-user_like.mod.rar - это user.php с применённой модификацией user_likes.
Вложения:
- user.rar
- Размер файла:
- 3,39 Kb
- Скачиваний:
- 371
Сообщение отредактировал 9 октября 2013 - 01:07