Middle+
Kako ste implementirali model pristupa zasnovan na ulogama na frontendu? Kako je određivano šta će se prikazati korisniku u zavisnosti od dozvola?
sobes.tech АИ
Одговор од АИ
Ролевая модель доступа на фронтенде обычно реализуется через хранение информации о ролях и правах пользователя (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>
);
}
Таким образом, интерфейс адаптируется под пользователя, показывая только те элементы, на которые у него есть права.