summaryrefslogtreecommitdiff
path: root/lib/gitlab/tracking/helpers/weak_password_error_event.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/tracking/helpers/weak_password_error_event.rb')
-rw-r--r--lib/gitlab/tracking/helpers/weak_password_error_event.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/gitlab/tracking/helpers/weak_password_error_event.rb b/lib/gitlab/tracking/helpers/weak_password_error_event.rb
new file mode 100644
index 00000000000..beb6119e3f7
--- /dev/null
+++ b/lib/gitlab/tracking/helpers/weak_password_error_event.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Tracking
+ module Helpers
+ module WeakPasswordErrorEvent
+ # Tracks information if a user record has a weak password.
+ # No-op unless the error is present.
+ #
+ # Captures a minimal set of information, so that GitLab
+ # remains unaware of which users / demographics are attempting
+ # to choose weak passwords.
+ def track_weak_password_error(user, controller, method_name)
+ return unless user.errors[:password].grep(/must not contain commonly used combinations.*/).any?
+
+ Gitlab::Tracking.event(
+ 'Gitlab::Tracking::Helpers::WeakPasswordErrorEvent',
+ 'track_weak_password_error',
+ controller: controller,
+ method: method_name
+ )
+ end
+ end
+ end
+ end
+end