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