* Test: テストを先に作成 * Fix: テスト不備 * Wip: フレンドサーバーのテストを修正 * Wip: エラーを修正 * 項目のラベリングを修正 * 新しい設定が変更できないのを修正 * Wip: 削除時の処理を修正 * フレンド自動承認設定を削除 * Fix: 申請を受けたドメインのINBOXが空になる問題 * Change: #75 フレンドでないサーバーからのローカル公開を未収載に変換 (#77)
93 lines
2.1 KiB
Ruby
93 lines
2.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Admin
|
|
class FriendServersController < BaseController
|
|
before_action :set_friend, except: [:index, :new, :create]
|
|
before_action :warn_signatures_not_enabled!, only: [:new, :edit, :create, :follow, :unfollow, :accept, :reject]
|
|
|
|
def index
|
|
authorize :friend_server, :update?
|
|
@friends = FriendDomain.all
|
|
end
|
|
|
|
def new
|
|
authorize :friend_server, :update?
|
|
@friend = FriendDomain.new
|
|
end
|
|
|
|
def edit
|
|
authorize :friend_server, :update?
|
|
end
|
|
|
|
def create
|
|
authorize :friend_server, :update?
|
|
|
|
@friend = FriendDomain.new(resource_params)
|
|
|
|
if @friend.save
|
|
@friend.follow!
|
|
redirect_to admin_friend_servers_path
|
|
else
|
|
render action: :new
|
|
end
|
|
end
|
|
|
|
def update
|
|
authorize :friend_server, :update?
|
|
|
|
if @friend.update(update_resource_params)
|
|
redirect_to admin_friend_servers_path
|
|
else
|
|
render action: :edit
|
|
end
|
|
end
|
|
|
|
def destroy
|
|
authorize :friend_server, :update?
|
|
@friend.destroy
|
|
redirect_to admin_friend_servers_path
|
|
end
|
|
|
|
def follow
|
|
authorize :friend_server, :update?
|
|
@friend.follow!
|
|
render action: :edit
|
|
end
|
|
|
|
def unfollow
|
|
authorize :friend_server, :update?
|
|
@friend.unfollow!
|
|
render action: :edit
|
|
end
|
|
|
|
def accept
|
|
authorize :friend_server, :update?
|
|
@friend.accept!
|
|
render action: :edit
|
|
end
|
|
|
|
def reject
|
|
authorize :friend_server, :update?
|
|
@friend.reject!
|
|
render action: :edit
|
|
end
|
|
|
|
private
|
|
|
|
def set_friend
|
|
@friend = FriendDomain.find(params[:id])
|
|
end
|
|
|
|
def resource_params
|
|
params.require(:friend_domain).permit(:domain, :inbox_url, :available, :pseudo_relay, :delivery_local, :unlocked, :allow_all_posts)
|
|
end
|
|
|
|
def update_resource_params
|
|
params.require(:friend_domain).permit(:inbox_url, :available, :pseudo_relay, :delivery_local, :unlocked, :allow_all_posts)
|
|
end
|
|
|
|
def warn_signatures_not_enabled!
|
|
flash.now[:error] = I18n.t('admin.relays.signatures_not_enabled') if authorized_fetch_mode?
|
|
end
|
|
end
|
|
end
|