discourse/app/controllers/user_actions_controller.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

54 lines
1.6 KiB
Ruby
Raw Permalink Normal View History

# frozen_string_literal: true
2013-02-06 03:16:51 +08:00
class UserActionsController < ApplicationController
def index
user_actions_params.require(:username)
2013-05-27 09:02:58 +08:00
user =
fetch_user_from_params(
include_inactive:
current_user.try(:staff?) || (current_user && SiteSetting.show_inactive_accounts),
)
offset = [0, user_actions_params[:offset].to_i].max
action_types = (user_actions_params[:filter] || "").split(",").map(&:to_i)
limit = user_actions_params.fetch(:limit, 30).to_i
raise Discourse::NotFound unless guardian.can_see_profile?(user)
raise Discourse::NotFound unless guardian.can_see_user_actions?(user, action_types)
opts = {
user_id: user.id,
user: user,
2019-08-20 18:03:16 +08:00
offset: offset,
limit: limit,
action_types: action_types,
guardian: guardian,
ignore_private_messages: params[:filter].blank?,
acting_username: params[:acting_username],
}
2015-04-22 02:36:46 +08:00
stream = UserAction.stream(opts).to_a
response = { user_actions: serialize_data(stream, UserActionSerializer) }
if guardian.can_lazy_load_categories?
category_ids = stream.map(&:category_id).compact.uniq
categories = Category.secured(guardian).with_parents(category_ids)
response[:categories] = serialize_data(categories, CategoryBadgeSerializer)
end
render json: response
2013-02-06 03:16:51 +08:00
end
def show
2013-05-27 09:02:58 +08:00
params.require(:id)
render_serialized(UserAction.stream_item(params[:id], guardian), UserActionSerializer)
2013-02-06 03:16:51 +08:00
end
private
def user_actions_params
@user_actions_params ||= params.permit(:username, :filter, :offset, :acting_username, :limit)
end
2013-02-06 03:16:51 +08:00
end