(self, name, password, read_only, **kwargs)
Uses v1 system to add users, i.e. saving to system.users.
Uses v1 system to add users, i.e. saving to system.users.
Uses v1 system to add users i . e . saving to system . users .
def _legacy_add_user(self, name, password, read_only, **kwargs):
        """Uses v1 system to add users, i.e. saving to system.users.
        """
        # Use a Collection with the default codec_options.
        system_users = self._collection_default_options('system.users')
        user = system_users.find_one({"user": name}) or {"user": name}
        if password is not None:
            user["pwd"] = auth._password_digest(name, password)
        if read_only is not None:
            user["readOnly"] = read_only
        user.update(kwargs)

        # We don't care what the _id is, only that it has one
        # for the replace_one call below.
        user.setdefault("_id", ObjectId())
        try:
            system_users.replace_one({"_id": user["_id"]}, user, True)
        except OperationFailure as exc:
            # First admin user add fails gle in MongoDB >= 2.1.2
            # See SERVER-4225 for more information.
            if 'login' in str(exc):
                pass
            # First admin user add fails gle from mongos 2.0.x
            # and 2.2.x.
            elif (exc.details and
                  'getlasterror' in exc.details.get('note', '')):
                pass
            else:
                raise
def _legacy_add_user ( self , name , password , read_only , * * kwargs ) : # Use a Collection with the default codec_options. system_users = self . _collection_default_options ( 'system.users' ) user = system_users . find_one ( { "user" : name } ) or { "user" : name } if password is not None : user [ "pwd" ] = auth . _password_digest ( name , password ) if read_only is not None : user [ "readOnly" ] = read_only user . update ( kwargs ) # We don't care what the _id is, only that it has one # for the replace_one call below. user . setdefault ( "_id" , ObjectId ( ) ) try : system_users . replace_one ( { "_id" : user [ "_id" ] } , user , True ) except OperationFailure as exc : # First admin user add fails gle in MongoDB >= 2.1.2 # See SERVER-4225 for more information. if 'login' in str ( exc ) : pass # First admin user add fails gle from mongos 2.0.x # and 2.2.x. elif ( exc . details and 'getlasterror' in exc . details . get ( 'note' , '' ) ) : pass else : raise