]> cat aescling's git repositories - mastodon.git/blob - app/controllers/admin/relays_controller.rb
Fix relays UI being available in whitelist/secure mode (#11963)
[mastodon.git] / app / controllers / admin / relays_controller.rb
1 # frozen_string_literal: true
2
3 module Admin
4 class RelaysController < BaseController
5 before_action :set_relay, except: [:index, :new, :create]
6 before_action :require_signatures_enabled!, only: [:new, :create, :enable]
7
8 def index
9 authorize :relay, :update?
10 @relays = Relay.all
11 end
12
13 def new
14 authorize :relay, :update?
15 @relay = Relay.new
16 end
17
18 def create
19 authorize :relay, :update?
20
21 @relay = Relay.new(resource_params)
22
23 if @relay.save
24 @relay.enable!
25 redirect_to admin_relays_path
26 else
27 render action: :new
28 end
29 end
30
31 def destroy
32 authorize :relay, :update?
33 @relay.destroy
34 redirect_to admin_relays_path
35 end
36
37 def enable
38 authorize :relay, :update?
39 @relay.enable!
40 redirect_to admin_relays_path
41 end
42
43 def disable
44 authorize :relay, :update?
45 @relay.disable!
46 redirect_to admin_relays_path
47 end
48
49 private
50
51 def set_relay
52 @relay = Relay.find(params[:id])
53 end
54
55 def resource_params
56 params.require(:relay).permit(:inbox_url)
57 end
58
59 def require_signatures_enabled!
60 redirect_to admin_relays_path, alert: I18n.t('admin.relays.signatures_not_enabled') if authorized_fetch_mode?
61 end
62 end
63 end
This page took 0.082665 seconds and 4 git commands to generate.