Мне нужно реализовать RBAC в приложении React.Я прочитал статью - https://auth0.com/blog/role-based-access-control-rbac-and-react-apps/ - и понял, как это делается, но одну вещь, которую я не понял, это как автоматизировать сбор информации обо всех защищенных действиях для редактирования ролей (добавить эти разрешения и удалить)?
Я понял: есть какое-то защищенное действие, я завернул его в какой-то HOC и проверил, видит ли его пользователь или нет.Теперь давайте посмотрим на это с другой точки зрения.Мне нужно иметь возможность настраивать роли.Я открываю редактор, создаю имя для роли и хочу добавить некоторые разрешения для пользователя.Я должен выбрать их где-нибудь, поэтому список (журнал, таблица - как вы хотите) всех действий, для которых я хочу реализовать RBAC, становится моим центром Вселенной.Так что каждый раз, когда мне нужна защищенная кнопка (маршрут), я должен добавить ее идентификатор в некоторый список.Это сложное, ненужное действие.Какой механизм я могу использовать, чтобы избежать использования списка действий, описанных выше?
Мои мысли таковы: Для защищенных компонентов я добавляю к их имени некоторый постфикс -sec (Component-sec.js).Внутри них я создаю свойства со своим именем и описанием.Затем на странице администратора я показываю все разрешения, которые являются компонентами с постфиксами (анализируя их имена, КАК? Я никогда не использовал отражение в JS), и показываю их имена и описания (свойства name и description).Это об автоматизации в настройке.Если говорить о разрешении и отказе в работе, здесь я могу использовать некоторый HOC (AuthComponent), где я могу проверить разрешение.
class MyComponent extends AuthComponent {}
class AuthComponent extends React.component {}
Что вы думаете об этом?Может быть, есть более эффективные способы сбора и обработки разрешений?