Проверка прав доступа в ajax posts

Started by Vlasov on 2014-01-21 14:07 — 6 replies, 1590 views

#1
Доброго ...
Суть бага, при удаление постов не выполняется проверка соответствующих прав.
Если удаление постов в определенном форуме разрешено только администраторам, модератор все же может удалить пост.
Довольно серьезный баг ИМХО
#2
ревизия какая?
#3
ревизия какая?

R563
#4
Можете повторить баг на демо? Потому что судя по коду проверка на право управления постами в конкретном форуме есть.
#5
Фикс прав на удаление и добавление неучтенного запрета на редактирование, устанавливаемого в профиле...

Открыть ajax\posts.php
найти:
if ($post['post_id'] != $post['topic_first_post_id'] && ($is_auth['auth_mod'] || ($userdata['user_id'] == $post['poster_id'] && $is_auth['auth_delete'] && $post['topic_last_post_id'] == $post['post_id'] && $post['post_time'] + 3600*3 > TIMENOW)))
заменить на:
if ($post['post_id'] != $post['topic_first_post_id'] && $is_auth['auth_delete'] && ($is_auth['auth_mod'] || ($userdata['user_id'] == $post['poster_id'] && $post['topic_last_post_id'] == $post['post_id'] && $post['post_time'] + 3600*3 > TIMENOW)))
найти:
$this->ajax_die(sprintf($lang['DELETE_OWN_POSTS'], strip_tags($is_auth['auth_delete_type'])));
заменить на:
$this->ajax_die(sprintf($lang['SORRY_AUTH_DELETE'], strip_tags($is_auth['auth_delete_type'])));
найти:
case 'edit':
добавить после:
if(bf($userdata['user_opt'], 'user_opt', 'allow_post_edit'))
{
    $this->ajax_die($lang['POST_EDIT_CANNOT']);
}
найти (встречается дважды в коде):
$this->ajax_die($lang['RULES_REPLY_CANNOT']);
заменить найденные совпадения на:
$this->ajax_die(strip_tags($lang['RULES_REPLY_CANNOT']));
Открыть language\lang_russian\lang_main.php
добавить:
$lang['POST_EDIT_CANNOT'] = 'Извините, вы не можете редактировать сообщения';
Открыть language\lang_english\lang_main.php
добавить:
$lang['POST_EDIT_CANNOT'] = 'Sorry, but you cannot edit posts';
#6
Все же хотелось бы чтобы после проверки модером релиза, юзер не мог его потом редактировать, или после редактирования, пост становился снова не проверен, или проверяется. А то были красавцы, проверишь, а они потом туда сслылок насуют...-БАН С--И!
#7
Исправлено в новой ревизии, спасибо за багрепорты: https://code.google.com/p/torrentpier2/source/detail?r=581