def disable_user(self, uid, disable): """ Disable user """ user = Session().query( models.User).filter(models.User.id == uid).first() if not self.user_exists(uid): message = False elif self.is_admin(uid): signal = json.dumps({ 'print': True, 'message': "Cannot disable admin account" }) message = False else: user.enabled = not (disable) Session.commit() signal = json.dumps({ 'print': True, 'message': 'User {}'.format('disabled' if disable else 'enabled') }) message = True dispatcher.send(signal, sender="Users") return message
def change_module_state(main, module_list: list, module_state: bool): for module_name in module_list: try: module = Session().query(models.Module).filter(models.Module.name == module_name).first() module.enabled = module_state main.modules.modules[module_name].enabled = module_state except: # skip if module name is not found pass Session().commit()
def enable_listener(self, listener_name): """ Starts an existing listener and sets it to enabled """ if listener_name in list(self.activeListeners.keys()): print(helpers.color("[!] Listener already running!")) return False result = Session().query(models.Listener).filter( models.Listener.name == listener_name).first() if not result: print( helpers.color("[!] Listener %s doesn't exist!" % listener_name)) return False module_name = result['module'] options = result['options'] try: listener_module = self.loadedListeners[module_name] for option, value in options.items(): listener_module.options[option]['Value'] = value['Value'] print(helpers.color("[*] Starting listener '%s'" % listener_name)) if module_name == 'redirector': success = True else: success = listener_module.start(name=listener_name) if success: print(helpers.color('[+] Listener successfully started!')) listener_options = copy.deepcopy(listener_module.options) self.activeListeners[listener_name] = { 'moduleName': module_name, 'options': listener_options } listener = Session().query(models.Listener).filter( and_(models.Listener.name == listener_name, models.Listener.module != 'redirector')).first() listener.enabled = True Session().commit() else: print(helpers.color('[!] Listener failed to start!')) except Exception as e: traceback.print_exc() if listener_name in self.activeListeners: del self.activeListeners[listener_name] print(helpers.color("[!] Error starting listener: %s" % e))
def disable_listener(self, listener_name): """ Wrapper for shutdown_listener(), also marks listener as 'disabled' so it won't autostart """ active_listener_module_name = self.activeListeners[listener_name][ 'moduleName'] listener = Session().query(models.Listener).filter( and_(models.Listener.name == listener_name.lower(), models.Listener.module != 'redirector')).first() listener.enabled = False self.shutdown_listener(listener_name) Session().commit() # dispatch this event message = "[*] Listener {} disabled".format(listener_name) signal = json.dumps({'print': True, 'message': message}) dispatcher.send(signal, sender="listeners/{}/{}".format( active_listener_module_name, listener_name))