Часто видел системы, в которых:

  • На бекенде у пользователя есть определенный набор прав доступа, основанный на ролях. (Ivan:Admin, Vadim: Moderator)
  • На фронтенде просто получают текущую роль пользователя и на основе нее рассчитываю, а какие же кнопки дать в доступ текущему пользователю Рекомендую использовать вместо этого на фронтенде ACL подход Пример:
  • Пользователь заходит на страницу со списком новостей
  • С бекенда приходит набор ДЕЙСТВИЙ, а не ролей пользователя: {read: true, write: true, delete: false}
  • На основании этих действий уже рисуем кнопки Чем же это проще? Если на стороне бекенда меняется бизнес-логика, мы ничего не переписываем на фронтенде.