コード例 #1
0
ファイル: cnbConsole.py プロジェクト: hackfestca/cnb
 def _exitChuck(self, cmd, args):
     """ Exit the console
     Usage: exit
     Details: Exit this program"""
     result = ''
     result += 'Exiting...'
     oMgr = CNBManager.getInstance()
     oMgr.killCNB()
     return '\n' + result
コード例 #2
0
ファイル: cnbConsole.py プロジェクト: hackfestca/cnb
 def _stopChuck(self, cmd, args):
     """ Stop CNB
     Usage: stop
     Details: Stop this program (become idle)"""
     result = ''
     result += 'Stopping...'
     oMgr = CNBManager.getInstance()
     oMgr.stopCNB()
     return '\n' + result
コード例 #3
0
ファイル: cnbConsole.py プロジェクト: hackfestca/cnb
 def _startChuck(self, cmd, args):
     """ Start CNB
     Usage: start
     Details: Start this program"""
     result = ''
     result += 'Starting...'
     oMgr = CNBManager.getInstance()
     oMgr.startCNB()
     return '\n' + result
コード例 #4
0
ファイル: cnbMatrix.py プロジェクト: OSSSP/cnb
    def _processMod(self, oMsg):
        """
        This method, called by connector specific methods (ex. processIrcMod, processXmppMod), determine if the user has access to call the module and then trigger an event or reply.
        @param oMsg: Message object containing a message, status change or a command.
        @type oMsg: CNBMessage
        """
        result = ''
        oMgr = CNBManager.getInstance()
        aAdminUsers = oMgr.getConfigCNB(oMsg.conId).get('bot', 'admins')
        oMod = self.getModuleFromCmd(oMsg.cmd)
        if oMod:
            # check for allowed users
            if self.isAllowed(oMod.users, oMsg.username, oMsg.domain):

                # check for admin modules
                if not oMod.isAdmin or (oMod.isAdmin
                                        and oMsg.username in aAdminUsers):

                    # Is this a cmd?
                    if oMod.enProcessCmd:
                        result = oMod.processCmd(oMsg)

                else:
                    result = 'unauthorized (admin)'
            else:
                result = 'unauthorized (users)'
        else:
            # Can spot a pattern?
            for (p, c) in self._patterns:
                if c(oMsg):
                    result = p(oMsg)
                    if result != '':
                        break

            # Otherwise, check something else?
            if result == '':
                for v in self._always:
                    result = v(oMsg)
                    if result != '':
                        break

        # Logs
        if oMsg.text != '' and oMsg.replyTo != None:
            self.log.info(
                str(oMsg.replyTo) + ' -> ' + str(self.LOG_NICK) + '>' +
                str(oMsg.text))
        if result != '' and oMsg.replyTo != None:
            self.log.info(
                str(self.LOG_NICK) + ' -> ' + str(oMsg.replyTo) + '>' +
                str(result))

        return result
コード例 #5
0
ファイル: cnbMatrix.py プロジェクト: hackfestca/cnb
    def _processMod(self, oMsg):
        """
        This method, called by connector specific methods (ex. processIrcMod, processXmppMod), determine if the user has access to call the module and then trigger an event or reply.
        @param oMsg: Message object containing a message, status change or a command.
        @type oMsg: CNBMessage
        """
        result = ''
        oMgr = CNBManager.getInstance()
        aAdminUsers = oMgr.getConfigCNB(oMsg.conId).get('bot', 'admins')
        oMod = self.getModuleFromCmd(oMsg.cmd)
        if oMod:
            # check for allowed users
            if self.isAllowed(oMod.users, oMsg.username, oMsg.domain):

                # check for admin modules
                if not oMod.isAdmin or (oMod.isAdmin and oMsg.username in aAdminUsers):
                    
                    # Is this a cmd?
                    if oMod.enProcessCmd:
                        result = oMod.processCmd(oMsg)

                else:
                    result = 'unauthorized (admin)'
            else:
                result = 'unauthorized (users)'
        else:
            # Can spot a pattern?
            for (p,c) in self._patterns:
                if c(oMsg):
                    result = p(oMsg)
                    if result != '':
                        break

            # Otherwise, check something else?
            if result == '':
                for v in self._always:
                    result = v(oMsg)
                    if result != '':
                        break

        # Logs
        if oMsg.text != '' and oMsg.replyTo != None:
            self.log.info(str(oMsg.replyTo) + ' -> ' + str(self.LOG_NICK) + '>' + str(oMsg.text))
        if result != '' and oMsg.replyTo != None:
            self.log.info(str(self.LOG_NICK) + ' -> ' + str(oMsg.replyTo) + '>' + str(result))

        return result
コード例 #6
0
ファイル: cnbCore.py プロジェクト: OSSSP/cnb
    def __init__(self):
        Thread.__init__(self)
        oConfig = CNBConfig.getInstance()
        if oConfig.get('global', 'daemon'):
            self._bEnableShellConsole = False
        self.log = logging.getLogger(self.__class__.__name__)
        self._configLogs(oConfig)

        oMgr = CNBManager.getInstance()
        oMgr.setCNB(self)

        self.oConMgr = CNBConnectorManager()
        self.oConMgr.loadDefault()

        if self._bEnableShellConsole:
            self.oConsole = CNBConsole()
            self.oConsole.start()

        oMatrix = CNBMatrix.getInstance()
コード例 #7
0
ファイル: cnbCore.py プロジェクト: hackfestca/cnb
    def __init__(self):
        Thread.__init__(self)
        oConfig = CNBConfig.getInstance()
        if oConfig.get('global', 'daemon'):
            self._bEnableShellConsole = False
        self.log = logging.getLogger(self.__class__.__name__)
        self._configLogs(oConfig)

        oMgr = CNBManager.getInstance()
        oMgr.setCNB(self)

        self.oConMgr = CNBConnectorManager()
        self.oConMgr.loadDefault()

        if self._bEnableShellConsole:
            self.oConsole = CNBConsole()
            self.oConsole.start()

        oMatrix = CNBMatrix.getInstance()