Module: RecordUserLastActivity

Extended by:
ActiveSupport::Concern
Includes:
CookiesHelper
Included in:
Dashboard::ApplicationController, Groups::BoardsController, GroupsController, Projects::IssuesController, Projects::MergeRequestsController, ProjectsController
Defined in:
app/controllers/concerns/record_user_last_activity.rb

Overview

RecordUserLastActivity

Controller concern that updates the ‘last_activity_on` field of `users` for any authenticated GET request. The DB update will only happen once per day.

In order to determine if you should include this concern or not, please check the description and discussion on this issue: gitlab.com/gitlab-org/gitlab-foss/issues/54947

Constant Summary

Constants included from CookiesHelper

CookiesHelper::COOKIE_TYPE_ENCRYPTED, CookiesHelper::COOKIE_TYPE_PERMANENT

Instance Method Summary collapse

Methods included from CookiesHelper

#set_secure_cookie

Instance Method Details

#set_member_last_activityObject



28
29
30
31
32
33
34
35
36
37
38
# File 'app/controllers/concerns/record_user_last_activity.rb', line 28

def set_member_last_activity
  context = @group || @project # rubocop:disable Gitlab/ModuleWithInstanceVariables -- This is a controller concern
  return unless current_user && context && context.persisted?

  Gitlab::EventStore.publish(
    Users::ActivityEvent.new(data: {
      user_id: current_user.id,
      namespace_id: context.root_ancestor.id
    })
  )
end

#set_user_last_activityObject



19
20
21
22
23
24
25
26
# File 'app/controllers/concerns/record_user_last_activity.rb', line 19

def set_user_last_activity
  return unless request.get?
  return if Gitlab::Database.read_only?
  return unless current_user

  # TODO: add namespace & project - https://gitlab.com/gitlab-org/gitlab/-/issues/387952
  Users::ActivityService.new(author: current_user).execute
end