2019-05-02 17:17:27 -05:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2013-02-05 13:16:51 -06:00
|
|
|
class UserActionsController < ApplicationController
|
2014-05-09 10:49:39 -05:00
|
|
|
|
2013-02-05 13:16:51 -06:00
|
|
|
def index
|
2013-05-26 20:02:58 -05:00
|
|
|
params.require(:username)
|
2019-01-15 20:40:16 -06:00
|
|
|
params.permit(:filter, :offset, :acting_username)
|
2013-05-26 20:02:58 -05:00
|
|
|
|
2015-12-08 23:23:15 -06:00
|
|
|
per_chunk = 30
|
2013-05-20 01:44:06 -05:00
|
|
|
|
2017-12-07 00:23:27 -06:00
|
|
|
user = fetch_user_from_params(include_inactive: current_user.try(:staff?) || (current_user && SiteSetting.show_inactive_accounts))
|
2018-10-10 12:00:08 -05:00
|
|
|
raise Discourse::NotFound unless guardian.can_see_profile?(user)
|
|
|
|
|
2017-12-07 15:16:53 -06:00
|
|
|
action_types = (params[:filter] || "").split(",").map(&:to_i)
|
2013-05-22 10:20:16 -05:00
|
|
|
|
2019-01-15 20:40:16 -06:00
|
|
|
opts = {
|
|
|
|
user_id: user.id,
|
|
|
|
user: user,
|
|
|
|
offset: params[:offset].to_i,
|
|
|
|
limit: per_chunk,
|
|
|
|
action_types: action_types,
|
|
|
|
guardian: guardian,
|
|
|
|
ignore_private_messages: params[:filter] ? false : true,
|
|
|
|
acting_username: params[:acting_username]
|
|
|
|
}
|
2015-04-21 13:36:46 -05:00
|
|
|
|
2019-01-03 11:03:01 -06:00
|
|
|
stream = UserAction.stream(opts).to_a
|
2016-11-29 00:55:39 -06:00
|
|
|
if stream.length == 0 && (help_key = params['no_results_help_key'])
|
|
|
|
if user.id == guardian.user.try(:id)
|
|
|
|
help_key += ".self"
|
|
|
|
else
|
2016-11-29 01:01:09 -06:00
|
|
|
help_key += ".others"
|
2016-11-29 00:55:39 -06:00
|
|
|
end
|
|
|
|
render json: {
|
|
|
|
user_action: [],
|
|
|
|
no_results_help: I18n.t(help_key)
|
|
|
|
}
|
|
|
|
else
|
|
|
|
render_serialized(stream, UserActionSerializer, root: 'user_actions')
|
|
|
|
end
|
|
|
|
|
2013-02-05 13:16:51 -06:00
|
|
|
end
|
|
|
|
|
|
|
|
def show
|
2013-05-26 20:02:58 -05:00
|
|
|
params.require(:id)
|
2014-08-29 12:46:50 -05:00
|
|
|
render_serialized(UserAction.stream_item(params[:id], guardian), UserActionSerializer)
|
2013-02-05 13:16:51 -06:00
|
|
|
end
|
|
|
|
|
2014-05-12 05:02:32 -05:00
|
|
|
def private_messages
|
|
|
|
# DO NOT REMOVE
|
2015-12-09 18:39:33 -06:00
|
|
|
# TODO should preload messages to avoid extra http req
|
2014-05-12 05:02:32 -05:00
|
|
|
end
|
|
|
|
|
2013-02-05 13:16:51 -06:00
|
|
|
end
|