Всем привет! На сайте пользователи могут удалять, изменять и добавлять какой-то контент, комментарии и т.д.
Какие-то группы пользователей могут только читать комментарии, какие-то добавлять, какие-то удалять свои или чужие комментарии или статьи.
Как правильно это организовывается?
Я делаю так... Например при открытии страницы редактирования статьи посылаю запрос к БД и получаю информацию о пользователе, который загрузил статью:
"SELECT `articles`.`user_id` FROM `articles` WHERE `id` = {$id} LIMIT 1"
// Делаем проверку на загрузившего
if($row['user_id'] == $user_id){
$allow_edit = true;
}
// если по-прежнему не разрешено, проверяем, может пользователь находится в группе, для которой разрешено изменять чужие статьи
if(!$allow_edit){
$user_groups = getUserGroups(); // получаем все разрешения для всех групп
if($user_groups[$_SESSION['group_id']]['edit_all_articles'] == 1){
$allow_edit = true;
}
}
Ну и так далее... Правильно ли я делаю? Я засомневался тогда, когда такие проверки пришлось вставлять повсеместно, как для статей, так и для комментариев, на удаление и т.д.
Но кроме того, такие проверки нужно вставлять при выводе списка статей комментариев, новостей, записей и т.д. только для того, чтобы показать/скрыть ссылку на редактирование...