Exemplo n.º 1
0
 Status AuthorizationManager::buildPrivilegeSet(const std::string& dbname,
                                                const PrincipalName& principal,
                                                const BSONObj& privilegeDocument,
                                                PrivilegeSet* result) {
     if (!privilegeDocument.hasField(ROLES_FIELD_NAME)) {
         // Old-style (v2.2 and prior) privilege document
         return _buildPrivilegeSetFromOldStylePrivilegeDocument(dbname,
                                                                principal,
                                                                privilegeDocument,
                                                                result);
     }
     else {
         return _buildPrivilegeSetFromExtendedPrivilegeDocument(
                 dbname, principal, privilegeDocument, result);
     }
 }
Exemplo n.º 2
0
 Status AuthorizationManager::buildPrivilegeSet(const std::string& dbname,
                                                const PrincipalName& principal,
                                                const BSONObj& privilegeDocument,
                                                PrivilegeSet* result) {
     if (!privilegeDocument.hasField("privileges")) {
         // Old-style (v2.2 and prior) privilege document
         return _buildPrivilegeSetFromOldStylePrivilegeDocument(dbname,
                                                                principal,
                                                                privilegeDocument,
                                                                result);
     }
     else {
         return Status(ErrorCodes::UnsupportedFormat,
                       mongoutils::str::stream() << "Invalid privilege document received when "
                               "trying to extract privileges: " << privilegeDocument,
                       0);
     }
 }
Exemplo n.º 3
0
 Status AuthorizationManager::buildPrivilegeSet(const std::string& dbname,
                                                const UserName& user,
                                                const BSONObj& privilegeDocument,
                                                PrivilegeSet* result) const {
     if (!privilegeDocument.hasField(ROLES_FIELD_NAME)) {
         // Old-style (v2.2 and prior) privilege document
         if (AuthorizationManager::getSupportOldStylePrivilegeDocuments()) {
             return _buildPrivilegeSetFromOldStylePrivilegeDocument(dbname,
                                                                    user,
                                                                    privilegeDocument,
                                                                    result);
         }
         else {
             return _oldPrivilegeFormatNotSupported();
         }
     }
     else {
         return _buildPrivilegeSetFromExtendedPrivilegeDocument(
                 dbname, user, privilegeDocument, result);
     }
 }