Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как разграничить права доступа?
Форумы портала PHP.SU » » HTTP и PHP » Как разграничить права доступа?

Страниц (1): [1]
 

1. prog90 - 20 Августа, 2011 - 01:10:59 - перейти к сообщению
Привет,
подскажите, как сделать, чтобы один пользователь при просмотре профиля другого не смог его изменить? Проверить совпадает ли логин в сессии (логин текущего пользователя) с логином профиля, который он просматривает? Или в базе данных написать триггер, который перед командой UPDATE будет проверять редактируется ли сейчас строка с id таким же как у ползователя который ее редактирует, а ко всем остальным строкам запрещать доступ, и возвратит ошибку (вроде это делается так). Только как узнать id пользователя в триггере?

И еще:
Добавить таблицу, где будут указаны на каких страницах какие группы пользователей могут совершать действия (редактирование, создание, удаление, просмотр, выполнение или чтонибудь другое), и потом на каждой странице проверять права и в зависимости от этого показывать или скрывать что-то? Или поставить запреты или разрешение на команды Insert, Update, Delete, Select и какиенибудь другие в базе данных?
2. КЫР - 20 Августа, 2011 - 08:44:12 - перейти к сообщению
prog90 пишет:
Добавить таблицу

Незачем в лишний раз давать нагрузку на сервер БД

prog90 пишет:
Проверить совпадает ли логин в сессии (логин текущего пользователя) с логином профиля

самое правильное решение, если необходимо делать изменения "на лету"
А если такой необходимости нет, надо сделать отдельную страницу с настройками, тогда никаких вопросов вообще не будет)
3. prog90 - 20 Августа, 2011 - 11:52:18 - перейти к сообщению
А настройки все равно придется в БД хранить? таблица с тем куда кто что может открыть, просмотреть или добавить
4. КЫР - 20 Августа, 2011 - 13:14:25 - перейти к сообщению
prog90
само собой
5. PATCH - 20 Августа, 2011 - 13:41:07 - перейти к сообщению
можно еще сделать проще при авторизации создать $_SESSION['id'] = $row['id']
при просмотре профиля сравнивать id профиля с сессией $_SESSION['id']; тем самым не какого лишнего запроса к бд сессию id мы сохранили при авторизации а id профиля мы взяли при вывода информации о пользователе для индификации использовали id хотя аналогично можно и с логином)

 

Powered by ExBB FM 1.0 RC1