Динамические меню на основе ролей пользователей в 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>