Как получить список пользователей проекта bugzilla с использованием XMLRPC после входа в систему

Я ищу ключевые слова XMLRPC, чтобы узнать список пользователей проекта BUGZILLA.

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

public function loginBz($url,$login,$password,$getResult)
{
set_time_limit(0);
$URI = $url;
$xml_data = array(
'login' => $login,
'password' => $password,
'remember' => 1
);
$ch = curl_init();
$file_cookie = tempnam ("/tmp", "CURLCOOKIE");
$options = array(
//CURLOPT_VERBOSE => true,
CURLOPT_URL     => $URI,
CURLOPT_POST    => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER  => array( 'Content-Type: text/xml', 'charset=utf-8' )
);

curl_setopt($ch, CURLOPT_TIMEOUT,60);
curl_setopt_array($ch, $options);
$request = xmlrpc_encode_request("User.login", $xml_data);
//  var_dump($request);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_COOKIEJAR, $file_cookie);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$server_output = curl_exec($ch); // Array( [id] => 1 ) for example

$response = xmlrpc_decode($server_output);

//print_r ($response);
if($getResult)
return $response;
else
return $ch;
}

public function getFieldsBz($product,$component,$ch){
$xml_data = array(
'product'     => $product,
'component' => '$component'
);

$request = xmlrpc_encode_request("Bug.user", $xml_data); // create a request for filing bugs
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
$server_output = curl_exec($ch); // Array( [id] => 1 ) for example
$response = xmlrpc_decode($server_output);

return $response;
}

Я искал в BugZilla API но не нашел то, что мне нужно: Список пользователей для продукта Bz.
Кто-нибудь знает, какое ключевое слово я должен использовать в xmlrpc_encode_request (ключевое слово, array_filter) ?

Это помогло бы 🙂

1

Решение

Во-первых, нет метода с именем Bug.user, смотрите https://www.bugzilla.org/docs/4.4/en/html/api/Bugzilla/WebService/Bug.html для полного списка.
Существует метод с именем User.get, см. https://www.bugzilla.org/docs/4.4/en/html/api/Bugzilla/WebService/User.html#get
Существует параметр под названием groups, который может делать то, что вы хотите, в зависимости от того, как вы настроили безопасность Bugzilla.
Ты можешь использовать https://xmlrpc.devzing.com/ для экспериментов или при обновлении до Bugzilla 5.x вы можете использовать новый REST API. https://www.bugzilla.org/docs/5.0/en/html/api/Bugzilla/WebService/Server/REST.html

0

Другие решения

Других решений пока нет …