Ad Widget

Collapse

zabbix API user.get

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • borin
    Junior Member
    • Sep 2013
    • 21

    #1

    zabbix API user.get

    Добрый день!

    Подскажите пожалуйста как с помощью api и auth, вытащить информацию по текущему пользователю, т.е. по пользователю которому принадлежит этот самый auth. Метод user.get возвращает весь список, а надо только самого себя.
  • andreysan
    Member
    • Dec 2009
    • 34

    #2
    Я так понимаю , что Вам необходима информация по залогиненному в web морде пользователю.
    Если обратится к первоисточнику те frontends/php/api/classes/CUser.php.
    то мы с удивлиением обнаружим
    следующую функцию

    public function checkAuthentication($sessionid)

    (к сожалению в документации о ней ничего я не нашел, а Ваш вопрос меня сильно заинтересовал)

    Решение:
    С помощью всемогущего javascript отлавливаем cookie

    zbx_sessionid

    и скармливаем его приблизительно так

    {
    jsonrpc: "2.0",
    method: "user.checkAuthentication",
    params: {
    sessionid: "46ee4f4d3a454f3a2e513a2546e0cad3"
    },
    id: 1
    };

    У меня все получилось. В ответ получил полный расклад по залогиненному user'у

    PS Возможно эта функция не предназначена для широкого использования ;-)
    Last edited by andreysan; 03-01-2014, 09:16.

    Comment

    • borin
      Junior Member
      • Sep 2013
      • 21

      #3
      Спасибо! Действительно работает, возвращает Info о пользователе. Жаль что, данный функционал не задокументирован.
      Нашел еще способ как получить id, можно использовать метод user.updateprofile, но с пустыми параметрами, в ответ получим искомый id.
      Нооо вариант с user.checkAuthentication нравится больше, так как за один проход возвращает необходимую мне информацию.

      Comment

      • borin
        Junior Member
        • Sep 2013
        • 21

        #4
        Кстати покопался в исходниках, и нашел вот что:
        1) api_jsonrpc.php вызывает метод execute класса CJSONrpc
        2) В методе execute класса CJSONrpc, вызывается метод call класса czbxrpc
        3) А вот уже в методе call класса czbxrpc, как раз есть упоминание вызова метода user.checkAuthentication без авторизации. Вот кусок кода:
        Code:
        // list of methods which does not require authentication
        $withoutAuth = array(
        	'user.login' => 1,
        	'user.checkAuthentication' => 1,
        	'apiinfo.version' => 1
        );
        Что я думаю свидетельствует о том, что ваше предположение об использовании метода user.checkAuthentication верно. Возможно просто забыли добавить в доки.

        P.S. Еще раз спасибо, за помощь.

        Comment

        Working...