Стандарт проектирования БД для авторизации пользователей

_RVK_

Новичок
Нужна не структура таблиц, а интерфейс к ним. Например у меня есть класс, у него есть метод have_rights($user,$section,$action) с помощью которого я могу определить имеет ли пользователь права на то-то или иное действие. И неважно какая там у меня структура таблиц.
 

nw

Новичок
Diesel
Не совсем ясна идея. То что у тебя может быть класс и у него метод это понятно. Понятно и то, что у базы своя структура и твой метод работает именно с этой структурой. Например, тот же метод have_rights берет ID пользователя из сессионной/куковой переменной (подразумевается, что пользователь уже залогинился), и смотрит в табличке - может ли юзер выполнить $action на страничке $section.
Но тут я решил написать свое приложение, которое мне хотелось бы интегрировать с твоим. Судя твоей логике, я структуру БД делаю любую свою. Если я буду использовать твой класс и его метод have_rights, то собственно должен буду использовать и твою структуру БД. Как выйти из ситуации?
Создать какой-то абстрактный слой не привязанный к конкретной структуре БД? По какому принципу он может быть построен?
 

_RVK_

Новичок
nw
Нет, ты пишешь приложение, в котром используется класс, у которого есть метод have_rights который работает точно также как и мой. Пусть у тебя будет своя структура таблиц, пусть ты все данные хранишь в файле, или он, этот метод, вообще не работает, а представляет собой заглушку. Но перенеся свой приложение в мою систему, и подключив мой класс, ты будешь уверен что все будет работать как задумано. Класс является интерфейсом, и вот его есть смысл стандартизировать (если в этом есть какой либо смысл вообще), а структура таблиц не важна.
 

nw

Новичок
ага. Доходит. Я что-то не сразу собразил, что добавляя мое приложение в твою систему я не тащу с собой свои таблички с юзерами и свой класс, а подключаю твой класс с одноименными методами, переменными... Т.е. тут, выражаясь терминами mvc, мы оставляем свой контроллер с вызовами методов из модели, а саму модель подменяем.
Да, так должно быть неплохо. Ставлю свою гостевую книгу рядом с твоим форумом, так или иначе заменяю свой класс аутентификации на твой и по идее все работает. Правильно, нужно только иметь стандартные методы и переменные, примеры кстати уже в этом треде упоминались.
 

_RVK_

Новичок
Но я не уврен, что разработав стандарт, все кинутся его использовать. Я например не использую чужие скрипты, а моя система меня вполне устраивает. Есть возможность добавлять пользователей, группы, проставлять права для групп. Все саои скрипты я пишу под неё. Т.е. это стандарт, но для меня лично.

-~{}~ 26.10.04 16:26:

Мало того, я даже не использую методы класса. Все происходит абсолютно прозрачно. Я только использую константы например так:
PHP:
if (HR_EDIT) {
//Можем редактировать
} else {
//Выводим сообщение что не можем
}
Все константы создаются автоматически в инклюдящемся ко всем скриптам protect.inc.php, например.
При разработке даже не нужно использовать класс и БД. Просто определяешь эти константы в своем скрипте, и при тестировании ручками изменяешь их значение.
 
Сверху