Sobes.tech
Назад к вопросам
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>
  );
}

Таким образом, интерфейс адаптируется под пользователя, показывая только те элементы, на которые у него есть права.