Показано с 1 по 7 из 7.

Тема: user.add.finish несколько вопросов по API

  1. #1
    Senior Member
    Регистрация
    03.04.2013
    Сообщений
    354

    Question user.add.finish несколько вопросов по API

    Сделали такой xml файл:
    <?xml version="1.0" encoding="UTF-8"?>
    <mgrdata>
    <handler name="useredit" type="cgi">
    <event name="user.add.finish" after="yes"/>
    </handler>
    </mgrdata>

    разметили его в
    /usr/local/mgr5/etc/xml

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

    user.add.finish.jpg

    И в нашем аддоне получаем переменные окружения от панели:

    4 раза запускается скрипт панелью и получается 4 раза такие данные:

    | $ENV{'ACTION_NAME'}=user.add.finish
    | $ENV{'EVENT_TYPE'}=after
    | $ENV{'PARAM_addinfo'}=on
    | $ENV{'PARAM_clicked_button'}=finish
    | $ENV{'PARAM_func'}=user.add.finish
    | $ENV{'PARAM_hfields'}=limit_db_users
    | $ENV{'PARAM_name'}=qqyyuu
    | $ENV{'PARAM_out'}=devel
    | $ENV{'PARAM_progressid'}=false

    --------------------------------
    | $ENV{'ACTION_NAME'}=user.add.finish
    | $ENV{'EVENT_TYPE'}=after
    | $ENV{'PARAM_addinfo'}=on
    | $ENV{'PARAM_clicked_button'}=finish
    | $ENV{'PARAM_func'}=user.add.finish
    | $ENV{'PARAM_hfields'}=limit_db_users
    | $ENV{'PARAM_id'}=qqyyuu
    | $ENV{'PARAM_name'}=qqyyuu
    | $ENV{'PARAM_out'}=devel
    | $ENV{'PARAM_progressid'}=false
    | $ENV{'PARAM_step'}=user.add.finish

    --------------------------------
    | $ENV{'ACTION_NAME'}=user.add.finish
    | $ENV{'EVENT_TYPE'}=after
    | $ENV{'PARAM_addinfo'}=on
    | $ENV{'PARAM_clicked_button'}=finish
    | $ENV{'PARAM_func'}=user.add.finish
    | $ENV{'PARAM_hfields'}=limit_db_users
    | $ENV{'PARAM_id'}=qqyyuu
    | $ENV{'PARAM_name'}=qqyyuu
    | $ENV{'PARAM_out'}=devel
    | $ENV{'PARAM_progressid'}=false
    | $ENV{'PARAM_sok'}=ok
    | $ENV{'PARAM_step'}=user.add.finish

    --------------------------------
    | $ENV{'ACTION_NAME'}=user.add.finish
    | $ENV{'EVENT_TYPE'}=after
    | $ENV{'PARAM_addinfo'}=on
    | $ENV{'PARAM_clicked_button'}=finish
    | $ENV{'PARAM_func'}=user.add.finish
    | $ENV{'PARAM_hfields'}=limit_db_users
    | $ENV{'PARAM_name'}=qqyyuu
    | $ENV{'PARAM_progressid'}=false
    | $ENV{'PARAM_sok'}=ok

    --------------------------------
    (другие входящие переменные я убрал так как они одинаковые)

    и отсюда несколько вопросов возникает
    1) Зачем панель вызывает мой аддон 4 раза со схожими параметрами (например PARAM_sok дважды приходит) и как сформировать xml файл чтобы он запускался всё-таки один раз ?
    2) Чем отличается когда происходит запуск аддона с параметром $ENV{'PARAM_out'}=devel и $ENV{'PARAM_sok'}=ok от когда момента когда $ENV{'PARAM_sok'}=ok и нет PARAM_out=devel?
    3)

    Если я добавлю в xml файл
    <event name="user.edit" after="yes"/>

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

    P.S. мой скрипт-аддон всякий раз когда его запускает панель отдает после ответ такой: <?xml version="1.0" encoding="UTF-8"?><doc/>

    Прошу помочь с информацией.
    Спасибо.
    Последний раз редактировалось pixel; 14.09.2017 в 04:18.

  2. #2
    Senior Member
    Регистрация
    03.04.2013
    Сообщений
    354

    По умолчанию

    Видимо вопросы очень сложные и чтобы узнать ответ нужно через платный запрос в http://my.ispsystem.com/ спрашивать вопросы по документации?
    Последний раз редактировалось pixel; 16.09.2017 в 00:26.

  3. #3
    Senior Member
    Регистрация
    03.04.2013
    Сообщений
    354

    По умолчанию

    Ещё вопрос при удалении например сразу 3 юзеров в панели версии ISPmanager Lite 5.117.2
    в аддон приходят такие параметры:

    $ENV{'ACTION_NAME'}=user.delete
    $ENV{'EVENT_TYPE'}=before
    $ENV{'PARAM_elid'}=ertert, rtyrty, werwer
    $ENV{'PARAM_func'}=user.delete
    $ENV{'PARAM_operafake'}=1505495118940
    $ENV{'PARAM_plid'}=
    $ENV{'PARAM_progressid'}=_deletelist1505495066332
    $ENV{'PARAM_sfrom'}=ajax

    И после я проверял юзера действительно удаляются, но почему не приходит переменная

    $ENV{'PARAM_sok'} eq "ok"

    ?

  4. #4
    Senior Member
    Регистрация
    03.04.2013
    Сообщений
    354

    По умолчанию

    Ещё вопрос:

    Ааддон после того как отработал дает такой ответ:
    <?xml version="1.0" encoding="UTF-8"?><doc/>

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

    Для чего мне это нужно, цепочка такая
    billmanager отправляет в ispmanager команду создать пользователя
    мой аддон в ispmanager решил что создавать юзера нельзя
    что он должен ответить чтобы:
    1) ispmanager не создал юзера?
    2) чтобы ispmanager сказал биллингу что юзера создать нельзя успокойся и прекрати отправлять команды на создание этого юзера? (если этого не сделать биллинг пытается с определенной переодичностью таки создать этого юзера)

  5. #5
    Support team Аватар для usaafko
    Регистрация
    06.10.2013
    Сообщений
    2,305

    По умолчанию

    Какой мне ответ нужно сделать если я считаю что есть какая-то ошибка и панель после работы моего аддона не должна ничего делать
    например должна не создавать юзера.
    Нужно вернуть ошибку
    https://doc.ispsystem.ru/index.php/Ошибки

    И после я проверял юзера действительно удаляются, но почему не приходит переменная

    $ENV{'PARAM_sok'} eq "ok"
    На удаление не передается sok

    sok - признак сохранения формы. Это к вопросу - как отличить открытие параметров пользователя от сохранения

    1) Зачем панель вызывает мой аддон 4 раза со схожими параметрами (например PARAM_sok дважды приходит) и как сформировать xml файл чтобы он запускался всё-таки один раз ?
    2) Чем отличается когда происходит запуск аддона с параметром $ENV{'PARAM_out'}=devel и $ENV{'PARAM_sok'}=ok от когда момента когда $ENV{'PARAM_sok'}=ok и нет PARAM_out=devel?
    Внутри user.add.finish запускается внутренний запрос с такой же функцией (в логе видно EXTINFO Internal) - отсюда и несколько вызовов. Вам нужен тот, который с sok и без devel

  6. #6
    Senior Member
    Регистрация
    03.04.2013
    Сообщений
    354

    По умолчанию

    А зачем вызов аддона осуществляется 4 раза?

  7. #7
    Support team Аватар для usaafko
    Регистрация
    06.10.2013
    Сообщений
    2,305

    По умолчанию

    Позвольте этот вопрос оставить без ответа. Так устроена схема внутренних вызовов в панели

Метки этой темы

Ваши права в разделе

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •