Перейти до

Релизы Ubilling


Рекомендованные сообщения

Поставил, вроде все по инструкции, но к базе данных не подключается. В логах пишет, что подключение идет со стандартными параметрами (www-data, без пароля).

Выполнил скрипт в дебаге - класс MySQLDB из api.mysql.php вообще не вызывается.

 

Извиняюсь, ошибся в одной букве в логине. А в логах об этом ни слова.

Відредаговано Maxaon
Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 1,2k
  • Створено
  • Остання відповідь

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Да кстати если кому то нужен шаблон для свича то вот  можно воспользоваться такой штукой  шаблоно-генератором

Преувеличиваем? Ничего особенного и нового я не сделал

Ни один единорог не пострадал? =)

Posted Images

класс MySQLDB из api.mysql.php вообще не вызывается.

Это невозможно в принципе.

Объект $db создается только единожды в виде $db = new MySQLDB(); в apiloader который однозначно отрабатывает на каждом телодвижении.

Дебужить оное дебужилками в IDE практически бесперспективно изза того что прямые инклуды практически не используються чтобы обеспечить динамическую подгрузку модулей.

 

Проблема порыться может разве что в правах на конфиги.

Ссылка на сообщение
Поделиться на других сайтах
класс MySQLDB из api.mysql.php вообще не вызывается.

Это невозможно в принципе.

Объект $db создается только единожды в виде $db = new MySQLDB(); в apiloader который однозначно отрабатывает на каждом телодвижении.

Дебужить оное дебужилками в IDE практически бесперспективно изза того что прямые инклуды практически не используються чтобы обеспечить динамическую подгрузку модулей.

 

Проблема порыться может разве что в правах на конфиги.

Да, оказалось что одну букву неправильно написал. Теперь буду знать, спасибо.

Ссылка на сообщение
Поделиться на других сайтах

Итак , новый релиз Ubilling 0.1.4 rev 666 (а кто бы сомневался?)

 

Список изменений:

* Исправлена локализация

* Модуль "Отчет по подключениям": добавлена популярность тарифов

* Теперь отображаються администраторы в отчете по оплатам и в интерфейсе внесения оплат

* alter.ini: новый параметр TARIFFCHGRESET отвечающий за ресет пользователя при смене тарифа

* alter.ini: новый параметр PASSWORDSHIDE позволяющий прятать пароли пользователей

* Новый скрипт GetCF для внешнего получения кастомных полей профиля. Использование: GetCF [login] [custom field id]

* alter.ini: новый параметр DN_ONLINE_DETECT позволяющий помечать звездочкой пользователей для которых отработан OnConnect

* Модуль "Онлайн": добавлено динамическое добавление колонки "Онлайн" при включении DN_ONLINE_DETECT

* Модуль "DHCP": добавлен редактор подсетей

* Модуль "DHCP": для каждой сети можно описать персональный шаблон имеющий приоритет перед глобальным config/dhcp/subnets.template

* Модуль "DHCP": добавлен предпросмотр сгенерированных конфигов

* Новый плагин профиля: "Удаление пользователя" - как следует из названия для удаления пользователя и всех связанных с ним данных

 

Качать как всегда здесь: http://ubilling.net.ua/ub.tgz

Более-менее актуальная инструкция по установке: http://wiki.ubilling...id=setupfreebsd

Обновленное онлайн демо: http://wiki.ubilling.net.ua/doku.php?id=demo

 

post-4093-0-51832700-1362671582_thumb.jpg

Ссылка на сообщение
Поделиться на других сайтах

Вот тут пишу свой модуль и возник один вопрос: Будет ли система переписываться на более серьезную платформу, к примеру на Zend Framework. Я конечно понимаю, что на данный момент выбрана CMS попроще, однако лично мне не хватает наследования и модульности системы. Пришлось менять некоторые файлы и при обновлении все изменения полетят к чертям.

Ссылка на сообщение
Поделиться на других сайтах
Будет ли система переписываться на более серьезную платформу, к примеру на Zend Framework.

