Class: Mongo::Auth::User::View
- Inherits:
-
Object
- Object
- Mongo::Auth::User::View
- Extended by:
- Forwardable
- Defined in:
- lib/mongo/auth/user/view.rb
Overview
Defines behavior for user related operation on databases.
Instance Attribute Summary collapse
-
#database ⇒ Database
readonly
Database The view’s database.
Instance Method Summary collapse
-
#create(user_or_name, options = {}) ⇒ Result
Create a new user in the database.
-
#info(name, options = {}) ⇒ Array
Get info for a particular user in the database.
-
#initialize(database) ⇒ View
constructor
Initialize the new user view.
-
#remove(name, options = {}) ⇒ Result
Remove a user from the database.
-
#update(user_or_name, options = {}) ⇒ Result
Update a user in the database.
Constructor Details
#initialize(database) ⇒ View
Initialize the new user view.
65 66 67 |
# File 'lib/mongo/auth/user/view.rb', line 65 def initialize(database) @database = database end |
Instance Attribute Details
#database ⇒ Database (readonly)
Returns database The view’s database.
26 27 28 |
# File 'lib/mongo/auth/user/view.rb', line 26 def database @database end |
Instance Method Details
#create(user_or_name, options = {}) ⇒ Result
Create a new user in the database.
45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/mongo/auth/user/view.rb', line 45 def create(user_or_name, = {}) user = generate(user_or_name, ) client.send(:with_session, ) do |session| Operation::CreateUser.new( user: user, db_name: database.name, session: session, write_concern: [:write_concern] && WriteConcern.get([:write_concern]), ).execute(next_primary(nil, session), client: client) end end |
#info(name, options = {}) ⇒ Array
Get info for a particular user in the database.
133 134 135 |
# File 'lib/mongo/auth/user/view.rb', line 133 def info(name, = {}) user_query(name, ).documents end |
#remove(name, options = {}) ⇒ Result
Remove a user from the database.
83 84 85 86 87 88 89 90 91 92 |
# File 'lib/mongo/auth/user/view.rb', line 83 def remove(name, = {}) client.send(:with_session, ) do |session| Operation::RemoveUser.new( user_name: name, db_name: database.name, session: session, write_concern: [:write_concern] && WriteConcern.get([:write_concern]), ).execute(next_primary(nil, session), client: client) end end |
#update(user_or_name, options = {}) ⇒ Result
Update a user in the database.
108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/mongo/auth/user/view.rb', line 108 def update(user_or_name, = {}) client.send(:with_session, ) do |session| user = generate(user_or_name, ) Operation::UpdateUser.new( user: user, db_name: database.name, session: session, write_concern: [:write_concern] && WriteConcern.get([:write_concern]), ).execute(next_primary(nil, session), client: client) end end |