00001 00020 #pragma once 00021 00022 namespace mongo { 00023 00024 /* 00025 * An AdminAccess is an interface class used to determine if certain users have 00026 * priviledges to a given resource. 00027 * 00028 */ 00029 class AdminAccess { 00030 public: 00031 virtual ~AdminAccess() { } 00032 00036 virtual bool haveAdminUsers() const = 0; 00037 00041 virtual BSONObj getAdminUser( const string& username ) const = 0; 00042 }; 00043 00044 class NoAdminAccess : public AdminAccess { 00045 public: 00046 virtual ~NoAdminAccess() { } 00047 00048 virtual bool haveAdminUsers() const { return false; } 00049 virtual BSONObj getAdminUser( const string& username ) const { return BSONObj(); } 00050 }; 00051 00052 } // namespace mongo