Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/audit/null_author.rb')
-rw-r--r--lib/gitlab/audit/null_author.rb36
1 files changed, 36 insertions, 0 deletions
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