Лучший метод для управления проверкой ролей и разрешений в перьях - PullRequest
0 голосов
/ 15 октября 2018

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

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

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

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

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

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

Цели

  1. Создать таблицу «Роль» в базе данных, например: «главный исполнительный директор», «личный состав», «руководитель группы», «пользователь» и т. Д. (я могу справиться с этим)
  2. Создать таблицу «Разрешения» в базе данных и вставить sи т. д. из начальных доступных ролей, например: «создать пользователя», «список пользователей», «панель просмотра», «редактировать профиль» и т. д. (я могу справиться с этим)
  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')
    ]
  }
});

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

...