Sobes.tech
Middle
28

Құқықтар матрицасы қалай ұйымдастырылғанын және қолданушы рөліне байланысты элементтердің көрсетілімін кодта қалай жүзеге асырғаныңызды айта аласыз ба?

Сұралған компаниялар
МТС БанкМТС Банк

AI-дан жауап

sobes.tech 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, что обеспечивало гибкость и безопасность на клиенте.