Хорошо пошутили, шутку оценил.

Почему тогда уже не symphony? :)

 

 

однако лично мне не хватает наследования и модульности системы.

оО

 

Пришлось менять некоторые файлы и при обновлении все изменения полетят к чертям.

Здесь подробнее пожалуйста. Что же такого страшного нужно менять в фреймворке чтобы написать очередной модуль?

Ссылка на сообщение
Поделиться на других сайтах
Почему тогда уже не symphony?

Можно и ее, главное чтобы была с использованием MVC и нормально работала с модулями. Но я работал на zend'e, поэтому говорю про него.

 

 

однако лично мне не хватает наследования и модульности системы.

Ну, некая часть модульности есть, спорить не буду. Однако то, что все части модуля разбросаны по разным частям, немного выводит из себя. Модели в api/libs которые надо прописывать в apiloader'e, т.е. обновить простым распаковыванием не получится. Будет появляться admin с дефолтным паролем(хотя можно chmod 0, но не кошерно) . Настройки модуля, иконки, перевод тоже хранятся отдельно.

Еще крайне настораживает отсутствие прослойки между БД и приложением, наверняка где-то будет отсутствовать проверка входных данных и выльется это в sql инъекция. Лично я уже один раз забыл проверку сделать.

 

 

К тому-же, я считаю что для такого серьезного продукта не хватает модульного тестирования, а также коментариев, как в самой CMS (что я считаю недомустимым), так и в коде биллинга.

 

Я понимаю что я желаю чересчур много, однако возможно ли заняться переписью в дальнейшем будущем?

Ссылка на сообщение
Поделиться на других сайтах
Можно и ее, главное чтобы была с использованием MVC и нормально работала с модулями. Но я работал на zend'e, поэтому говорю про него.

Вы видимо сарказма не уловили, в следующий раз постараюсь иллюстрировать картинкой.

 

 

Модели в api/libs которые надо прописывать в apiloader'e, т.е. обновить простым распаковыванием не получится.

А еще можно просто закидывать файлики в modules/engine/ на находим?

 

 

Еще крайне настораживает отсутствие прослойки между БД и приложением

а api.mysql это конечно же невидимый уровень абстракции.

 

 

Настройки модуля, иконки, перевод тоже хранятся отдельно.

Точно - давайте упакуем локализации, иконки, модуля в один файл, компактненько так будет, ага...

 

 

наверняка где-то будет отсутствовать проверка входных данных и выльется это в sql инъекция

...а если бы внимательно поизучали код могли бы и заметить что все данные которые попадают к методам, уже разок не найденого вами класса MySQLDB - фильтруются по мере возможности либо посредством vf() либо как минимум mysql_real_escape - в контексте непубличного интерфейса, доступ к которому бай дефолт имеет ограниченный набор сотрудников данные меры считаются допустимыми.

 

 

Я понимаю что я желаю чересчур много, однако возможно ли заняться переписью в дальнейшем будущем?

Прежде всего я исхожу из практической целесообразности и заказов пользователей находящихся на моей поддержке, а не отталкиваясь из абстрактного желания следовать какой-то определенной парадигме. Угрохать дополнительный почти год времени на рефакторинг и миграцию (что кстати практически эквивалентно переписывания с нуля) кода, только из каких-то религиозных побуждений - как минимум глупо.

 

А пока что давайте остановимся на том, что я буду пилить свой (бесплатный кстати) продукт так как удобно мне и соответственно на удобном мне - тобишь на моем фреймворке?

Ссылка на сообщение
Поделиться на других сайтах

А пока что давайте остановимся на том, что я буду пилить свой (бесплатный кстати) продукт так как удобно мне и соответственно на удобном мне - тобишь на моем фреймворке?

О, а я хочу білого ведмедика на сторінці юзера. :D

post-4093-0-37081800-1362671636_thumb.jpg

І зайчика в адмінах.

 

post-4093-0-68959600-1362671667.jpg

Ссылка на сообщение
Поделиться на других сайтах

Ничего личного но звучало это как: "Вы nightfly/morfey/Небесный/bizzarre(никого не забыл?) настолько криворукие м@д#ки что за почти год топтания на месте родили что-то крайне убогое на что и смотреть то жаль, а все из-за того у меня предварительно не спросили".

 

http://www.youtube.com/watch?v=OXoap2lKS3M

Ссылка на сообщение
Поделиться на других сайтах

Сразу объявляю для всех пугающихся - при удалении пользователя при помощи нового модуля "смертушки с косой" происходит последовательно следующее:

 

1. пользователь выселяется

2. убивается его почта

3. удаляются его примечания

4. удаляются телефоны и мобилки

5. удаляется Ф.И.О.

6. Сносятся все оверрайды скорости

7. Грохается договор

8. Очищаются счета виртуальных сервисов

9. Очищаются данные сетей (айпишки, маки, итд)

10. Если требуется происходит регенерация всех конфигов DHCP

11. Вызывается процедура удаления пользователя stargazer

 

Сам по себе логин пользователя stargazer ищезает через минуту-две, не следует сразу пугаться и писать мне "аааа, все погибло". Это связано с тем что stargazer выжидает удачный момент (ну чтобы небыло свидетелей) что-бы по тихому убить пользователя :(

 

Еще один ньюанс - в релизе 0.1.4 происходит выселение пользователя и его квартира остается бесхозной. В 0.1.5 это уже исправлено - она взрывается при надобности автоматически.

Для того чтобы обойти этот ефект можно просто перед удалением пользователя его выселять.

Ссылка на сообщение
Поделиться на других сайтах

...

Это связано с тем что stargazer выжидает удачный момент (ну чтобы небыло свидетелей) что-бы по тихому убить пользователя :)

...

Это лучшее объяснение процесса из всех которые я когда-либо слышал (и сам сочинял) :)

 

...

Сам по себе логин пользователя stargazer ищезает через минуту-две...

Скорее через 2-3 минуты.

Ссылка на сообщение
Поделиться на других сайтах

Обновили сайт от версии "сделайте меня развидеть это" до варианта "три холодильника лучше чем два".

Релиз 0.1.5 как водиться очень даже не за горами. За процесом изменений как водиться можно понаблюдать здесь

Ссылка на сообщение
Поделиться на других сайтах

Кстати, nightfly, у тебя запись detailstat включена?

У себя начал наблюдать высокую i/o загрузку от мускула. Пока запись детальной статистики выключил, попустило.....

Ссылка на сообщение
Поделиться на других сайтах

Включена, но только для пользователей со старыми трафикоориентированными тарифами, что в процентом выражении выглядит как 0% с округлением до целых. В общем то и трафик сейчас считается только для проформы.

Если есть сильная потребность в глубокой детализации трафика возможно есть смысл разгреб%#ь его на другом хосте средствами flow-tools?

Ссылка на сообщение
Поделиться на других сайтах

http://xxx.xxx.xxx.xxx/?module=report_sysload

Ничего не открывает, долго бегает строка ожидания, пока откроет страницу и на выходе ноль.....

 

http://xxx.xxx.xxx.xxx/phpsysinfo

открытие - моментальное.

 

В чем может быть грабля? Как отдебажить?

Ссылка на сообщение
Поделиться на других сайтах

http://xxx.xxx.xxx.x...=report_sysload

Ничего не открывает, долго бегает строка ожидания, пока откроет страницу и на выходе ноль.....

Возможно в том, что и у меня было :

Путь к top в пакетном режиме

пропишите :

/usr/bin/top -b -n1

Ссылка на сообщение
Поделиться на других сайтах

Как и обещал (а обещал "вскоре") в основном багфикс релиз Ubilling 0.1.5 rev 688

 

Изменения:

* Модуль "Удаление пользователя": исправлено неполное удаление квартиры, раньше происходило только выселение

* Модуль "Права администраторов": добавлено удаление администратора

* Модуль "Права администраторов": добавлено изменение пароля и прочих полей пользователя

* alter.ini: новый параметр TRANSLATE_PAYMENTS_NOTES отвечающий за приведение примечаний к платежам к человеческому виду

* Модуль "Финансовый отчет": теперь администратор произвевший оплату логируется отдельно вместо поиска по времени в общем логе

* Изменилась структура БД: таблица "payments"

* Модуль "Отчет по подключениям": исправлена ошибка в случае удаления пользователя

* alter.ini: новый параметр HIGHLIGHT_IMPORTANT подсвечивающий в профиле важные поля: логин, пароль, IP итд.

* Модуль "Популярность тарифов": исправлена ошибка в случае выселения пользователя

* Модуль "Отчет по трафику": добавлена фильтрация NAS с одинаковой ссылкой на Bandwidthd

* Исправлена работа функции web_Overlay

* Модуль "Предприниматели": добавлено редактирование

 

После обновления объязательно и настоятельно требуется вкатить в SQL-консоль следующий малююсенький мидлпатчик на БД:

 

ALTER TABLE `payments` ADD `admin` VARCHAR( 255 ) NULL DEFAULT NULL AFTER `date`;

 

Вот плюшка для тех, кто до конца не разобрался что нужно бекапить перед обновлением:

#!/bin/sh

# Привет, я скрипт автообновления для очень ленивых.  Я с удволольствием спрячу все ваши данные
# и обновлю Ubilling до последней версии. Положите меня на уровень выше каталога
# где размещен сам Ubilling (например по адресу /usr/local/www/data/autobillingupdate.sh если
# ubilling находится в каталоге /usr/local/www/data/billing)
#
# P.S. так как я скрипт для самых ленивых я использую wget, он должен быть установлен.

