The Magician

This is an old revision of the document!


Скрипт загрузки подписей CGP

Задачу установки подписи в формате HTML встроенным функционалом CGP не решить. Вендор предоставляет скрипт загрузки подписи по запросу. Вопросам использования данного скрипта посвящен этот материал.

Зависимости

Прежде, чем успешно использовать Python-скрипт - потребуется установить необходимые зависимости, которые описаны в файле requirements.txt.

CGPCLI
et_xmlfile
numpy
openpyxl
pandas
python-dateutil
pytz
six
tzdata

Пример установки:

pip3.11 install openpyxl

Подготовка к запуску скрипта

Все основные настройки задаются в файле: signature.conf. Вот его примерное содержимое:

# файл конфигурации для утилиты signature.py

[info]
# адрес сервера (по умолчанию server = 127.0.0.1)
server = cgp.domain.ru

# логин администратора
user = admin@postmaster.local

# Пароль администратора
pass = Passw0rd

# имя домена (по умолчанию @testdomain. если домен основной, вводить не обязательно)
domain_name = @domain.ru

# название файла с изображением в кодировке base64
img = img.txt

# название файла со списком пользователей, которым необходимо добавить подпись
xlsx = userlist.xlsx

# название файла с простой подписью
signature = simple_signature.txt

# название файла с html подписью
signature_html = html_signature.html

[attr]
# словарь соответствия атрибутов (слева - используемое название для вставки в файлы-подписи; справа - название атрибутов в CGP)
attrs_dict = {
        "__name__":"RealName",
        "__company__":"o",
        "__department__":"ou",
        "__l__":"l",
        "__mail__":"mail",
        "__st__":"st",
        "__telnum__":"telephoneNumber",
        "__title__":"title",
        "__web__":"defaultWebPage"
    }

:!: Примечание 1: логин для пользователя postmaster необходимо задавать именно так: ЧТО-НИБУДЬ@postmaster.local. Во время сеанса по протоколу PWD данное имя будет транслировано в postmaster.

:!: Примечание 2: не забыть @ перед именем домена.

:!: Примечание 3: userlist.xlsx - это именно полноценный Excel-файл, содержащий соответствующую разметку (не просто CSV).

Содержимое подписи

Изображение (логотип)

Изображение или логотип задается в файле img.txt в base64. Пример содержимого:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABQCAYAAABcbTqwAAAACXBIWXM
...
NMMJVKAAAAAElFTkSuQmCC

В Linux мы можем создать такое изображение следующим образом:

PNG

echo -n 'data:image/png;base64,' > img.txt
base64 -w 0 logo.png >> img.txt

JPG

echo -n 'data:image/jpeg;base64,' > img.txt
base64 -w 0 logo.jpg >> img.txt

Текстовая подпись

Текстовая подпись содержится в файле simple_signature.txt. Пример:

Test signature

:!: Примечание: для загрузки русского текста из этого файла нужно найти решение, т.к. если просто указать русский текст - получим ошибку:

CGP set account prefs for the user ivanov Failed
скрипт_загрузки_подписей_cgp.1789397488.txt.gz · Last modified: by jp