From e95569eb4d4d947b83433f76a8be3f7d45c38a33 Mon Sep 17 00:00:00 2001 From: Pawel Niewiadomski <11110000b@gmail.com> Date: Mon, 6 Jan 2014 11:12:07 +0100 Subject: [PATCH 1/4] get username/password with Moped 2.0.0 --- lib/mongoid/shell/properties/password.rb | 6 ++++-- lib/mongoid/shell/properties/username.rb | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/mongoid/shell/properties/password.rb b/lib/mongoid/shell/properties/password.rb index 0e86df3..1010387 100644 --- a/lib/mongoid/shell/properties/password.rb +++ b/lib/mongoid/shell/properties/password.rb @@ -8,8 +8,10 @@ module Password # current password def password @password || begin - return nil unless session.context.cluster.auth && session.context.cluster.auth.first - session.context.cluster.auth.first[1][1] + node = session.cluster.nodes.first + raise Mongoid::Shell::Errors::SessionNotConnectedError unless node + return nil unless node.credentials && node.credentials.empty? + node.credentials[1] end end diff --git a/lib/mongoid/shell/properties/username.rb b/lib/mongoid/shell/properties/username.rb index aabe868..9588d83 100644 --- a/lib/mongoid/shell/properties/username.rb +++ b/lib/mongoid/shell/properties/username.rb @@ -8,8 +8,10 @@ module Username # current username def username @username || begin - return nil unless session.context.cluster.auth && session.context.cluster.auth.first - session.context.cluster.auth.first[1][0] + node = session.cluster.nodes.first + raise Mongoid::Shell::Errors::SessionNotConnectedError unless node + return nil unless node.credentials && node.credentials.empty? + node.credentials[0] end end From 11c372a91931a341d140b01e1b80b03bfd53f3c9 Mon Sep 17 00:00:00 2001 From: Pawel Niewiadomski <11110000b@gmail.com> Date: Mon, 6 Jan 2014 11:13:14 +0100 Subject: [PATCH 2/4] updated gemspect to list mongoid 4.0.0 --- mongoid-shell.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongoid-shell.gemspec b/mongoid-shell.gemspec index af2fed2..95b57ba 100644 --- a/mongoid-shell.gemspec +++ b/mongoid-shell.gemspec @@ -13,7 +13,7 @@ Gem::Specification.new do |s| s.homepage = "http://github.com/dblock/mongoid-shell" s.licenses = [ "MIT" ] s.summary = "Derive shell commands from Mongoid configuration options." - s.add_dependency "mongoid", ">= 3.0.0" + s.add_dependency "mongoid", ">= 4.0.0" s.add_dependency "i18n" end From bae0e7069488ea0ef4e6190dd9565b6a3e144e1d Mon Sep 17 00:00:00 2001 From: Pawel Niewiadomski <11110000b@gmail.com> Date: Mon, 6 Jan 2014 11:16:06 +0100 Subject: [PATCH 3/4] updated gemspect to list mongoid 4.0.0.alpha1 --- mongoid-shell.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongoid-shell.gemspec b/mongoid-shell.gemspec index 95b57ba..96d5f00 100644 --- a/mongoid-shell.gemspec +++ b/mongoid-shell.gemspec @@ -13,7 +13,7 @@ Gem::Specification.new do |s| s.homepage = "http://github.com/dblock/mongoid-shell" s.licenses = [ "MIT" ] s.summary = "Derive shell commands from Mongoid configuration options." - s.add_dependency "mongoid", ">= 4.0.0" + s.add_dependency "mongoid", ">= 4.0.0.alpha1" s.add_dependency "i18n" end From 1c69fb2b29bc88a9d0da77c73d232a7e1c91b732 Mon Sep 17 00:00:00 2001 From: Pawel Niewiadomski <11110000b@gmail.com> Date: Mon, 6 Jan 2014 12:27:50 +0100 Subject: [PATCH 4/4] fixed for moped 2.0.0, seems to work\! --- lib/mongoid/shell/properties/host.rb | 2 +- lib/mongoid/shell/properties/password.rb | 9 +++++++-- lib/mongoid/shell/properties/primary.rb | 2 +- lib/mongoid/shell/properties/username.rb | 9 +++++++-- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/lib/mongoid/shell/properties/host.rb b/lib/mongoid/shell/properties/host.rb index 9a54d21..83c6040 100644 --- a/lib/mongoid/shell/properties/host.rb +++ b/lib/mongoid/shell/properties/host.rb @@ -10,7 +10,7 @@ def host @host || begin node = session.cluster.nodes.first raise Mongoid::Shell::Errors::SessionNotConnectedError unless node - node.address == "localhost:27017" ? nil : node.address + node.address.original == "localhost:27017" ? nil : node.address.original end end diff --git a/lib/mongoid/shell/properties/password.rb b/lib/mongoid/shell/properties/password.rb index 1010387..0956215 100644 --- a/lib/mongoid/shell/properties/password.rb +++ b/lib/mongoid/shell/properties/password.rb @@ -10,11 +10,16 @@ def password @password || begin node = session.cluster.nodes.first raise Mongoid::Shell::Errors::SessionNotConnectedError unless node - return nil unless node.credentials && node.credentials.empty? - node.credentials[1] + return nil unless node.credentials.has_key? db || node.credentials[db].empty? + node.credentials[db][1] end end + private + def db + @db || session.send(:current_database).name + end + end end end diff --git a/lib/mongoid/shell/properties/primary.rb b/lib/mongoid/shell/properties/primary.rb index e212167..4779c23 100644 --- a/lib/mongoid/shell/properties/primary.rb +++ b/lib/mongoid/shell/properties/primary.rb @@ -11,7 +11,7 @@ def primary raise Mongoid::Shell::Errors::SessionNotConnectedError unless session.cluster.nodes.any? node = session.cluster.nodes.find(&:primary?) raise Mongoid::Shell::Errors::MissingPrimaryNodeError unless node - node.address == "localhost:27017" ? nil : node.address + node.address.original == "localhost:27017" ? nil : node.address.original end end diff --git a/lib/mongoid/shell/properties/username.rb b/lib/mongoid/shell/properties/username.rb index 9588d83..ba552e2 100644 --- a/lib/mongoid/shell/properties/username.rb +++ b/lib/mongoid/shell/properties/username.rb @@ -10,11 +10,16 @@ def username @username || begin node = session.cluster.nodes.first raise Mongoid::Shell::Errors::SessionNotConnectedError unless node - return nil unless node.credentials && node.credentials.empty? - node.credentials[0] + return nil unless node.credentials.has_key? db || node.credentials[db].empty? + node.credentials[db][0] end end + private + def db + @db || session.send(:current_database).name + end + end end end