| 
									
										
										
										
											2018-07-13 00:16:06 +00:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module Admin | 
					
						
							|  |  |  |   class RelaysController < BaseController | 
					
						
							|  |  |  |     before_action :set_relay, except: [:index, :new, :create] | 
					
						
							| 
									
										
										
										
											2019-09-27 00:13:34 +00:00
										 |  |  |     before_action :require_signatures_enabled!, only: [:new, :create, :enable] | 
					
						
							| 
									
										
										
										
											2018-07-13 00:16:06 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def index | 
					
						
							|  |  |  |       authorize :relay, :update? | 
					
						
							|  |  |  |       @relays = Relay.all | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def new | 
					
						
							|  |  |  |       authorize :relay, :update? | 
					
						
							| 
									
										
										
										
											2019-09-27 00:13:34 +00:00
										 |  |  |       @relay = Relay.new | 
					
						
							| 
									
										
										
										
											2018-07-13 00:16:06 +00:00
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def create | 
					
						
							|  |  |  |       authorize :relay, :update? | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       @relay = Relay.new(resource_params) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       if @relay.save | 
					
						
							|  |  |  |         @relay.enable! | 
					
						
							|  |  |  |         redirect_to admin_relays_path | 
					
						
							|  |  |  |       else | 
					
						
							|  |  |  |         render action: :new | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def destroy | 
					
						
							|  |  |  |       authorize :relay, :update? | 
					
						
							|  |  |  |       @relay.destroy | 
					
						
							|  |  |  |       redirect_to admin_relays_path | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def enable | 
					
						
							|  |  |  |       authorize :relay, :update? | 
					
						
							|  |  |  |       @relay.enable! | 
					
						
							|  |  |  |       redirect_to admin_relays_path | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def disable | 
					
						
							|  |  |  |       authorize :relay, :update? | 
					
						
							|  |  |  |       @relay.disable! | 
					
						
							|  |  |  |       redirect_to admin_relays_path | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     private | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def set_relay | 
					
						
							|  |  |  |       @relay = Relay.find(params[:id]) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def resource_params | 
					
						
							|  |  |  |       params.require(:relay).permit(:inbox_url) | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2019-09-27 00:13:34 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def require_signatures_enabled! | 
					
						
							|  |  |  |       redirect_to admin_relays_path, alert: I18n.t('admin.relays.signatures_not_enabled') if authorized_fetch_mode? | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2018-07-13 00:16:06 +00:00
										 |  |  |   end | 
					
						
							|  |  |  | end |