Проверяет понимание организации матрицы прав доступа и условного рендеринга интерфейса в зависимости от роли пользователя.
Матрица прав доступа — это структура, которая определяет, какие действия или ресурсы доступны каждой роли пользователя. Например, администратор может удалять записи, а обычный пользователь — только просматривать. Такая матрица обычно хранится на сервере или в конфигурации приложения и используется для авторизации.
На фронтенде мы не должны полагаться только на скрытие элементов — это лишь улучшение UX. Безопасность обеспечивается на сервере. Однако для отображения интерфейса мы используем условный рендеринг: проверяем роль пользователя и показываем соответствующие элементы. Например, в React можно использовать компонент-обёртку или хук.
const permissions = {
admin: ['create', 'edit', 'delete'],
user: ['view']
};
function Can({ role, action, children }) {
return permissions[role]?.includes(action) ? children : null;
}
// Использование
<Can role={user.role} action="delete">
<button>Удалить</button>
</Can>Матрица прав доступа должна быть централизованной и легко изменяемой. Часто её хранят в виде объекта или таблицы в базе данных. На клиенте можно получать список разрешений после логина и передавать в контекст. Это позволяет избежать дублирования логики и упрощает тестирование.
Используйте матрицу прав доступа для чёткого разделения ролей и условный рендеринг для адаптации интерфейса. Это делает приложение безопаснее и удобнее, так как пользователь видит только доступные ему функции.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию