Giter Club home page Giter Club logo

alerter's Introduction

  • 👋 Hi, I’m @dim5x.
  • 👀 I’m interested in Python.
  • 🌱 I’m currently learning Data Science.
  • 💞️ I’m looking to collaborate on any project.
  • 📫 How to reach me ...

Anurag's GitHub stats

alerter's People

Contributors

baron-munchhausen avatar codacy-badger avatar dependabot[bot] avatar dim5x avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

alerter's Issues

Интерфейс. Предложения по оптимизации

Есть предложение по изменению интерфейса.
image

  • верхняя часть (2/3 экрана) - текущее состояние: на какой железке на каком порту какой mac;
  • фильтр по железке
  • чек-бокс "Только недоверенные mac'и"
  • нижняя часть - лог (как сейчас)
  • фильтр по периоду
  • чек-бокс "Только недоверенные mac'и" (или пусть верхний чек-бокс так же управляет и логом)
  • при выборе mac'а в current_state лог должен фильтроваться по этому mac'у.
  • (опционально) возможность скрыть панель Log.

cicd

Скрипты для развертывания проекта из репозитория.
Например,

  • устанавливается rsyslog, если не установлен
  • заменяются конфигурационные файлы актуальными из репозитория

Сделать кликабельным mac_type.

Предлагаю сделать кликабльным mac_type для перехода на страницы add_allow_mac и add_disallow_mac. Поле mac заполнять автоматически в зависимости от строки, на которую кликнули.

Пара вопросов.

image

Саш, по пункту 1:
Можно же брать напрямую из атрибута функции, без перекладывания в новую переменную.
По пункту 2:
Получается, что db.execute_non_query() - используется до объявления. Потому что экземпляр класса создаётся в ветке if, а туда может и не занести выполнение программы. Но это ладно - работает и ок :)
По пункту 3:
Какое-то странное разделение if получилось.

Может быть нужно как-то так:

def insert_data(data, table, conn='not_created'):
    """ Добавляем данные в базу. """
    columns, values = '', ''
    for key in data:
        if columns == '':
            columns += key
            values += get_value(data[key])
        else:
            columns = columns + ', ' + key
            values = values + ', ' + get_value(data[key])

    query = 'insert into ' + table + '(' + columns + ') values(' + values + ')'

    if conn == 'not_created':
        db = DatabaseConnection()
        db.open()
        db.execute_non_query(query)
        db.close()
    else:
        db.execute_non_query(query)
        db.close()

Покопаться в кишках

Чисто исследовательский интерес.
Посмотреть сколько занимает ресурсов выполнение скрипта.
Сравнить с использованием менее прожорливых структур - например словари заменить на именованные кортежи.?

Possible SQL injection vector through string-based query construction.

Describe the bug

    • query = 'select count(1) _count from [admin] where [login] = %(login)s' % {'login': login}
    • ''' % {'login': login, 'description': description}
    • ''' % {'login': login}
    • ''' % {'login': login, 'hash': hash_sha384}
-Важно!

Никогда, ни при каких условиях, не используйте конкатенацию строк (+) или интерполяцию параметра в строке (%) для передачи переменных в SQL запрос. Такое формирование запроса, при возможности попадания в него пользовательских данных – это ворота для SQL-инъекций!

Правильный способ – использование второго аргумента метода .execute()

Возможны два варианта:

  1. C подстановкой по порядку на места знаков вопросов:
    cursor.execute("SELECT Name FROM Artist ORDER BY Name LIMIT ?", ('2'))

  2. И с использованием именованных замен:
    cursor.execute("SELECT Name from Artist ORDER BY Name LIMIT :limit", {"limit": 3})

Добавить описание методов.

В файле db_management.py добавить описание методов класса:

    • db_management.py:114:4: C0116: Missing function or method docstring (missing-function-docstring)
    • db_management.py:163:0: C0116: Missing function or method docstring (missing-function-docstring)
    • db_management.py:209:0: C0116: Missing function or method docstring (missing-function-docstring)

Поменять сортировку.

Describe the bug
Поменять сортировку по умолчанию в таблицах add_allow_mac.html и add_disallow_mac.html на поле Дата.

Screenshots
If applicable, add screenshots to help explain your problem.

Настройки PyNetHomeInvaderAlerter.py

Вместо:
HOST, PORT = management.get_option('alerter_host'), int(management.get_option('alerter_port')) db_name = management.get_option('db_connection_string')

КМК должно быть типа такого:

HOST, PORT, db_name = management.get_option()

Соответственно, management.get_option() должна выдавать список или кортеж из трёх элементов:

типа: (127.0.0.1, 515 (сразу в формате int) и третий параметр с БД.)

Задачи

  • - создать новую функцию
  • - выложить в новый branch

Размер шрифта.

Describe the bug
Найти и изменить размер шрифта.

Screenshots
If applicable, add screenshots to help explain your problem.
image

mac-адресы в syslog'е

  • создать в таблице syslog колонку mac
  • добавить trigger, который после появления нового события получает из колонки message, если есть, mac и добавляет в колонку mac
  • добавить на главную страницу alerter'а колонки mac и wellknown для возможности фильтрации

Предварительный итог проекта.

  • создать интерфейс с двумя панелями current_state и лог
  • настроить совместимость с двумя СУБД sqlite и postgres
  • обеспечить возможность запуска без дополнительных настроек
  • "обернуть" в docker-образ

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.