Exemple #1
0
def test():
    currentPath = sys.path[0]
    logFile = os.path.join(currentPath,'log','uac.log')
    os.remove(logFile)
    logger = uacLog().getLog()
    logger.info('Log test')
    try:
        assert os.path.isfile(logFile)
        print('log.uacLog ...... pass')
    except:
        print('log.uacLog ...... failed')
    def main(self):
        logger = uacLog().getLog()
        disable_file_system_redirection().__enter__()
        command = 'c:\\windows\\system32\\query user'
        currentPath = sys.path[0]
        config = configparser.RawConfigParser()
        config.read(os.path.join(currentPath,'uac.conf'))
        logger.info('UAC system start.')
        currentList = []
        while True:

            result = os.popen(command).readlines()
            newList = []
            for  line in result:
                name = str(line[0:9]).replace(' ','')
                if name != 'USERNAME':
                    newList.append(name)
            diff=list(set(newList).difference(set(currentList)))
            if diff == []:
                currentList = newList
            else:
                if len(diff) == 1:
                    username = diff[0]
                    logger.info('User login:'******'Emergency mode: ' + username)
                        else:
                            firewall.activate(username,loginuser.ipList)
                            logger.info('Set firewall for: ' + username)
                    except :
                        logger.critical('Database connection fail.')
                        firewall = winFirewall()
                        firewall.allfree()
                        logger.critical('Allow all IP.')
                    currentList = newList
                else:
                    currentList = newList
                    logger.critical('User login error:')
                    logger.critical('User login befor:')
                    for name in currentList:
                        logger.critical(name)
                    logger.critical('User login after:')
                    for name in newList:
                        logger.critical(name)