Allows manually verifying users to level 2 without specifying a phone

This commit is contained in:
kikito
2015-10-13 17:14:00 +02:00
parent 26ff32f148
commit 8d82ca05c0
2 changed files with 15 additions and 7 deletions

View File

@@ -3,9 +3,9 @@ module Verification
included do included do
scope :level_three_verified, -> { where.not(verified_at: nil) } scope :level_three_verified, -> { where.not(verified_at: nil) }
scope :level_two_verified, -> { where("users.confirmed_phone IS NOT NULL AND users.residence_verified_at IS NOT NULL") } scope :level_two_verified, -> { where("users.level_two_verified_at IS NOT NULL OR (users.confirmed_phone IS NOT NULL AND users.residence_verified_at IS NOT NULL)") }
scope :level_two_or_three_verified, -> { where("users.verified_at IS NOT NULL OR (users.confirmed_phone IS NOT NULL AND users.residence_verified_at IS NOT NULL)") } scope :level_two_or_three_verified, -> { where("users.verified_at IS NOT NULL OR users.level_two_verified_at IS NOT NULL OR (users.confirmed_phone IS NOT NULL AND users.residence_verified_at IS NOT NULL)") }
scope :unverified, -> { where("users.verified_at IS NULL AND (users.residence_verified_at IS NULL OR users.confirmed_phone IS NULL)") } scope :unverified, -> { where("users.verified_at IS NULL AND (users.level_two_verified_at IS NULL AND (users.residence_verified_at IS NULL OR users.confirmed_phone IS NULL))") }
scope :incomplete_verification, -> { where("(users.residence_verified_at IS NULL AND users.failed_census_calls_count > ?) OR (users.residence_verified_at IS NOT NULL AND (users.unconfirmed_phone IS NULL OR users.confirmed_phone IS NULL))", 0) } scope :incomplete_verification, -> { where("(users.residence_verified_at IS NULL AND users.failed_census_calls_count > ?) OR (users.residence_verified_at IS NOT NULL AND (users.unconfirmed_phone IS NULL OR users.confirmed_phone IS NULL))", 0) }
end end
@@ -30,7 +30,7 @@ module Verification
end end
def level_two_verified? def level_two_verified?
residence_verified? && sms_verified? level_two_verified_at.present? || (residence_verified? && sms_verified?)
end end
def level_three_verified? def level_three_verified?

View File

@@ -19,10 +19,12 @@ shared_examples_for "verifiable" do
user1 = create(:user, confirmed_phone: "123456789", residence_verified_at: Time.now) user1 = create(:user, confirmed_phone: "123456789", residence_verified_at: Time.now)
user2 = create(:user, confirmed_phone: "123456789", residence_verified_at: nil) user2 = create(:user, confirmed_phone: "123456789", residence_verified_at: nil)
user3 = create(:user, confirmed_phone: nil, residence_verified_at: Time.now) user3 = create(:user, confirmed_phone: nil, residence_verified_at: Time.now)
user4 = create(:user, level_two_verified_at: Time.now)
expect(model.level_two_verified).to include(user1) expect(model.level_two_verified).to include(user1)
expect(model.level_two_verified).to_not include(user2) expect(model.level_two_verified).to_not include(user2)
expect(model.level_two_verified).to_not include(user3) expect(model.level_two_verified).to_not include(user3)
expect(model.level_two_verified).to include(user4)
end end
end end
@@ -32,12 +34,13 @@ shared_examples_for "verifiable" do
user2 = create(:user, verified_at: Time.now) user2 = create(:user, verified_at: Time.now)
user3 = create(:user, confirmed_phone: "123456789", residence_verified_at: nil) user3 = create(:user, confirmed_phone: "123456789", residence_verified_at: nil)
user4 = create(:user, confirmed_phone: nil, residence_verified_at: Time.now) user4 = create(:user, confirmed_phone: nil, residence_verified_at: Time.now)
user5 = create(:user, level_two_verified_at: Time.now)
expect(model.level_two_or_three_verified).to include(user1) expect(model.level_two_or_three_verified).to include(user1)
expect(model.level_two_or_three_verified).to include(user2) expect(model.level_two_or_three_verified).to include(user2)
expect(model.level_two_or_three_verified).to_not include(user3) expect(model.level_two_or_three_verified).to_not include(user3)
expect(model.level_two_or_three_verified).to_not include(user4) expect(model.level_two_or_three_verified).to_not include(user4)
expect(model.level_two_or_three_verified).to include(user5)
end end
end end
@@ -47,11 +50,13 @@ shared_examples_for "verifiable" do
user2 = create(:user, verified_at: nil, residence_verified_at: nil, confirmed_phone: "123456789") user2 = create(:user, verified_at: nil, residence_verified_at: nil, confirmed_phone: "123456789")
user3 = create(:user, verified_at: nil, residence_verified_at: Time.now, confirmed_phone: nil) user3 = create(:user, verified_at: nil, residence_verified_at: Time.now, confirmed_phone: nil)
user4 = create(:user, verified_at: Time.now, residence_verified_at: Time.now, confirmed_phone: "123456789") user4 = create(:user, verified_at: Time.now, residence_verified_at: Time.now, confirmed_phone: "123456789")
user5 = create(:user, level_two_verified_at: Time.now)
expect(model.unverified).to include(user1) expect(model.unverified).to include(user1)
expect(model.unverified).to include(user2) expect(model.unverified).to include(user2)
expect(model.unverified).to include(user3) expect(model.unverified).to include(user3)
expect(model.unverified).to_not include(user4) expect(model.unverified).to_not include(user4)
expect(model.unverified).to_not include(user5)
end end
end end
@@ -90,7 +95,10 @@ shared_examples_for "verifiable" do
expect(user.sms_verified?).to eq(false) expect(user.sms_verified?).to eq(false)
end end
it "level_two_verified? is true only if residence_verified_at and confirmed_phone" do it "level_two_verified? is true if manually set, or if residence_verified_at and confirmed_phone" do
user = create(:user, level_two_verified_at: Time.now)
expect(user.level_two_verified?).to eq(true)
user = create(:user, confirmed_phone: "123456789", residence_verified_at: Time.now) user = create(:user, confirmed_phone: "123456789", residence_verified_at: Time.now)
expect(user.level_two_verified?).to eq(true) expect(user.level_two_verified?).to eq(true)