diff options
Diffstat (limited to 'app/models/members/group_member.rb')
-rw-r--r-- | app/models/members/group_member.rb | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/app/models/members/group_member.rb b/app/models/members/group_member.rb index ada89345a7f..52b9c3a80e3 100644 --- a/app/models/members/group_member.rb +++ b/app/models/members/group_member.rb @@ -5,11 +5,10 @@ class GroupMember < Member include CreatedAtFilterable SOURCE_TYPE = 'Namespace' - SOURCE_TYPE_FORMAT = /\ANamespace\z/.freeze + SOURCE_TYPE_FORMAT = /\ANamespace\z/ belongs_to :group, foreign_key: 'source_id' alias_attribute :namespace_id, :source_id - delegate :update_two_factor_requirement, to: :user, allow_nil: true # Make sure group member points only to group as it source attribute :source_type, default: SOURCE_TYPE @@ -26,6 +25,16 @@ class GroupMember < Member attr_accessor :last_owner + def update_two_factor_requirement + return unless user + + Gitlab::Database::QueryAnalyzers::PreventCrossDatabaseModification.temporary_ignore_tables_in_transaction( + %w[users user_details user_preferences], url: 'https://gitlab.com/gitlab-org/gitlab/-/issues/424288' + ) do + user.update_two_factor_requirement + end + end + # For those who get to see a modal with a role dropdown, here are the options presented def self.permissible_access_level_roles(_, _) # This method is a stopgap in preparation for https://gitlab.com/gitlab-org/gitlab/-/issues/364087 |