Sha256: 4df55300313806c6419708dfb3c69a43624eded46af353163824f9ab6b5aa8e1
Contents?: true
Size: 1.57 KB
Versions: 3
Compression:
Stored size: 1.57 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| user_cltn = users( con ) row = { :user => user_name } user = user_cltn.find_one( row ) raise "User #{user_name} already exists!" if user row[:pwd] = Mongo::Support.hash_password( user_name, password ) return user_cltn.save( row ) end end def clear!( path ) connect_for( path ) do |con| res = users( con ).remove( {} ) end end def rename( zone, old_name, new_name ) raise "NYI" end def delete( path, id ) connect_for( path ) do |con| res = users( con ).remove( :_id => BSON::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.1.5 | lib/mongo3/user.rb |
mongo3-0.1.4 | lib/mongo3/user.rb |
mongo3-0.1.3 | lib/mongo3/user.rb |