Духовность™
Продвинутый новичок
В общем, назрел рефакторинг и я хочу спросить, правильно ли я подошел к теме разделения прав доступа, ибо когда я это все писал, мозг был не включен и как результат - много говнокода...
На текущий момент я делаю так (утрированно): если на какой-то action, например "редактирование новостей", нужно поставить проверку прав доступа, то в базе создается запись "NEWS_EDIT". Это просто уникальный строковой идентификатор, имеющий свой числовой ID.
Когда создается группа пользователей, то в таблицу связей, состоящую из столбцов ID_GROUP, ID_ACTION, ACCESS пишутся соответствующие значение. ACCESS, если кто не понял - 1 или 0 (право), а ID_ACTION - ID экшена, т.е. записи типа "NEWS_EDIT".
В коде, когда запрашивается скрипт редактирования новостей, просто делается проверка:
которая смотрит, разрешен ли доступ группе $user->getGroup() на action "NEWS_EDIT"
Суть моего вопроса в том, правильно ли я делаю, что привязываюсь в коде программы к строковому идентификатору "NEWS_EDIT"?
На текущий момент я делаю так (утрированно): если на какой-то action, например "редактирование новостей", нужно поставить проверку прав доступа, то в базе создается запись "NEWS_EDIT". Это просто уникальный строковой идентификатор, имеющий свой числовой ID.
Когда создается группа пользователей, то в таблицу связей, состоящую из столбцов ID_GROUP, ID_ACTION, ACCESS пишутся соответствующие значение. ACCESS, если кто не понял - 1 или 0 (право), а ID_ACTION - ID экшена, т.е. записи типа "NEWS_EDIT".
В коде, когда запрашивается скрипт редактирования новостей, просто делается проверка:
PHP:
if ($this->checkAccess($user->getGroup(), "NEWS_EDIT")) ....
Суть моего вопроса в том, правильно ли я делаю, что привязываюсь в коде программы к строковому идентификатору "NEWS_EDIT"?