def do_password(self, params=None): if len(params) < 1: name = cfg.read_param( None, "Please provide the username to change the password for") if not name: logger.error("empty username") return -1 else: name = params[0] username, domain = self.user_get_domain(name) db, osips_ver = self.user_db_connect() if not db: return -1 user_dict = {USER_NAME_COL: username, USER_DOMAIN_COL: domain} # check if the user already exists if not db.entry_exists(USER_TABLE, user_dict): logger.warning("User {}@{} does not exist".format( username, domain)) return -1 if len(params) > 1: password = params[1] else: password = self.user_get_password() if password is None: logger.error("Password not specified: " + "cannot change passowrd for user {}@{}".format( user, domain)) return -1 plain_text_pw = cfg.getBool("plain_text_passwords") update_dict = { USER_HA1_COL: self.user_get_ha1(username, domain, password), USER_PASS_COL: password if plain_text_pw else "" } if osips_ver < '3.2': update_dict[USER_HA1B_COL] = self.user_get_ha1b( username, domain, password) db.update(USER_TABLE, update_dict, user_dict) logger.info("Successfully changed password for {}@{}".format( username, domain)) db.destroy() return True
def do_add(self, params=None): if len(params) < 1: name = cfg.read_param( None, "Please provide the username you want to add") if not name: logger.warning("no username to add!") return -1 else: name = params[0] username, domain = self.user_get_domain(name) db, osips_ver = self.user_db_connect() if not db: return -1 insert_dict = {USER_NAME_COL: username, USER_DOMAIN_COL: domain} # check if the user already exists if db.entry_exists(USER_TABLE, insert_dict): logger.error("User {}@{} already exists".format(username, domain)) return -1 if len(params) > 1: password = params[1] else: password = self.user_get_password() if password is None: logger.error( "password not specified: cannot add user {}@{}".format( user, domain)) return -1 insert_dict[USER_HA1_COL] = \ self.user_get_ha1(username, domain, password) # only populate the 'ha1b' column on 3.1 or older OpenSIPS DBs if osips_ver < '3.2': insert_dict[USER_HA1B_COL] = \ self.user_get_ha1b(username, domain, password) insert_dict[USER_PASS_COL] = \ password if cfg.getBool("plain_text_passwords") else "" db.insert(USER_TABLE, insert_dict) logger.info("Successfully added {}@{}".format(username, domain)) db.destroy() return True
def do_password(self, params=None): if len(params) < 1: name = cfg.read_param( None, "Please provide the username you want to change the password") if not name: logger.warning("no username to change password!") return -1 else: name = params[0] username, domain = self.user_get_domain(name) db = self.user_db_connect() if not db: return -1 user_dict = {USER_NAME_COL: username, USER_DOMAIN_COL: domain} # check if the user already exists if not db.entry_exists(USER_TABLE, user_dict): logger.warning("User {}@{} does not exist".format( username, domain)) return -1 if len(params) > 1: password = params[1] else: password = self.user_get_password() if password is None: logger.error("password not specified: " + "cannot change passowrd for user {}@{}".format( user, domain)) return -1 plain_text_pw = cfg.getBool("plain_text_passwords") update_dict = { USER_HA1_COL: self.user_get_ha1(username, domain, password), USER_HA1B_COL: self.user_get_ha1b(username, domain, password), USER_PASS_COL: "" if not plain_text_pw else password } db.update(USER_TABLE, update_dict, user_dict) logger.debug( "User's {}@{} password has been been successfully changed".format( username, domain)) db.destroy() return True
def do_add(self, params=None): if len(params) < 1: name = cfg.read_param( None, "Please provide the username you want to add") if not name: logger.warning("no username to add!") return -1 else: name = params[0] username, domain = self.user_get_domain(name) db = self.user_db_connect() if not db: return -1 insert_dict = {USER_NAME_COL: username, USER_DOMAIN_COL: domain} # check if the user already exists if db.entry_exists(USER_TABLE, insert_dict): logger.warning("User {}@{} already exists".format( username, domain)) return -1 if len(params) > 1: password = params[1] else: password = self.user_get_password() if password is None: logger.error( "password not specified: cannot add user {}@{}".format( user, domain)) return -1 insert_dict[USER_HA1_COL] = \ self.user_get_ha1(username, domain, password) insert_dict[USER_HA1B_COL] = \ self.user_get_ha1b(username, domain, password) plain_text_pw = cfg.getBool("plain_text_passwords") insert_dict[USER_PASS_COL] = \ "" if not plain_text_pw else password db.insert(USER_TABLE, insert_dict) logger.debug("User {}@{} has been successfully added!".format( username, domain)) db.destroy() return True
def emptyline(self): if cfg.getBool('prompt_emptyline_repeat_cmd'): super().emptyline()