Бланк настроек

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку

На странице редактирования данных абонента есть ссылка «Бланк настроек». При ее запуске будет сформирован документ по шаблону, который вы можете изменить под свои нужды. Например:



Залогиньтесь под суперадмином и в разделе «Документы» создайте папку с именем, например, «Шаблоны». Справа в поле «теги» обязательно введите «system». Создайте документ с именем «Бланк настроек» и установите ему теги:

system
template=user_blank
role=admin

Вставьте текст:

<html>
<head><meta http-equiv='Content-Type' content='text/html; charset=utf-8'></head>
<body><pre>
id   : {{id}}
login: {{name|safe}}
fio  : {{fio|safe}}
</pre></body>
</html>


Откройте в браузере бланк настроек любого клиента и увидите результат из трех строк. Обратите внимание на '|safe' после имени переменной - это отфильтровка спецсимволов, которые могут исказить html.

Доступные переменные
id              : id учетной записи клиента
name            : логин
pass            : пароль
fio             : ФИО
ppc             : платежный код
grp             : номер группы клиента
grp_name        : имя группы
state           : on - доступ открыт, off - закрыт
state_off       : установлен если state равен off
contract        : договор
contract_date   : дата договора (timestamp)
contract_date_as_text : дата договора в виде dd.mm.yyyy
balance         : баланс
limit_balance   : граница отключения
block_if_limit  : отключать ли запись при достижении границы отключения
cstate          : техническое состояние (настроить/ремонт/вирусы...) в виде числа
comment         : комментарий
lstate          : нужна авторизация/всегда онлайн
discount        : скидка
traf            : суммарный трафик
traf_in         : суммарный трафик к клиенту
traf_out        : суммарный трафик от клиента
traf1           : трафик в байтах направления 1
...
traf4           : трафик в байтах направления 4
in1             : входящий трафик направления 1
out1            : исходящий трафик направления 1
...
dopdata         : дополнительные данные
services        : подключенные услуги
ips             : ip адреса

Поля dopdata, services и ips содержат в себе другие поля, поскольку может быть подключено несколько услуг и ip. ips содержит массив ip с такими данными:

ip          : ip в текстовом виде, например, 10.100.4.8
ipn         : ip в числовом виде, например, 174326792
tm_auth     : время авторизации в секундах
start       : timestamp начала авторизации
last        : timestamp последнего сигнала авторизации
release     : timestamp когда будет освобожден динамический ip
            если не будет больше сигналов авторизации
properties  : параметры авторизации через запятую
auth        : 1 если авторизован
type        : тип (статический/динамический)

Большинство параметров ip вряд ли вам понадобится, но работать с ними мы должны уметь:

Все ip клиента:

{% for ip in ips %} {{ip.ip}} ({{ip.type}}){% endfor %}

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

{% for ip in ips %}
   {{ip.ip}} ({{ip.type}})
   {% if ip.ipn >= inet.aton('10.0.0.0') && ip.ipn <= inet.aton('10.255.255.255') %}
    серый ip {% else %} белый ip
   {% endif %}
{% endfor %}

Выведите подключенные услуги, но только из модуля inet_unlim:

{% for i in services %}
   {% if i.module eq 'inet_unlim' %}
        {{i.description}}<br>
   {% endif %}
{% endfor %}

Дополнительные поля. Отобразим улицу:

{{dopdata._adr_street.show()}}