Лучший метод для управления ролями и проверкой прав доступа в feathersJs
Я новичок в перьях, и у меня есть немного путаницы, реализующей систему ролей на основе функций в перьях.
В настоящее время мне не нужна помощь кода, мне нужны ваши мысли и предложения для моей ситуации.
Сначала я хотел бы рассказать вам, чего я достиг на данный момент.
- Базовая панель администратора с FeathersJs+VueJs+Mongoose.
- Аутентификация пользователя в перьях + страница входа в UI
- Экран панели пользователя, прошедшего проверку подлинности
- Экран редактирования профиля пользователя с проверкой подлинности
- Список всех пользователей
- Экран редактирования пользователя
- Экран удаления пользователя
В общем, я закончил пользовательский модуль для моего проекта.
Теперь я пытаюсь установить роли и разрешения для пользователей.
цели
- Создайте таблицу 'Role' в базе данных, например:'ceo', 'pm', 'team-lead', 'user' и т. Д.(Я могу справиться с этим)
- Создать таблицу "Разрешения" в базе данных и вставить набор начальных доступных ролей, например: "создать пользователя", "список пользователей", "панель просмотра", "редактировать профиль" и т. Д.(Я могу справиться с этим)
- Создайте экран для создания / редактирования ролей и назначьте набор доступных разрешений для роли. (я могу с этим справиться)
- Измените существующий экран создания / редактирования пользователя, чтобы назначить роль пользователям.(я могу с этим справиться)
Теперь, на стороне перьев, я планирую создать функцию, возвращающую все разрешения, доступные для аутентифицированного пользователя, и с помощью этой функции я создаю хук, проверяющий разрешение, и использую его как хук для сервисов.
// 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')
]
}
});
Мой вопрос... я делаю это правильно? Любые предложения или исправления очень ценятся.. Заранее спасибо..