シンプルなモンキーパッチでこれを達成できましたが、cancan を使用していました。cancan ヘルパー メソッド 'can?' うまくいきましたが、「current_admin_user」をテストしていませんでした。試してみてください
module ActiveAdmin
module Views
class PaginatedCollection
def build_download_format_links(formats = self.class.formats)
params = request.query_parameters.except :format, :commit
links = formats.map { |format| link_to format.to_s.upcase, params: params, format: format }
unless current_admin_user.limited?
div :class => "download_links" do
text_node [I18n.t('active_admin.download'), links].flatten.join(" ").html_safe
end
end
end
end
end
end
upd: current_admin_user で試してみましたが、うまくいきました。
また、フォーマットを制限する必要がある場合は、「制限付き」メソッドを使用して、このモジュールでフォーマット メソッドを再定義できます。
module ActiveAdmin
module Views
class PaginatedCollection
def formats
if current_admin_user.limited?
@formats ||= [:csv] # anything you need for limited users
else
@formats ||= [:csv, :xml, :json]
end
@formats.clone
end
end
end
end