Я являюсь частью команды, создающей веб-приложение с использованием PHP и MySQL. Приложение будет иметь несколько пользователей с разными ролями. Приложение также будет использоваться в географически распределенной форме. Соответственно, мы должны создать систему контроля доступа, которая работает на двух уровнях:PHP Access Control System
- разрешения пользовательских элементов управления для конкретных страниц PHP, т.е. предоставляет или запрещает доступ к определенным страницам (или элементов пользовательского интерфейса) на основе роли пользователя. Например: пользователю разрешен доступ к странице «Студенты», но не к странице «Учителя».
- Управляет разрешениями пользователей для определенных записей базы данных, то есть изменяет запросы к базе данных, чтобы отображать только определенные записи. Например, для пользователя на уровне города должны отображаться только те записи, которые относятся к конкретному городу пользователя, в то время как для пользователя на национальном уровне должны отображаться записи для ВСЕХ городов в стране.
Мне нужна помощь в разработке системы, которая может обрабатывать оба этих типа контроля доступа. Пункт №. 1 кажется достаточно простым. Тем не менее, я совершенно не понимаю, как сделать точку №2 без жесткого кодирования информации в SQL-запросах.
Любая помощь будет оценена по достоинству.
Заранее спасибо
Винаяк
Hi Но это означает, что поисковые запросы должны быть по-разному записаны для каждого уровня пользователя. Моя проблема заключается в том, чтобы найти способ сделать один и тот же запрос возвратом другого набора результатов на основе уровня пользователя. – Vinayak 2008-10-23 13:58:53
@ vinayak.myopenid.com. В любом случае вам придется использовать другой запрос, если бы вы знали, какой уровень доступа у вас есть на сервере SQL. Кажется, что разрешения будут обрабатываться путем привязки выражений в предложении WHERE с AND. Звучит довольно просто. – strager 2008-11-28 05:14:46