docs: def update_user(self, login=None, user_name=None, password=None, envs=[], query='/users/'):
          """
          `login` - Login or username of user to update
          `user_name` - Updated full name of user
          `password` - Updated plain text password for user
  
          Update user information
          """
          juicer.utils.Log.log_debug("Update user information %s" % login)
  
          login = login.lower()
  
          data = {'delta': {}}
  
          if not user_name and not password:
              raise JuicerError("Error: --name or --password must be present")
  
          if user_name:
              data['delta']['name'] = user_name
  
          if password:
              data['delta']['password'] = password[0]
  
          query = "%s%s/" % (query, login)
  
          for env in envs:
              juicer.utils.Log.log_info("%s:", env)
              if not juicer.utils.user_exists_p(login, self.connectors[env]):
                  juicer.utils.Log.log_info("user `%s` does not exist in %s... skipping!",
                                            (login, env))
                  continue
              else:
                  _r = self.connectors[env].put(query, data)
                  if _r.status_code == Constants.PULP_PUT_OK:
                      juicer.utils.Log.log_info("user %s updated" %
                              juicer.utils.load_json_str(_r.content)['login'])
                  else:
                      _r.raise_for_status()
          return True