Предлагаемая система полномочий пользователей представляет собой инструмент, посредством которого разработчики могут обеспечить управление правами доступа на сайте, хотя при конкретной реализации такой системы необходимо проконсультироваться с различными пользователями (например, менеджерами), поскольку такая система может оказать прямое воздействие на деловые и функциональные аспекты сайта.
Предположим, что после консультаций со всеми заинтересованными сторонами выявились следующие требования.
Технические требования к приложению
♦ Система должна относительно просто интегрироваться с любым приложением РНР для баз данных
♦ Некоторая группа пользователей должна иметь возможность динамически предоставлять полномочия (или отменять их) другим пользователям через броузер
♦ Должна существовать возможность динамического добавления полномочий в систему по мере расширения приложения. Например, добавление или удаление полномочий не должно отражаться на схеме базы данных
♦ Разработчик должен иметь возможность легко определить, обладает ли некий пользователь данным полномочием
Проектирование приложения
Определим основу структуры базы данных и архитектуру приложения.
Большинство приложений следует той или иной архитектурной схеме (design pattern). В самых общих словах, архитектурная схема представляет собой проверенную структуру решения конкретной задачи. Например, программа, которая получает оперативные данные и записывает их в базу данных, обычно следует архитектуре каналов и фильтров (pipes and filters architecture). Эта программа получает данные через удаленное соединение (канал). Возможно, программе требуется изменить структуру поступивших данных, чтобы привести их в соответствие со схемой базы данных, поэтому она выступает в качестве фильтра. Когда информация приведена в нужный формат, открывается соединение (другой канал) с целевой базой данных и осуществляется запись данных.
Архитектурная схема каналов и фильтров прошла проверку временем в качестве решения, пригодного для задач такого рода, поэтому программистам не надо заново изобретать архитектуру для создания аналогичных приложений.
Наша система пользовательских полномочий, как и большинство других веб-приложений, в которых участвует сервер базы данных, следует схеме многозвенной архитектуры (multi-tiered architecture). При такой архитектуре различные аспекты приложения, например данные, бизнес-логика и представление, разделены по разным звеньям (или уровням) программы. Таких звеньев в программе может быть любое количество.