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 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 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 {} killed".format(listener_name) signal = json.dumps({ 'print': True, 'message': message }) dispatcher.send(signal, sender="listeners/{}/{}".format(active_listener_module_name, listener_name))