Динамические меню на основе ролей пользователей в JSP

У меня есть веб-приложение, в котором раньше у меня был только один вид пользователей (пользователь-клиент), но теперь я работаю и добавил в приложение администратора ролей, поэтому мне нужно показать меню, основанные на роли, т. Е. Когда зарегистрированный пользователь - это пользователь, отображающий ограниченное количество подменю, но если зарегистрированный пользователь является администратором, отобразите все параметры меню. Серверная часть приложения строится с использованием JSP. Какими должны быть лучшие практики для этого?

1 ответ

Просто отобразите его условно в зависимости от роли текущего пользователя. Вы можете использовать JSTL <c:if> тег для этого.

Например, если меню статические, просто предоставьте логический метод get для вашего объекта сеанса, представляющего текущего пользователя, вошедшего в систему:

<c:if test="${user.admin}">
    Show admin menu items.
</c:if>

или если поддерживается EL 2.2, так что вам не нужен еще один для каждой роли:

<c:if test="${user.hasRole('ADMIN')}">
    Show admin menu items.
</c:if>

или если вы используете управляемую контейнером аутентификацию:

<c:if test="${pageContext.request.isUserInRole('ADMIN')}">
    Show admin menu items.
</c:if>
Другие вопросы по тегам