Advertisement
Guest User

Untitled

a guest
Aug 20th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.83 KB | None | 0 0
  1. def create_users(self, users):
  2.         """Create the given user(s).
  3.        :param users:   list of serialized user objects
  4.        """
  5.         with MongoDBClient(self._admin_user()) as client:
  6.             for item in users:
  7.                 user = models.MongoDBUser.deserialize(item)
  8.                 # this could be called to create multiple users at once;
  9.                 # catch exceptions, log the message, and continue
  10.                 try:
  11.                     user.check_create()
  12.                     if self._get_user_record(user.name, client=client):
  13.                         raise ValueError(_('User with name %(user)s already '
  14.                                            'exists.') % {'user': user.name})
  15.                     self.create_validated_user(user, client=client)
  16.                 except (ValueError, pymongo.errors.PyMongoError) as e:
  17.                     LOG.error(e)
  18.                     LOG.warning('Skipping creation of user with name '
  19.                                 '%(user)s', {'user': user.name})
  20.  
  21. def create_master_users(self, users):
  22.         """Create the given master_user(s).
  23.        :param users:   list of serialized user objects
  24.        """
  25.         with MongoDBClient(self._admin_user()) as client:
  26.             for item in users:
  27.                 user = models.MongoDBUser.deserialize(item)
  28.                 # this could be called to create multiple users at once;
  29.                 # catch exceptions, log the message, and continue
  30.                 try:
  31.                     user.check_create()
  32.                     if self._get_user_record(user.name, client=client):
  33.                         raise ValueError(_('Master_User with name %(user)s already '
  34.                                            'exists.') % {'user': user.name})
  35.                     self.create_validated_user(user, client=client)
  36.                 except (ValueError, pymongo.errors.PyMongoError) as e:
  37.                     LOG.error(e)
  38.                     LOG.warning('Skipping creation of user with name '
  39.                                 '%(user)s', {'user': user.name})
  40. def grant_access(self, username, databases):
  41.         """Adds the RW role to the user for each specified database."""
  42.         user = self.get_existing_user(username)
  43.         for db_name in databases:
  44.             # verify the database name
  45.             models.MongoDBSchema(db_name)
  46.             role = {'db': db_name, 'role': 'readWrite'}
  47.             if role not in user.roles:
  48.                 LOG.debug('Adding role %(role)s to user %(user)s.',
  49.                           {'role': str(role), 'user': username})
  50.                 user.roles = role
  51.             else:
  52.                 LOG.debug('User %(user)s already has role %(role)s.',
  53.                           {'user': username, 'role': str(role)})
  54.         LOG.debug('Updating user %s.', username)
  55.         self._update_user_roles(user)
  56.  
  57. def grant_master_access(self, username, databases):
  58.         """Adds the RW role to the user for each specified database."""
  59.         master_user = self.get_existing_user(username)
  60.         for db_name in databases:
  61.             # verify the database name
  62.             models.MongoDBSchema(db_name)
  63.             role = {'db': db_name, 'role': 'readWrite', 'readWriteAnyDatabase', 'readAnyDatabase','dbAminAnyDatabase','cluserMonitor',
  64.             'cleanupOrphaned', 'enableSharding', 'flushRouterConfig', 'moveChunk', 'splitChunk', 'viewUser', 'dbOwner' }
  65.             #if role not in user.roles:
  66.             #    LOG.debug('Adding role %(role)s to user %(user)s.',
  67.             #             {'role': str(role), 'user': username})
  68.             #    user.roles = role
  69.             #else:
  70.             #    LOG.debug('User %(user)s already has role %(role)s.',
  71.             #              {'user': username, 'role': str(role)})
  72.         LOG.debug('Updating user %s.', username)
  73.         self._update_user_roles(master_user)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement