diff options
author | Stan Hu <stanhu@gmail.com> | 2018-01-15 08:10:48 +0300 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2018-01-15 09:22:06 +0300 |
commit | 0d187a9a65c5a8eae4bcb09228270cb974abd466 (patch) | |
tree | 7a958c51641edb5c8606380d673587f35deeeb8f /app | |
parent | 74f2f9b30fb1972a26481072486b358eb943309f (diff) |
Log and send a system hook if a blocked user fails to login
Closes #41633
Diffstat (limited to 'app')
-rw-r--r-- | app/models/user.rb | 8 | ||||
-rw-r--r-- | app/services/system_hooks_service.rb | 5 |
2 files changed, 9 insertions, 4 deletions
diff --git a/app/models/user.rb b/app/models/user.rb index 4484ee9ff4c..09aa5a7b318 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -53,7 +53,10 @@ class User < ActiveRecord::Base serialize :otp_backup_codes, JSON # rubocop:disable Cop/ActiveRecordSerialize devise :lockable, :recoverable, :rememberable, :trackable, - :validatable, :omniauthable, :confirmable, :registerable + :validatable, :omniauthable, :confirmable, :registerable + + BLOCKED_MESSAGE = "Your account has been blocked. Please contact your GitLab " \ + "administrator if you think this is an error.".freeze # Override Devise::Models::Trackable#update_tracked_fields! # to limit database writes to at most once every hour @@ -217,8 +220,7 @@ class User < ActiveRecord::Base end def inactive_message - "Your account has been blocked. Please contact your GitLab " \ - "administrator if you think this is an error." + BLOCKED_MESSAGE end end end diff --git a/app/services/system_hooks_service.rb b/app/services/system_hooks_service.rb index 690918b4a00..af6d77ef5e8 100644 --- a/app/services/system_hooks_service.rb +++ b/app/services/system_hooks_service.rb @@ -41,8 +41,11 @@ class SystemHooksService when User data.merge!(user_data(model)) - if event == :rename + case event + when :rename data[:old_username] = model.username_was + when :failed_login + data[:state] = model.state end when ProjectMember data.merge!(project_member_data(model)) |