Exemplo n.º 1
0
$user = CMediusers::get();
$dom = new CMbXMLDocument();
if (!$dom->load($file['tmp_name'])) {
    CAppUI::redirect('m=passwordKeeper&a=vw_import_keeper&dialog=1');
}
$xpath = new CMbXPath($dom);
$keeperNode = $xpath->queryUniqueNode("/keeper");
$keeperName = $keeperNode->getAttribute("name");
if ($keeperNode->nodeName != "keeper") {
    CAppUI::redirect('m=passwordKeeper&a=vw_import_keeper&dialog=1');
}
$keeper = new CPasswordKeeper();
$keeper->keeper_name = $keeperName;
$keeper->_passphrase = $passphrase;
$keeper->user_id = $user->_id;
$keeper->store();
$categoryNodes = $xpath->query("//category");
foreach ($categoryNodes as $_categoryNode) {
    $category = new CPasswordCategory();
    $category->category_name = $_categoryNode->getAttribute("name");
    $category->password_keeper_id = $keeper->_id;
    $category->store();
    $passwordNodes = $xpath->query(".//password", $_categoryNode);
    foreach ($passwordNodes as $_passwordNode) {
        $password = new CPasswordEntry();
        $desc = $xpath->queryUniqueNode("description", $_passwordNode);
        $password->password_description = $desc->nodeValue;
        $crypted = $xpath->queryUniqueNode("crypted", $_passwordNode);
        $password->password = $crypted->nodeValue;
        $last_change = $xpath->queryUniqueNode("last_change", $_passwordNode);
        $password->password_last_change = $last_change->nodeValue;