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')
-rw-r--r--lib/gitlab/audit/deleted_author.rb8
-rw-r--r--lib/gitlab/audit/null_author.rb36
-rw-r--r--lib/gitlab/audit/unauthenticated_author.rb17
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