Sha256: bba7643544a8ab2c485933245b7763394fda5e5efe5d97a7a3fba109b1597bbd
Contents?: true
Size: 1.49 KB
Versions: 3
Compression:
Stored size: 1.49 KB
Contents
require 'mongo' require File.join( File.dirname(__FILE__), %w[zone.rb] ) module Mongo3 # Administer users on a connection class User < Mongo3::Zone # add a new user def add( path, user_name, password ) connect_for( path ) do |con| admin_db = con.db('admin') user_cltn = admin_db[Mongo::DB::SYSTEM_USER_COLLECTION] row = { :user => user_name } user = user_cltn.find_one( row ) raise "User #{user_name} already exists!" if user row[:pwd] = admin_db.send( :hash_password, user_name, password ) user_cltn.save( row ) end end def rename( zone, old_name, new_name ) end def delete( path, id ) connect_for( path ) do |con| res = users( con ).remove( :_id => Mongo::ObjectID.from_string( id ) ) end end def list( path, page, per_page=10 ) connect_for( path ) do |con| user_cltn = users( con ) list = WillPaginate::Collection.create( page, per_page, user_cltn.size ) do |pager| offset = (page-1)*per_page results = user_cltn.find( {}, :sort => [['user', Mongo::ASCENDING]], :skip => offset, :limit => per_page ).to_a return pager.replace( results ) end end end private def users( con ) admin = con.db('admin') admin[Mongo::DB::SYSTEM_USER_COLLECTION] end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
mongo3-0.0.9 | lib/mongo3/user.rb |
mongo3-0.0.8 | lib/mongo3/user.rb |
mongo3-0.0.7 | lib/mongo3/user.rb |