2013-10-10 02:50:20 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
if(!defined('ONYX')) exit;
|
|
|
|
|
2013-11-12 21:41:10 +00:00
|
|
|
include 'certificate.php';
|
|
|
|
|
2013-11-08 18:15:17 +00:00
|
|
|
if (!empty($_FILES["inputFile"]['tmp_name']))
|
2013-10-10 02:50:20 +00:00
|
|
|
{
|
2013-11-25 17:24:46 +00:00
|
|
|
if (isset($VAR['misc_dir']))
|
|
|
|
$misc_dir = $VAR['misc_dir'];
|
|
|
|
else
|
|
|
|
{
|
|
|
|
erreur("Please add the misc_dir variable into root.xml");
|
|
|
|
return "admin/import_users";
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!file_exists("$misc_dir/pki/cacert.crt"))
|
2013-11-12 19:24:34 +00:00
|
|
|
{
|
|
|
|
erreur("The root certificate file not found, please create this first");
|
|
|
|
return "admin/import_users";
|
|
|
|
}
|
|
|
|
|
2013-11-08 18:15:17 +00:00
|
|
|
$doc = new DOMDocument();
|
|
|
|
if (@!$doc->load($_FILES["inputFile"]['tmp_name']))
|
|
|
|
{
|
|
|
|
erreur("Unable to parse given file. A XML file was expected.");
|
2013-11-12 19:24:34 +00:00
|
|
|
return "admin/import_users";
|
2013-11-08 18:15:17 +00:00
|
|
|
}
|
2013-10-10 03:22:52 +00:00
|
|
|
|
2013-11-08 18:15:17 +00:00
|
|
|
$xpath = new DOMXpath($doc);
|
|
|
|
$elements = $xpath->query("//teams/team");
|
|
|
|
if (!is_null($elements))
|
2013-10-10 02:50:20 +00:00
|
|
|
{
|
2013-11-25 18:36:28 +00:00
|
|
|
$output = "";
|
2013-11-30 14:44:06 +00:00
|
|
|
$error = "";
|
|
|
|
|
2013-11-08 18:15:17 +00:00
|
|
|
foreach ($elements as $element)
|
2013-10-10 02:50:20 +00:00
|
|
|
{
|
2013-11-08 18:15:17 +00:00
|
|
|
$team = new Team();
|
2013-10-10 02:50:20 +00:00
|
|
|
|
2013-11-08 18:15:17 +00:00
|
|
|
foreach ($element->childNodes as $child)
|
2013-10-10 02:50:20 +00:00
|
|
|
{
|
2013-11-08 18:15:17 +00:00
|
|
|
if ($child->nodeName == "name")
|
|
|
|
$team->team_name = $child->nodeValue;
|
2013-10-10 02:50:20 +00:00
|
|
|
|
2013-11-08 18:15:17 +00:00
|
|
|
else if ($child->nodeName == "slogan")
|
|
|
|
$team->slogan = $child->nodeValue;
|
2013-10-10 02:50:20 +00:00
|
|
|
|
2013-11-08 18:15:17 +00:00
|
|
|
else if ($child->nodeName == "member")
|
2013-10-10 02:50:20 +00:00
|
|
|
{
|
2013-12-01 00:08:40 +00:00
|
|
|
// Slogan rly needed ?
|
|
|
|
if (empty($team->id) && !$team->update())
|
2013-11-30 14:44:06 +00:00
|
|
|
{
|
2013-12-01 00:08:40 +00:00
|
|
|
$error .= "Unable to add team $team->team_name</br>";
|
|
|
|
continue;
|
2013-11-30 14:44:06 +00:00
|
|
|
}
|
2013-10-10 02:50:20 +00:00
|
|
|
|
2013-11-08 18:15:17 +00:00
|
|
|
$user = new Member();
|
|
|
|
$user->team = $team;
|
|
|
|
foreach ($child->childNodes as $child_member)
|
|
|
|
{
|
|
|
|
if ($child_member->nodeName == "firstname")
|
|
|
|
$user->firstname = $child_member->nodeValue;
|
2013-10-10 02:50:20 +00:00
|
|
|
|
2013-11-08 18:15:17 +00:00
|
|
|
else if ($child_member->nodeName == "lastname")
|
|
|
|
$user->lastname = $child_member->nodeValue;
|
|
|
|
|
|
|
|
else if ($child_member->nodeName == "company")
|
|
|
|
$user->company = $child_member->nodeValue;
|
2013-11-30 14:44:06 +00:00
|
|
|
else if ($child_member->nodeName == "nickname")
|
|
|
|
$user->nickname = $child_member->nodeValue;
|
2013-11-08 18:15:17 +00:00
|
|
|
}
|
2013-10-10 02:50:20 +00:00
|
|
|
|
2013-11-08 18:15:17 +00:00
|
|
|
if (!$user->update())
|
2013-11-30 14:44:06 +00:00
|
|
|
{
|
|
|
|
$error .= "Unable to add user $user->firstname $user->lastname $user->nickname </br>";
|
|
|
|
$team->drop();
|
|
|
|
continue;
|
|
|
|
}
|
2013-11-08 18:15:17 +00:00
|
|
|
|
|
|
|
$team->members[] = $user;
|
|
|
|
}
|
2013-10-10 02:50:20 +00:00
|
|
|
}
|
2013-11-30 14:44:06 +00:00
|
|
|
if (!empty($team->id) && !empty($team->team_name))
|
2013-11-12 21:41:10 +00:00
|
|
|
{
|
|
|
|
//TODO save the certificate subject
|
2013-11-25 18:36:28 +00:00
|
|
|
$output .= new_client($team->team_name, $misc_dir);
|
2013-11-12 21:41:10 +00:00
|
|
|
}
|
2013-10-10 02:50:20 +00:00
|
|
|
}
|
2013-12-01 00:08:40 +00:00
|
|
|
if (file_exists("$misc_dir/teams.pass"))
|
|
|
|
{
|
|
|
|
$output .= file_get_contents("$misc_dir/teams.pass");
|
|
|
|
unlink("$misc_dir/teams.pass");
|
|
|
|
}
|
2013-11-25 18:36:28 +00:00
|
|
|
$template->assign("output", $output);
|
2013-10-10 02:50:20 +00:00
|
|
|
}
|
2013-11-30 14:44:06 +00:00
|
|
|
|
|
|
|
if ($error != "")
|
|
|
|
erreur($error);
|
|
|
|
else
|
|
|
|
erreur("Fichier XML importé avec succès.", "success");
|
2013-10-10 02:50:20 +00:00
|
|
|
}
|
2013-11-08 18:15:17 +00:00
|
|
|
|
|
|
|
return "admin/import_users";
|