@@ -50,23 +50,23 @@ |
||
| 50 | 50 | Handle CASES |
| 51 | 51 | */ |
| 52 | 52 | switch (filter_input(INPUT_POST, 'type', FILTER_SANITIZE_STRING)) { |
| 53 | -case "checkSessionExists": |
|
| 54 | - // Case permit to check if SESSION is still valid |
|
| 55 | - session_start(); |
|
| 56 | - if (isset($_SESSION['CPM']) === true) { |
|
| 57 | - echo "1"; |
|
| 58 | - } else { |
|
| 59 | - // In case that no session is available |
|
| 60 | - // Force the page to be reloaded and attach the CSRFP info |
|
| 61 | - |
|
| 62 | - // Load CSRFP |
|
| 63 | - $csrfp_array = include '../includes/libraries/csrfp/libs/csrfp.config.php'; |
|
| 64 | - |
|
| 65 | - // Send back CSRFP info |
|
| 66 | - echo $csrfp_array['CSRFP_TOKEN'].";".filter_input(INPUT_POST, $csrfp_array['CSRFP_TOKEN'], FILTER_SANITIZE_STRING); |
|
| 67 | - } |
|
| 53 | + case "checkSessionExists": |
|
| 54 | + // Case permit to check if SESSION is still valid |
|
| 55 | + session_start(); |
|
| 56 | + if (isset($_SESSION['CPM']) === true) { |
|
| 57 | + echo "1"; |
|
| 58 | + } else { |
|
| 59 | + // In case that no session is available |
|
| 60 | + // Force the page to be reloaded and attach the CSRFP info |
|
| 61 | + |
|
| 62 | + // Load CSRFP |
|
| 63 | + $csrfp_array = include '../includes/libraries/csrfp/libs/csrfp.config.php'; |
|
| 64 | + |
|
| 65 | + // Send back CSRFP info |
|
| 66 | + echo $csrfp_array['CSRFP_TOKEN'].";".filter_input(INPUT_POST, $csrfp_array['CSRFP_TOKEN'], FILTER_SANITIZE_STRING); |
|
| 67 | + } |
|
| 68 | 68 | |
| 69 | - break; |
|
| 69 | + break; |
|
| 70 | 70 | } |
| 71 | 71 | |
| 72 | 72 | /** |
@@ -452,23 +452,23 @@ discard block |
||
| 452 | 452 | break; |
| 453 | 453 | |
| 454 | 454 | //CASE export in HTML format |
| 455 | - case "export_to_html_format": |
|
| 456 | - // step 1: |
|
| 457 | - // - prepare export file |
|
| 458 | - // - get full list of objects id to export |
|
| 459 | - include $SETTINGS['cpassman_dir'].'/includes/config/include.php'; |
|
| 460 | - include_once $SETTINGS['cpassman_dir'].'/includes/libraries/Encryption/GibberishAES/GibberishAES.php'; |
|
| 461 | - $idsList = array(); |
|
| 462 | - $objNumber = 0; |
|
| 463 | - |
|
| 464 | - foreach (explode(';', $post_ids) as $id) { |
|
| 465 | - if (in_array($id, $_SESSION['forbiden_pfs']) === false |
|
| 466 | - && in_array($id, $_SESSION['groupes_visibles']) === true |
|
| 467 | - && (in_array($id, $_SESSION['no_access_folders']) === false) |
|
| 468 | - ) { |
|
| 469 | - // count elements to display |
|
| 470 | - $result = DB::query( |
|
| 471 | - "SELECT i.id AS id, i.label AS label, i.restricted_to AS restricted_to, i.perso AS perso |
|
| 455 | + case "export_to_html_format": |
|
| 456 | + // step 1: |
|
| 457 | + // - prepare export file |
|
| 458 | + // - get full list of objects id to export |
|
| 459 | + include $SETTINGS['cpassman_dir'].'/includes/config/include.php'; |
|
| 460 | + include_once $SETTINGS['cpassman_dir'].'/includes/libraries/Encryption/GibberishAES/GibberishAES.php'; |
|
| 461 | + $idsList = array(); |
|
| 462 | + $objNumber = 0; |
|
| 463 | + |
|
| 464 | + foreach (explode(';', $post_ids) as $id) { |
|
| 465 | + if (in_array($id, $_SESSION['forbiden_pfs']) === false |
|
| 466 | + && in_array($id, $_SESSION['groupes_visibles']) === true |
|
| 467 | + && (in_array($id, $_SESSION['no_access_folders']) === false) |
|
| 468 | + ) { |
|
| 469 | + // count elements to display |
|
| 470 | + $result = DB::query( |
|
| 471 | + "SELECT i.id AS id, i.label AS label, i.restricted_to AS restricted_to, i.perso AS perso |
|
| 472 | 472 | FROM ".prefix_table("items")." as i |
| 473 | 473 | INNER JOIN ".prefix_table("nested_tree")." as n ON (i.id_tree = n.id) |
| 474 | 474 | INNER JOIN ".prefix_table("log_items")." as l ON (i.id = l.id_item) |
@@ -476,41 +476,41 @@ discard block |
||
| 476 | 476 | AND i.id_tree= %i |
| 477 | 477 | AND (l.action = %s OR (l.action = %s AND l.raison LIKE %s)) |
| 478 | 478 | ORDER BY i.label ASC, l.date DESC", |
| 479 | - "0", |
|
| 480 | - $id, |
|
| 481 | - "at_creation", |
|
| 482 | - "at_modification", |
|
| 483 | - "at_pw :%" |
|
| 484 | - ); |
|
| 485 | - foreach ($result as $record) { |
|
| 486 | - $restricted_users_array = explode(';', $record['restricted_to']); |
|
| 487 | - if (((in_array($id, $_SESSION['personal_visible_groups']) === true |
|
| 488 | - && !($record['perso'] == 1 && $_SESSION['user_id'] == $record['restricted_to']) |
|
| 489 | - && empty($record['restricted_to']) === false) |
|
| 490 | - || |
|
| 491 | - (empty($record['restricted_to']) === false |
|
| 492 | - && in_array($_SESSION['user_id'], $restricted_users_array) === false) |
|
| 493 | - || |
|
| 494 | - (in_array($id, $_SESSION['groupes_visibles'])) |
|
| 495 | - ) && ( |
|
| 496 | - in_array($record['id'], $idsList) === false |
|
| 497 | - ) |
|
| 498 | - ) { |
|
| 499 | - array_push($idsList, $record['id']); |
|
| 500 | - $objNumber++; |
|
| 479 | + "0", |
|
| 480 | + $id, |
|
| 481 | + "at_creation", |
|
| 482 | + "at_modification", |
|
| 483 | + "at_pw :%" |
|
| 484 | + ); |
|
| 485 | + foreach ($result as $record) { |
|
| 486 | + $restricted_users_array = explode(';', $record['restricted_to']); |
|
| 487 | + if (((in_array($id, $_SESSION['personal_visible_groups']) === true |
|
| 488 | + && !($record['perso'] == 1 && $_SESSION['user_id'] == $record['restricted_to']) |
|
| 489 | + && empty($record['restricted_to']) === false) |
|
| 490 | + || |
|
| 491 | + (empty($record['restricted_to']) === false |
|
| 492 | + && in_array($_SESSION['user_id'], $restricted_users_array) === false) |
|
| 493 | + || |
|
| 494 | + (in_array($id, $_SESSION['groupes_visibles'])) |
|
| 495 | + ) && ( |
|
| 496 | + in_array($record['id'], $idsList) === false |
|
| 497 | + ) |
|
| 498 | + ) { |
|
| 499 | + array_push($idsList, $record['id']); |
|
| 500 | + $objNumber++; |
|
| 501 | + } |
|
| 501 | 502 | } |
| 502 | 503 | } |
| 503 | 504 | } |
| 504 | - } |
|
| 505 | 505 | |
| 506 | - // prepare export file |
|
| 507 | - //save the file |
|
| 508 | - $html_file = '/teampass_export_'.time().'_'.generateKey().'.html'; |
|
| 509 | - //print_r($full_listing); |
|
| 510 | - $outstream = fopen($SETTINGS['path_to_files_folder'].$html_file, "w"); |
|
| 511 | - fwrite( |
|
| 512 | - $outstream, |
|
| 513 | - '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
|
| 506 | + // prepare export file |
|
| 507 | + //save the file |
|
| 508 | + $html_file = '/teampass_export_'.time().'_'.generateKey().'.html'; |
|
| 509 | + //print_r($full_listing); |
|
| 510 | + $outstream = fopen($SETTINGS['path_to_files_folder'].$html_file, "w"); |
|
| 511 | + fwrite( |
|
| 512 | + $outstream, |
|
| 513 | + '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
|
| 514 | 514 | <head> |
| 515 | 515 | <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> |
| 516 | 516 | <title>TeamPass Off-line mode</title> |
@@ -550,38 +550,38 @@ discard block |
||
| 550 | 550 | <th style="width:20%;">'.$LANG['url'].'</th> |
| 551 | 551 | </tr></thead> |
| 552 | 552 | <tbody id="itemsTable_tbody">' |
| 553 | - ); |
|
| 554 | - |
|
| 555 | - fclose($outstream); |
|
| 553 | + ); |
|
| 556 | 554 | |
| 557 | - // send back and continue |
|
| 558 | - echo '[{"loop":"true", "number":"'.$objNumber.'", "file":"'.$SETTINGS['path_to_files_folder'].$html_file.'" , "file_link":"'.$SETTINGS['url_to_files_folder'].$html_file.'"}]'; |
|
| 559 | - break; |
|
| 555 | + fclose($outstream); |
|
| 560 | 556 | |
| 561 | - //CASE export in HTML format - Iteration loop |
|
| 562 | - case "export_to_html_format_loop": |
|
| 563 | - // do checks ... if fails, return an error |
|
| 564 | - if (null === $post_idTree || null === $post_idsList) { |
|
| 565 | - echo '[{"error":"true"}]'; |
|
| 557 | + // send back and continue |
|
| 558 | + echo '[{"loop":"true", "number":"'.$objNumber.'", "file":"'.$SETTINGS['path_to_files_folder'].$html_file.'" , "file_link":"'.$SETTINGS['url_to_files_folder'].$html_file.'"}]'; |
|
| 566 | 559 | break; |
| 567 | - } |
|
| 568 | 560 | |
| 569 | - // exclude this folder if not allowed |
|
| 570 | - if (in_array($post_idTree, $_SESSION['forbiden_pfs']) === true |
|
| 571 | - || in_array($post_idTree, $_SESSION['groupes_visibles']) === false |
|
| 572 | - || (in_array($post_idTree, $_SESSION['no_access_folders']) === true) |
|
| 573 | - ) { |
|
| 574 | - echo '[{"loop":"true", "number":"'.$post_number.'", "cpt":"'.$post_cpt.'", "file":"'.$post_file.'", "idsList":"'.$post_idsList.'" , "file_link":"'.$post_file_link.'"}]'; |
|
| 575 | - break; |
|
| 576 | - } |
|
| 561 | + //CASE export in HTML format - Iteration loop |
|
| 562 | + case "export_to_html_format_loop": |
|
| 563 | + // do checks ... if fails, return an error |
|
| 564 | + if (null === $post_idTree || null === $post_idsList) { |
|
| 565 | + echo '[{"error":"true"}]'; |
|
| 566 | + break; |
|
| 567 | + } |
|
| 577 | 568 | |
| 578 | - $full_listing = array(); |
|
| 579 | - $items_id_list = array(); |
|
| 580 | - include $SETTINGS['cpassman_dir'].'/includes/config/include.php'; |
|
| 581 | - include_once $SETTINGS['cpassman_dir'].'/includes/libraries/Encryption/GibberishAES/GibberishAES.php'; |
|
| 569 | + // exclude this folder if not allowed |
|
| 570 | + if (in_array($post_idTree, $_SESSION['forbiden_pfs']) === true |
|
| 571 | + || in_array($post_idTree, $_SESSION['groupes_visibles']) === false |
|
| 572 | + || (in_array($post_idTree, $_SESSION['no_access_folders']) === true) |
|
| 573 | + ) { |
|
| 574 | + echo '[{"loop":"true", "number":"'.$post_number.'", "cpt":"'.$post_cpt.'", "file":"'.$post_file.'", "idsList":"'.$post_idsList.'" , "file_link":"'.$post_file_link.'"}]'; |
|
| 575 | + break; |
|
| 576 | + } |
|
| 577 | + |
|
| 578 | + $full_listing = array(); |
|
| 579 | + $items_id_list = array(); |
|
| 580 | + include $SETTINGS['cpassman_dir'].'/includes/config/include.php'; |
|
| 581 | + include_once $SETTINGS['cpassman_dir'].'/includes/libraries/Encryption/GibberishAES/GibberishAES.php'; |
|
| 582 | 582 | |
| 583 | - $rows = DB::query( |
|
| 584 | - "SELECT i.id as id, i.url as url, i.perso as perso, i.label as label, i.description as description, i.pw as pw, i.login as login, i.id_tree as id_tree, |
|
| 583 | + $rows = DB::query( |
|
| 584 | + "SELECT i.id as id, i.url as url, i.perso as perso, i.label as label, i.description as description, i.pw as pw, i.login as login, i.id_tree as id_tree, |
|
| 585 | 585 | l.date as date, i.pw_iv as pw_iv, |
| 586 | 586 | n.renewal_period as renewal_period |
| 587 | 587 | FROM ".prefix_table("items")." as i |
@@ -591,108 +591,108 @@ discard block |
||
| 591 | 591 | AND i.id_tree= %i |
| 592 | 592 | AND (l.action = %s OR (l.action = %s AND l.raison LIKE %s)) |
| 593 | 593 | ORDER BY i.label ASC, l.date DESC", |
| 594 | - "0", |
|
| 595 | - $post_idTree, |
|
| 596 | - "at_creation", |
|
| 597 | - "at_modification", |
|
| 598 | - "at_pw :%" |
|
| 599 | - ); |
|
| 600 | - |
|
| 601 | - foreach ($rows as $record) { |
|
| 602 | - //exclude all results except the first one returned by query |
|
| 603 | - if (empty($id_managed) || $id_managed != $record['id']) { |
|
| 604 | - // decrypt PW |
|
| 605 | - if (empty($post_salt_key) === false && null !== $post_salt_key) { |
|
| 606 | - $pw = cryption( |
|
| 607 | - $record['pw'], |
|
| 608 | - mysqli_escape_string($link, stripslashes($post_salt_key)), |
|
| 609 | - "decrypt" |
|
| 594 | + "0", |
|
| 595 | + $post_idTree, |
|
| 596 | + "at_creation", |
|
| 597 | + "at_modification", |
|
| 598 | + "at_pw :%" |
|
| 599 | + ); |
|
| 600 | + |
|
| 601 | + foreach ($rows as $record) { |
|
| 602 | + //exclude all results except the first one returned by query |
|
| 603 | + if (empty($id_managed) || $id_managed != $record['id']) { |
|
| 604 | + // decrypt PW |
|
| 605 | + if (empty($post_salt_key) === false && null !== $post_salt_key) { |
|
| 606 | + $pw = cryption( |
|
| 607 | + $record['pw'], |
|
| 608 | + mysqli_escape_string($link, stripslashes($post_salt_key)), |
|
| 609 | + "decrypt" |
|
| 610 | + ); |
|
| 611 | + } else { |
|
| 612 | + $pw = cryption( |
|
| 613 | + $record['pw'], |
|
| 614 | + "", |
|
| 615 | + "decrypt" |
|
| 616 | + ); |
|
| 617 | + } |
|
| 618 | + array_push( |
|
| 619 | + $full_listing, array( |
|
| 620 | + 'id_tree' => $record['id_tree'], |
|
| 621 | + 'id' => $record['id'], |
|
| 622 | + 'label' => $record['label'], |
|
| 623 | + 'description' => addslashes(str_replace(array(";", "<br />"), array("|", "\n\r"), mysqli_escape_string($link, stripslashes(utf8_decode($record['description']))))), |
|
| 624 | + 'pw' => $pw['string'], |
|
| 625 | + 'login' => $record['login'], |
|
| 626 | + 'url' => $record['url'], |
|
| 627 | + 'perso' => $record['perso'] |
|
| 628 | + ) |
|
| 610 | 629 | ); |
| 611 | - } else { |
|
| 612 | - $pw = cryption( |
|
| 613 | - $record['pw'], |
|
| 614 | - "", |
|
| 615 | - "decrypt" |
|
| 630 | + $i++; |
|
| 631 | + array_push($items_id_list, $record['id']); |
|
| 632 | + |
|
| 633 | + // log |
|
| 634 | + logItems( |
|
| 635 | + $record['id'], |
|
| 636 | + $record['l SeekableIteratorabel'], |
|
| 637 | + $_SESSION['user_id'], |
|
| 638 | + 'at_export', |
|
| 639 | + $_SESSION['login'], |
|
| 640 | + 'html' |
|
| 616 | 641 | ); |
| 617 | 642 | } |
| 618 | - array_push( |
|
| 619 | - $full_listing, array( |
|
| 620 | - 'id_tree' => $record['id_tree'], |
|
| 621 | - 'id' => $record['id'], |
|
| 622 | - 'label' => $record['label'], |
|
| 623 | - 'description' => addslashes(str_replace(array(";", "<br />"), array("|", "\n\r"), mysqli_escape_string($link, stripslashes(utf8_decode($record['description']))))), |
|
| 624 | - 'pw' => $pw['string'], |
|
| 625 | - 'login' => $record['login'], |
|
| 626 | - 'url' => $record['url'], |
|
| 627 | - 'perso' => $record['perso'] |
|
| 628 | - ) |
|
| 629 | - ); |
|
| 630 | - $i++; |
|
| 631 | - array_push($items_id_list, $record['id']); |
|
| 632 | - |
|
| 633 | - // log |
|
| 634 | - logItems( |
|
| 635 | - $record['id'], |
|
| 636 | - $record['l SeekableIteratorabel'], |
|
| 637 | - $_SESSION['user_id'], |
|
| 638 | - 'at_export', |
|
| 639 | - $_SESSION['login'], |
|
| 640 | - 'html' |
|
| 641 | - ); |
|
| 643 | + $id_managed = $record['id']; |
|
| 642 | 644 | } |
| 643 | - $id_managed = $record['id']; |
|
| 644 | - } |
|
| 645 | 645 | |
| 646 | - //save in export file |
|
| 647 | - $outstream = fopen($post_file.'.txt', "a"); |
|
| 646 | + //save in export file |
|
| 647 | + $outstream = fopen($post_file.'.txt', "a"); |
|
| 648 | 648 | |
| 649 | - $lineType = "line1"; |
|
| 650 | - $idTree = ""; |
|
| 651 | - foreach ($full_listing as $elem) { |
|
| 652 | - if ($lineType == "line0") { |
|
| 653 | - $lineType = "line1"; |
|
| 654 | - } else { |
|
| 655 | - $lineType = "line0"; |
|
| 656 | - } |
|
| 657 | - if (empty($elem['description'])) { |
|
| 658 | - $desc = ' '; |
|
| 659 | - } else { |
|
| 660 | - $desc = addslashes($elem['description']); |
|
| 661 | - } |
|
| 662 | - if (empty($elem['login'])) { |
|
| 663 | - $login = ' '; |
|
| 664 | - } else { |
|
| 665 | - $login = addslashes($elem['login']); |
|
| 666 | - } |
|
| 667 | - if (empty($elem['url'])) { |
|
| 668 | - $url = ' '; |
|
| 669 | - } else { |
|
| 670 | - $url = addslashes($elem['url']); |
|
| 671 | - } |
|
| 649 | + $lineType = "line1"; |
|
| 650 | + $idTree = ""; |
|
| 651 | + foreach ($full_listing as $elem) { |
|
| 652 | + if ($lineType == "line0") { |
|
| 653 | + $lineType = "line1"; |
|
| 654 | + } else { |
|
| 655 | + $lineType = "line0"; |
|
| 656 | + } |
|
| 657 | + if (empty($elem['description'])) { |
|
| 658 | + $desc = ' '; |
|
| 659 | + } else { |
|
| 660 | + $desc = addslashes($elem['description']); |
|
| 661 | + } |
|
| 662 | + if (empty($elem['login'])) { |
|
| 663 | + $login = ' '; |
|
| 664 | + } else { |
|
| 665 | + $login = addslashes($elem['login']); |
|
| 666 | + } |
|
| 667 | + if (empty($elem['url'])) { |
|
| 668 | + $url = ' '; |
|
| 669 | + } else { |
|
| 670 | + $url = addslashes($elem['url']); |
|
| 671 | + } |
|
| 672 | 672 | |
| 673 | - // Prepare tree |
|
| 674 | - if ($idTree != $elem['id_tree']) { |
|
| 675 | - $arbo = $tree->getPath($elem['id_tree'], true); |
|
| 676 | - foreach ($arbo as $folder) { |
|
| 677 | - $arboHtml_tmp = htmlspecialchars(stripslashes($folder->title), ENT_QUOTES); |
|
| 678 | - if (empty($arboHtml)) { |
|
| 679 | - $arboHtml = $arboHtml_tmp; |
|
| 680 | - } else { |
|
| 681 | - $arboHtml .= ' » '.$arboHtml_tmp; |
|
| 673 | + // Prepare tree |
|
| 674 | + if ($idTree != $elem['id_tree']) { |
|
| 675 | + $arbo = $tree->getPath($elem['id_tree'], true); |
|
| 676 | + foreach ($arbo as $folder) { |
|
| 677 | + $arboHtml_tmp = htmlspecialchars(stripslashes($folder->title), ENT_QUOTES); |
|
| 678 | + if (empty($arboHtml)) { |
|
| 679 | + $arboHtml = $arboHtml_tmp; |
|
| 680 | + } else { |
|
| 681 | + $arboHtml .= ' » '.$arboHtml_tmp; |
|
| 682 | + } |
|
| 682 | 683 | } |
| 684 | + fputs( |
|
| 685 | + $outstream, |
|
| 686 | + ' |
|
| 687 | + <tr class="path"><td colspan="5">'.$arboHtml.'</td></tr>' |
|
| 688 | + ); |
|
| 689 | + $idTree = $elem['id_tree']; |
|
| 683 | 690 | } |
| 691 | + |
|
| 692 | + $encPw = GibberishAES::enc($elem['pw'], $post_pdf_password); |
|
| 684 | 693 | fputs( |
| 685 | 694 | $outstream, |
| 686 | 695 | ' |
| 687 | - <tr class="path"><td colspan="5">'.$arboHtml.'</td></tr>' |
|
| 688 | - ); |
|
| 689 | - $idTree = $elem['id_tree']; |
|
| 690 | - } |
|
| 691 | - |
|
| 692 | - $encPw = GibberishAES::enc($elem['pw'], $post_pdf_password); |
|
| 693 | - fputs( |
|
| 694 | - $outstream, |
|
| 695 | - ' |
|
| 696 | 696 | <tr class="'.$lineType.'"> |
| 697 | 697 | <td>'.addslashes($elem['label']).'</td> |
| 698 | 698 | <td align="center"><span class="span_pw" id="span_'.$elem['id'].'"><a href="#" onclick="decryptme('.$elem['id'].', \''.$encPw.'\');return false;">Decrypt </a></span><input type="hidden" id="hide_'.$elem['id'].'" value="'.$encPw.'" /></td> |
@@ -700,16 +700,16 @@ discard block |
||
| 700 | 700 | <td align="center">'.$login.'</td> |
| 701 | 701 | <td align="center">'.$url.'</td> |
| 702 | 702 | </tr>' |
| 703 | - ); |
|
| 704 | - } |
|
| 703 | + ); |
|
| 704 | + } |
|
| 705 | 705 | |
| 706 | - fclose($outstream); |
|
| 706 | + fclose($outstream); |
|
| 707 | 707 | |
| 708 | - // send back and continue |
|
| 709 | - echo '[{"loop":"true", "number":"'.$post_number.'", "cpt":"'.$post_cpt.'", "file":"'.$post_file.'", "idsList":"'.$post_idsList.'" , "file_link":"'.$post_file_link.'"}]'; |
|
| 710 | - break; |
|
| 708 | + // send back and continue |
|
| 709 | + echo '[{"loop":"true", "number":"'.$post_number.'", "cpt":"'.$post_cpt.'", "file":"'.$post_file.'", "idsList":"'.$post_idsList.'" , "file_link":"'.$post_file_link.'"}]'; |
|
| 710 | + break; |
|
| 711 | 711 | |
| 712 | - //CASE export in HTML format - Iteration loop |
|
| 712 | + //CASE export in HTML format - Iteration loop |
|
| 713 | 713 | case "export_to_html_format_finalize": |
| 714 | 714 | // Load includes |
| 715 | 715 | include $SETTINGS['cpassman_dir'].'/includes/config/include.php'; |