В одном проекте часть функционала отводится профилю и разграничению ролей. Предполагаются как обычные зарегистрированные пользователи, так и верифицированные. Каждая из ролей должна видеть персональную информацию только у подобных пользователей, т.е. схематически:
- гости видят только фотографии участников;
- авторизированные неверифицированные видят часть инфы только у подобных себе;
- авторизованные верифицированные видят всю инфу только у подобных себе.
На первый взгляд показалось космосом, а коробочные решения не столь гибки при детальном рассмотрении. Что же делать? Одна из модальностей решения задачи: 1. создаются две отдельные роли:
- роль верифицированный;
- роль неверифицированный;
2. модуль autoassignrole назначает свежерегу роль неверифицированный. 3. через rules создаётся условие:
- если пользователю назначили роль верифицированного, то снимать роль неверифицированный.
4. в профиле пользователя 'user-profile.tpl.php' определён порядок вывода полей для каждой из ролей. Предположим, что 1 - это верифицированный, 6 - это неверифицированный, а 2 - это гость. Всё, что нам необходимо задать - проверить роль текущего пользователя и соответственно выдать нужную информацию: roles[1]) { ?> Любое сообщение для верифицированного roles[2]) { ?> Любое сообщение для гостя roles[6]) { ?> Любое сообщение для неверифицированного
Комментарии к записи