diff options
author | Claire <claire.github-309c@sitedethib.com> | 2023-04-22 10:06:11 +0200 |
---|---|---|
committer | Claire <claire.github-309c@sitedethib.com> | 2023-04-22 10:06:11 +0200 |
commit | abfdafef1ededdb87f018414edd6b25fa9a70525 (patch) | |
tree | 7a9855d79d125333a6b1307215b73dd507475320 /app/controllers/api/v1/admin/trends/statuses_controller.rb | |
parent | f30c5e7f15f967019245d2c78f3c2e89800eb838 (diff) | |
parent | 4db8230194258a9a1c3d17d7261608515f3f2067 (diff) |
Merge branch 'main' into glitch-soc/merge-upstream
Conflicts: - `app/controllers/auth/setup_controller.rb`: Upstream removed a method close to a glitch-soc theming-related method. Removed the method like upstream did.
Diffstat (limited to 'app/controllers/api/v1/admin/trends/statuses_controller.rb')
-rw-r--r-- | app/controllers/api/v1/admin/trends/statuses_controller.rb | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/app/controllers/api/v1/admin/trends/statuses_controller.rb b/app/controllers/api/v1/admin/trends/statuses_controller.rb index c39f77363..34b6580df 100644 --- a/app/controllers/api/v1/admin/trends/statuses_controller.rb +++ b/app/controllers/api/v1/admin/trends/statuses_controller.rb @@ -1,7 +1,36 @@ # frozen_string_literal: true class Api::V1::Admin::Trends::StatusesController < Api::V1::Trends::StatusesController - before_action -> { authorize_if_got_token! :'admin:read' } + include Authorization + + before_action -> { authorize_if_got_token! :'admin:read' }, only: :index + before_action -> { authorize_if_got_token! :'admin:write' }, except: :index + + after_action :verify_authorized, except: :index + + def index + if current_user&.can?(:manage_taxonomies) + render json: @statuses, each_serializer: REST::Admin::Trends::StatusSerializer + else + super + end + end + + def approve + authorize [:admin, :status], :review? + + status = Status.find(params[:id]) + status.update(trendable: true) + render json: status, serializer: REST::Admin::Trends::StatusSerializer + end + + def reject + authorize [:admin, :status], :review? + + status = Status.find(params[:id]) + status.update(trendable: false) + render json: status, serializer: REST::Admin::Trends::StatusSerializer + end private |