Лучший метод для управления ролями и проверкой прав доступа в feathersJs

Я новичок в перьях, и у меня есть немного путаницы, реализующей систему ролей на основе функций в перьях.

В настоящее время мне не нужна помощь кода, мне нужны ваши мысли и предложения для моей ситуации.

Сначала я хотел бы рассказать вам, чего я достиг на данный момент.

  • Базовая панель администратора с FeathersJs+VueJs+Mongoose.
  • Аутентификация пользователя в перьях + страница входа в UI
  • Экран панели пользователя, прошедшего проверку подлинности
  • Экран редактирования профиля пользователя с проверкой подлинности
  • Список всех пользователей
  • Экран редактирования пользователя
  • Экран удаления пользователя

В общем, я закончил пользовательский модуль для моего проекта.

Теперь я пытаюсь установить роли и разрешения для пользователей.

цели

  1. Создайте таблицу 'Role' в базе данных, например:'ceo', 'pm', 'team-lead', 'user' и т. Д.(Я могу справиться с этим)
  2. Создать таблицу "Разрешения" в базе данных и вставить набор начальных доступных ролей, например: "создать пользователя", "список пользователей", "панель просмотра", "редактировать профиль" и т. Д.(Я могу справиться с этим)
  3. Создайте экран для создания / редактирования ролей и назначьте набор доступных разрешений для роли. (я могу с этим справиться)
  4. Измените существующий экран создания / редактирования пользователя, чтобы назначить роль пользователям.(я могу с этим справиться)

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

// here 'delete-user', 'create-user', ''update-user' are some of the available permissions in database
myservice.hooks({
  before: {
   create: [
      hasPermission('create-user')
    ], 
   patch: [
      hasPermission('update-user')
    ],
    delete: [
      hasPermission('delete-user')
    ]
  }
});

Мой вопрос... я делаю это правильно? Любые предложения или исправления очень ценятся.. Заранее спасибо..

0 ответов

Другие вопросы по тегам