Sobes.tech
Middle

Vertel hoe de rechtenmatrix was georganiseerd en hoe de weergave van de elementen in de code werd georganiseerd afhankelijk van de rol van de gebruiker.

sobes.tech AI

Antwoord van AI

В нашем проекте матрица прав была реализована в виде объекта, где ключами выступали роли пользователей, а значениями — наборы разрешённых действий или доступных компонентов интерфейса. Например, для каждой роли мы определяли, какие кнопки, страницы или функции доступны.

В коде это выглядело примерно так:

const permissions = {
  admin: ['viewDashboard', 'editUsers', 'deletePosts'],
  editor: ['viewDashboard', 'editPosts'],
  viewer: ['viewDashboard']
};

function canAccess(role, action) {
  return permissions[role]?.includes(action);
}

// В React-компоненте
function Dashboard({ userRole }) {
  return (
    <div>
      {canAccess(userRole, 'viewDashboard') && <DashboardContent />}
      {canAccess(userRole, 'editUsers') && <EditUsersButton />}
    </div>
  );
}

Такой подход позволял централизованно управлять правами и легко расширять их при добавлении новых ролей или функций. Отображение элементов интерфейса зависело от проверки прав через функцию canAccess, что обеспечивало гибкость и безопасность на клиенте.