Назад к вопросам
Middle+
1
Как вы реализовывали ролевую модель доступа на фронтенде? Как определялось, что показывать пользователю в зависимости от пермиссий?
Компании, где спрашивали
Сбертех
Ответ от нейросети
sobes.tech AI
Ролевая модель доступа на фронтенде обычно реализуется через хранение информации о ролях и правах пользователя (permissions) в состоянии приложения после аутентификации.
Основные подходы:
- После входа пользователя фронтенд получает от сервера список его ролей и пермиссий.
- В зависимости от этих данных компоненты или маршруты показываются или скрываются.
- Часто используется контекст или глобальное состояние (например, Redux, Context API в React) для хранения прав.
- Для удобства создаются утилиты или хуки, которые проверяют наличие нужных прав.
Пример на React:
const userPermissions = ['read_articles', 'edit_profile'];
function hasPermission(permission) {
return userPermissions.includes(permission);
}
function Profile() {
return (
<div>
<h1>Профиль пользователя</h1>
{hasPermission('edit_profile') && <button>Редактировать профиль</button>}
</div>
);
}
Таким образом, интерфейс адаптируется под пользователя, показывая только те элементы, на которые у него есть права.