Adding known_users method to Spree::User

This commit is contained in:
Rob Harrington
2015-01-30 12:48:21 +11:00
parent dde1a27d3a
commit b73619d168
2 changed files with 24 additions and 0 deletions

View File

@@ -11,6 +11,12 @@ Spree.user_class.class_eval do
validate :limit_owned_enterprises
def known_users
Spree::User
.includes(:enterprises)
.where("enterprises.id IN (SELECT enterprise_id FROM enterprise_roles WHERE user_id = ?)", id)
end
def build_enterprise_roles
Enterprise.all.each do |enterprise|
unless self.enterprise_roles.find_by_enterprise_id enterprise.id

View File

@@ -30,4 +30,22 @@ describe Spree.user_class do
create(:user)
end
end
describe "known_users" do
let(:u1) { create(:user) }
let(:u2) { create(:user) }
let(:u3) { create(:user) }
let!(:e1) { create(:enterprise, owner: u1, users: [u1, u2]) }
it "returns a list of users which manage shared enterprises" do
t1 = Time.now
expect(u1.known_users).to include u1, u2
expect(u1.known_users).to_not include u3
expect(u2.known_users).to include u1,u2
expect(u2.known_users).to_not include u3
expect(u3.known_users).to_not include u1,u2,u3
t2 = Time.now
binding.pry
end
end
end