Добрый вечер. В данный момент пишу (пытаюсь) систему команды. Т.е. мы с фронтенда дергаем апи сервера, прикрепляем/открепляем существующих юзеров от проекта, и также несложный поиск.
Примерно так схематично должно всё выглядеть:
Участник [имя] [кнопка удаления участника]
Участник [имя] [кнопка удаления участника]
...
[форма поиска]
Найденный пользователь [Имя] [кнопка добавления пльзователя в участники]
...
Непосредственно компоненты участников, их удаление и добавление по поиску, самой формы поиска - я реализовал.
Но я столкнулся со сложностью реализации, когда существует еще понятие роли пользователя в проекте:
- Создатель проекта - не может удалить себя, соответственно и кнопки удаления для него быть не должно видно, но может добавлять остальных юзеров.
- Менеджер проекта - Может добавлять и удалять юзеров, но не может удалять создателя (но себя удалить может).
- Обычный участник - Может удалить себя, но при этом не имеет доступа к компоненту поиска и соответственно, добавления других юзеров.
Но еще нужно каким-то образом реализовать приписки к пользователям ('creator'/'manager'). На сервере не проблема создать определенный ответ - ответ со списком ролей/bool ролей и т.д., но какой-бы способ я не выдумывал - либо реализация на фронтенде получается очень корявой, либо бэкэнд формирует слишком избыточный ответ, как со списком ролей, так и с флагами этих ролей, но и при таком случае во фронтенде у нас появляются крупные конструкции ифов.
Возможно есть какие-то best practice реализации подобного вывода, или может посоветуйте как лучше сделать?