echo "=== Backup current data ==="
cd ./billing/
rm -fr ../ub_restore
mkdir ../ub_restore
mkdir ../ub_restore/config
mkdir ../ub_restore/content
mkdir ../ub_restore/multinet
cp .htaccess ../ub_restore/
cp -R ./multinet ../ub_restore/
cp ./config/alter.ini ../ub_restore/config/
cp ./config/billing.ini ../ub_restore/config/
cp ./config/mysql.ini ../ub_restore/config/
cp -R ./config/dhcp ../ub_restore/config/
cp -R ./content/users ../ub_restore/content/
cp ./config/printcheck.tpl ../ub_restore/config/
echo "=== Backup current version ===="
rm -fr ../ub_old_version
mkdir ../ub_old_version
cp -R ./* ../ub_old_version
echo "=== Cleanup ==="
rm -fr ./*
echo "=== Downloading new release ==="
wget http://ubilling.net.ua/ub.tgz
echo "=== Unpacking ==="
tar zxvf ub.tgz
echo "=== Restoring configs ==="
cp -R ../ub_restore/* ./
echo "=== Setting permissions ==="
chmod -R 777 content/ config/ multinet/ exports/ remote_nas.conf vservices.php
echo "=== Linking True Online ==="
ln -fs /etc/stargazer/dn /usr/local/www/data/billing/content/dn
echo "===Update complete ==="

 

Забирать свежатинку как водиться здесь: http://ubilling.net.ua/ub.tgz

Обновленное демо где-то там: http://ubilling.net....npages&pid=demo

Более-менее актуальная инструкция по установке: http://wiki.ubilling...id=setupfreebsd

 

Небольшой анонс: уходим в глубокий и затяжной андеграунд в связи с обилием заказной писанины.

Что должно появиться в 0.1.6? Довольно сложный вопрос но думаю план работ будет следующим:

- Конечно же в первую очередь, править проблемы о которых рапортуют наши дорогие слушатели и зрители

- В конце-концов довести до ума пользовательский кабинет (карточкопополнялка, тарифоменялка, документировать)

- Допилить возврат рандомных атрибутов RADIUS

- Портировать старый динамический шейпер хотябы в черновом варианте

- Учет хозяйственных операций (кто-что-куда-зачем-стырил?)

- Всякие маленькие полезняшечки типа arping или "истории DHCP" о которых давно просили но никак ручки не добирались

- Начать работы над функционалом учета КТВ

Ссылка на сообщение
Поделиться на других сайтах

Да блин, забыл :)

Просто у меня она слегка на другом хосте.

В любом случае пользовательской статистикой то что есть сейчас, это назвать сложно. Более на черновую заготовку похоже. Ведутся работы по ее приведению к общеупотребительному виду.

Ссылка на сообщение
Поделиться на других сайтах

Мда, вы таки сказочно правы - далее там идет работа с multinet_get_network_params() которое ожидает таки netid.

Странно как это можно было пропустить :)

 

С утра тщательно подебужу, там много старого кода перенесенного "как-есть".

Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від ppv
      Потрібно було витерти одну мережу, всі абоненти з неї були перенесені в іншу. Але світить що 6 IP зайняті, хоча вона повністю вільна.
       
      ID    Мережа/CID           RВсього IP        Використано IP ▾           Вільно IPСервіс
      6      172.16.70.0/23        506                    6                                       500
       
      Підкажіть як правильно це підчистити щоб видалити мережу.
    • Від ppv
      Проглянув FAQ і Ubilling Wiki. Зацікавило питання чи є в Ubilling якась реалізація reCAPTCHA, чи потрібно додавати руцями, (для прикладу для форми подачі заявок чи для кабінету користувача)?
       
    • Від sanyadnepr
      Приветствую всех.
      Подскажите пожалуйста где копнуть и нет ли проблемы со стороны протокола взаимодействия сити24 или возможно не учтена необходимая проверка в модуле сити24 в Ubilling, пока писал понял что похоже в проверке payID, но это не точно.  
      Недавно обнаружилось с сити24 начали прилетать дубликаты платежей, в целом платежей мало, два одинаковых запроса Pay с одинаковым transactionID и payID в одну секунду одному платежному ID при этом биллинг "думает" примерно чуть больше минуты и отвечает одним ответом <result>0</result>, сити24 утверждает что ответ они не получили и по протоколу дальше повторяет запросы дублем, биллинг ответ и так по кругу, сити24 спрашивает каким образом с одинаковым payID от сити24 билл продолжает обрабатывать запросы и пополнять абоненту счет раз в 5 минут примерно, на одну и туже сумму, ведь этот payID уже был обработан предполагают сити24 согласно протоколу.
      Конечно есть вопрос к сити24 зачем они дублем присылают два запроса, но они отвечают что эта ситуация учтена в протоколе и проблема на стороне биллинга, потому что он пополняет счет по уже обработанному одинаковому payID.
      При этом transactionID в дублях одинаковый, но с каждым новым дублем разный.
      Если зафаерволить запросы от сити24, но оставить возможность отвечать то после блокировки билл отправляет 2-3 минуты 6 ответов <account>0001</account>  <result>0</result>.
      После снятия блокировки, дубли и платежи нескольких проблемных абонентов прилетают так же по кругу, при этом и с некоторыми новыми пополнениями происходит аналогичная ситуация.
      В openpayz в платежах transactionID и не видно payID.
    • Від nightfly
      Ubilling 1.4.3 rev 9058 The Bladewood Grove
       
      Зміни в структурі БД. alter.ini: нові опції OPHANIMFLOW_ENABLED та OPHANIMFLOW_URLS котрі вмикають та керують інтеграцією з OphanimFlow. alter:ini: нова опція PHOTOSTORAGE_POSTPROCESSING, що вмикає післяобробку зображень при завантаженні в Сховище зображень. alter:ini: нова опція PHOTOSTORAGE_WATERMARK, що вмикає розміщення вотермарки на всіх зображеннях, що завантажуються. alter:ini: нова опція PHOTOSTORAGE_RECOMPRESS, що вмикає зміну компрессії завантажених зображень. alter:ini: нова опція PHOTOSTORAGE_AUTORESIZE, що вмикає автоматичне та лагідне масштабування зображень конячих розмірів. alter:ini: нова опція PHOTOSTORAGE_DRAWIMGINFO, що вмикає вдруковування в зображення відлагоджувальної інформації. alter.ini: нова опція ONDEMAND_CHARTS, що вмикає відкладене завантаження графіків завантаження користувацької смуги. userstats.ini: нова опція OPHANIM_ENABLED, що вмикає інтеграцію OphanimFlow в кабінеті користувача. Модуль Заздрість: тепер авторизаційні дані пристроїв, не відображаються в списку пристроїв. Модуль “Заздрість”: при створенні та редагуванні пристроїв, для полів “пароль” та “enable пароль” тепер використовуються інпути паролів. Модуль “Заздрість”: заздрісним пристроям додано нове поле “Порт”. Тепер в скриптах можна використовувати, відповідний макрос {PORT}. Модуль “Статистика трафіку користувача”: проведено радикальний рефакторинг. Модуль “Статистика трафіку користувача”: додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Модуль “Статистика трафіку користувача”: виправлено проблему невірного відображення залишку коштів на кінець місяця, при використанні Ішимури. Модуль “Статистика трафіку користувача”: додано можливість відображення графіків за останню годину з OphanimFlow. Модуль “Користувачі”: додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Модуль “Сховище зображень”: тепер додатково перевіряє завантажувані зображення на тему їх валідності. Модуль “Фінансові операції”: виправлено відображення суми платежів користувача. Remote API: новий виклик ophanimtraff, який просто бере і синхронізує локальну БД з віддаленими джерелами OphanimFlow. Remote API: виклик userbynum тепер також опційно містить поле з “Платіжним ID” користувача. Глобально: у всіх полях вводу паролів, окрім форми входу, тепер відображається елемент керування “показати/приховати” пароль. Кабінет користувача: в модулі “Трафік” додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Кабінет користувача: в модулі “Трафік” виправлено проблему невірного відображення залишку коштів на кінець місяця, при використанні Ішимури. Кабінет користувача: в модулі “Відеоспостереження” для NVR WolfRecorder замінено розділювач попередньо заповнених даних авторизації. OpenPayz: додано frontend portmonemulti, для отримання платежів від різних контрагентів. Інформацію по контрагентам бере з біллінгу, також використовую розширену інформацію контрагента. Платіжна система в контрагенті мусить бути створена, як PORTMONE 1984tech: додано функціонал генерації RPZ для isc-bind, спасибі @misterromanbush  
      Повний чейнджлог
      Оновлена демка
       

    • Від mac
      Здається, після оновлення PHP 7.4 до PHP 8.2 feesharvester припинив працювати:
       
      /usr/local/bin/curl "http://127.0.0.1/billing/?module=remoteapi&key={SERIAL}&action=feesharvester" <br /> <b>Fatal error</b>: Uncaught TypeError: Unsupported operand types: string - string in {UBPATH}/billing/api/libs/api.fundsflow.php:570 Stack trace: #0 {UBPATH}/billing/modules/remoteapi/feesharvester.php(22): FundsFlow-&gt;harvestFees('2024-01') ...  
      Невеличке розслідування врешті з'ясувало, що це через наявність пробілу у деяких логінах абонентів. Як так сталося? Тому що інколи був неуважно додан трейлінг пробіл до номеру будинка і цей пробіл потрапив до логіну абоненту. Логін абоненту неможливо змінити ніяким чином штатними засобами. Я не розглядаю створення нового абонента для усунення помілки.

      Був обран такий шлях вирішення проблеми. Заміну функції php explode() знайшов у мережі. Мабуть це станеться в нагоді:

       
      diff api.fundsflow.php.bak api.fundsflow.php.new 559c559 < $eachfee = explode(' ', $eachline); --- > $eachfee = preg_split("~(?<!\\\\)(?:\\\\{2})*'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'(*SKIP)(*F)|\s+~s" , $eachline);  

×
×
  • Створити нове...