У меня есть плагин, который добавляет модель server с полем user_id. Я хочу, чтобы только владелец server мог выполнять POST (или, возможно, лучше PUT? — действие будет запускать пересборку экземпляра Discourse через командную строку на их сервере; я не уверен, что будет лучшей практикой.)
В config/routes.rb это выглядит так:
post “/upgrade/:id” => “servers#queue_upgrade”, constraints: PfaffmanagerConstraint.new
Рекомендуется ли проверять path_parameters[:action] в методе matches? файла pfaffmanager_constraint.rb и применять разрешения там, или же это следует делать в servers_controller.rb?
Кроме того, я думаю, что на самом деле мне стоит перенести этот маршрут в пространство имен namespace :user. Возможно, после решения этой задачи проблема решится сама собой, но сейчас код почти работает, и я хотел бы позволить другим людям протестировать его.
Маршрут Rails здесь:
https://github.com/pfaffman/discourse-pfaffmanager/blob/master/config/routes.rb#L12
А мой контроллер пытается применять разрешения:
Однако мой тест возвращает статус 200, когда запрос post делает другой пользователь:
Похоже, мне нужно каким-то образом заставить Ember обратить на это внимание?