forked from specter/mastodon
ac33f1aedd
* Fix account tags not being saved correctly
Regression from f371b32
Fix Tag#discoverable not returning tags where listable is nil instead of true
Add notice when saving hashtags in admin UI
Change public hashtag and directory pages to return 404 for forbidden tags
* Remove unused locale string
53 lines
1.2 KiB
Ruby
53 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Admin
|
|
class TagsController < BaseController
|
|
before_action :set_tags, only: :index
|
|
before_action :set_tag, except: :index
|
|
|
|
def index
|
|
authorize :tag, :index?
|
|
end
|
|
|
|
def show
|
|
authorize @tag, :show?
|
|
end
|
|
|
|
def update
|
|
authorize @tag, :update?
|
|
|
|
if @tag.update(tag_params.merge(reviewed_at: Time.now.utc))
|
|
redirect_to admin_tag_path(@tag.id), notice: I18n.t('admin.tags.updated_msg')
|
|
else
|
|
render :show
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def set_tags
|
|
@tags = filtered_tags.page(params[:page])
|
|
end
|
|
|
|
def set_tag
|
|
@tag = Tag.find(params[:id])
|
|
end
|
|
|
|
def filtered_tags
|
|
scope = Tag
|
|
scope = scope.discoverable if filter_params[:context] == 'directory'
|
|
scope = scope.reviewed if filter_params[:review] == 'reviewed'
|
|
scope = scope.pending_review if filter_params[:review] == 'pending_review'
|
|
scope.reorder(score: :desc)
|
|
end
|
|
|
|
def filter_params
|
|
params.slice(:context, :review).permit(:context, :review)
|
|
end
|
|
|
|
def tag_params
|
|
params.require(:tag).permit(:name, :trendable, :usable, :listable)
|
|
end
|
|
end
|
|
end
|