diff options
Diffstat (limited to 'lib/gitlab/audit')
-rw-r--r-- | lib/gitlab/audit/deleted_author.rb | 8 | ||||
-rw-r--r-- | lib/gitlab/audit/null_author.rb | 36 | ||||
-rw-r--r-- | lib/gitlab/audit/unauthenticated_author.rb | 17 |
3 files changed, 61 insertions, 0 deletions
diff --git a/lib/gitlab/audit/deleted_author.rb b/lib/gitlab/audit/deleted_author.rb new file mode 100644 index 00000000000..e3b8ad5ad21 --- /dev/null +++ b/lib/gitlab/audit/deleted_author.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Gitlab + module Audit + class DeletedAuthor < Gitlab::Audit::NullAuthor + end + end +end diff --git a/lib/gitlab/audit/null_author.rb b/lib/gitlab/audit/null_author.rb new file mode 100644 index 00000000000..0b0e6a46fe4 --- /dev/null +++ b/lib/gitlab/audit/null_author.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +module Gitlab + module Audit + class NullAuthor + attr_reader :id, :name + + # Creates an Author + # + # While tracking events that could take place even when + # a user is not logged in, (eg: downloading repo of a public project), + # we set the author_id of such events as -1 + # + # @param [Integer] id + # @param [String] name + # + # @return [Gitlab::Audit::UnauthenticatedAuthor, Gitlab::Audit::DeletedAuthor] + def self.for(id, name) + if id == -1 + Gitlab::Audit::UnauthenticatedAuthor.new(name: name) + else + Gitlab::Audit::DeletedAuthor.new(id: id, name: name) + end + end + + def initialize(id:, name:) + @id = id + @name = name + end + + def current_sign_in_ip + nil + end + end + end +end diff --git a/lib/gitlab/audit/unauthenticated_author.rb b/lib/gitlab/audit/unauthenticated_author.rb new file mode 100644 index 00000000000..84c323c1950 --- /dev/null +++ b/lib/gitlab/audit/unauthenticated_author.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +module Gitlab + module Audit + class UnauthenticatedAuthor < Gitlab::Audit::NullAuthor + def initialize(name: nil) + super(id: -1, name: name) + end + + # Events that are authored by unauthenticated users, should be + # shown as authored by `An unauthenticated user` in the UI. + def name + @name || _('An unauthenticated user') + end + end + end +end |