fix qualified names bug with Account#users_name_like
refs #CNVS-30606 Change-Id: Ief66913dfaefe856fd893df26677c9db16a2dde9 Reviewed-on: https://gerrit.instructure.com/86248 Tested-by: Jenkins Reviewed-by: Cody Cutrer <cody@instructure.com> Product-Review: James Williams <jamesw@instructure.com> QA-Review: James Williams <jamesw@instructure.com>
This commit is contained in:
parent
fd671bc0ab
commit
d47e30ce36
|
@ -176,10 +176,12 @@ class User < ActiveRecord::Base
|
|||
scope :name_like, lambda { |name|
|
||||
next none if name.strip.empty?
|
||||
scopes = []
|
||||
scopes << unscoped.where(wildcard('users.name', name))
|
||||
scopes << unscoped.where(wildcard('users.short_name', name))
|
||||
scopes << unscoped.joins(:pseudonyms).where(wildcard('pseudonyms.sis_user_id', name)).where(pseudonyms: {workflow_state: 'active'})
|
||||
scopes << unscoped.joins(:pseudonyms).where(wildcard('pseudonyms.unique_id', name)).where(pseudonyms: {workflow_state: 'active'})
|
||||
all.primary_shard.activate do
|
||||
scopes << unscoped.where(wildcard('users.name', name))
|
||||
scopes << unscoped.where(wildcard('users.short_name', name))
|
||||
scopes << unscoped.joins(:pseudonyms).where(wildcard('pseudonyms.sis_user_id', name)).where(pseudonyms: {workflow_state: 'active'})
|
||||
scopes << unscoped.joins(:pseudonyms).where(wildcard('pseudonyms.unique_id', name)).where(pseudonyms: {workflow_state: 'active'})
|
||||
end
|
||||
|
||||
scopes.map!(&:to_sql)
|
||||
self.from("(#{scopes.join("\nUNION\n")}) users")
|
||||
|
|
|
@ -1525,4 +1525,19 @@ describe Account do
|
|||
end
|
||||
end
|
||||
|
||||
describe "#users_name_like" do
|
||||
context 'sharding' do
|
||||
specs_require_sharding
|
||||
|
||||
it "should work cross-shard" do
|
||||
ActiveRecord::Base.connection.stubs(:use_qualified_names?).returns(true)
|
||||
@shard1.activate do
|
||||
@account = Account.create!
|
||||
@user = user(:name => "silly name")
|
||||
@user.account_users.create(:account => @account)
|
||||
end
|
||||
expect(@account.users_name_like("silly").first).to eq @user
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue