From ed5fa20b0c459445c71c71fe5dbcae1cf1648e6a Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Mon, 16 Jan 2017 09:44:10 +0800 Subject: [PATCH] Revert "FIX: error during signup saying "Password is the same as your current password" due to automatic group membership granting a trust level" This reverts commit 9c40657ba4a23e2bea074fb1654923b17327ab84. Calling this whenever a user is initialize is hurting us bad on performance. --- app/models/group.rb | 5 ----- app/models/user.rb | 20 +++----------------- spec/models/user_spec.rb | 11 ----------- 3 files changed, 3 insertions(+), 33 deletions(-) diff --git a/app/models/group.rb b/app/models/group.rb index ecf0033ed39..b97c34356c5 100644 --- a/app/models/group.rb +++ b/app/models/group.rb @@ -370,11 +370,6 @@ class Group < ActiveRecord::Base self.where("string_to_array(incoming_email, '|') @> ARRAY[?]", Email.downcase(email)).first end - def self.grants_by_email_domain - Group.where(automatic: false) - .where("LENGTH(COALESCE(automatic_membership_email_domains, '')) > 0") - end - def bulk_add(user_ids) if user_ids.present? Group.exec_sql("INSERT INTO group_users diff --git a/app/models/user.rb b/app/models/user.rb index 6873d60eb62..a2c3095a41c 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -932,7 +932,9 @@ class User < ActiveRecord::Base end def automatic_group_membership - Group.grants_by_email_domain.each do |group| + Group.where(automatic: false) + .where("LENGTH(COALESCE(automatic_membership_email_domains, '')) > 0") + .each do |group| domains = group.automatic_membership_email_domains.gsub('.', '\.') if self.email =~ Regexp.new("@(#{domains})$", true) && !group.users.include?(self) group.add(self) @@ -941,14 +943,6 @@ class User < ActiveRecord::Base end end - def automatic_group_from_email - Group.grants_by_email_domain.each do |group| - domains = group.automatic_membership_email_domains.gsub('.', '\.') - return group if self.email =~ Regexp.new("@(#{domains})$", true) - end - nil - end - def create_user_stat stat = UserStat.new(new_since: Time.now) stat.user_id = id @@ -978,15 +972,7 @@ class User < ActiveRecord::Base def add_trust_level # there is a possibility we did not load trust level column, skip it return unless has_attribute? :trust_level - self.trust_level ||= SiteSetting.default_trust_level - - group_from_email = automatic_group_from_email - if group_from_email&.grant_trust_level && - group_from_email.grant_trust_level > self.trust_level - self.trust_level = group_from_email.grant_trust_level - self.trust_level_locked = true - end end def update_username_lower diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 216231d482c..2ee4a3e94e9 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -1196,17 +1196,6 @@ describe User do expect(group_history.target_user).to eq(user) end - it "get attributes from the group" do - group = Fabricate(:group, automatic_membership_email_domains: "bar.com|wat.com", grant_trust_level: 1, title: "bars and wats", primary_group: true) - user = Fabricate.build(:user, trust_level: 0, email: "foo@bar.com", password: "strongpassword4Uguys") - user.password_required! - expect(user.save).to eq(true) - user.reload - expect(user.title).to eq("bars and wats") - expect(user.trust_level).to eq(1) - expect(user.trust_level_locked).to eq(true) - end - end describe "number_of_flags_given" do