Merge branch 'seeddms-5.1.x' into seeddms-6.0.x

This commit is contained in:
Uwe Steinmann 2026-05-06 21:18:30 +02:00
commit 0ede7daa4c
3 changed files with 25 additions and 11 deletions

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
if [ -z "${SEEDDMS_HOME}" ]; then
parentdir=$(dirname "$0")
parentdir=$(dirname `realpath "$0"`)
export SEEDDMS_HOME=$(dirname "$parentdir")
fi

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
if [ -z "${SEEDDMS_HOME}" ]; then
parentdir=$(dirname "$0")
parentdir=$(dirname `realpath "$0"`)
export SEEDDMS_HOME=$(dirname "$parentdir")
fi

View File

@ -30,6 +30,7 @@ function usage() { /* {{{ */
echo " --default-user <user id>: use this user if user could not be found.".PHP_EOL;
echo " --export-mapping <file>: write object mapping into file".PHP_EOL;
echo " --debug: turn debug output on".PHP_EOL;
echo " --log-file: set log file ('-' stands for stdout).".PHP_EOL;
} /* }}} */
function dateToTimestamp($date, $format='Y-m-d H:i:s') { /* {{{ */
@ -505,7 +506,7 @@ function insert_document($document) { /* {{{ */
print_r($document);
if(!array_key_exists((int) $document['attributes']['owner'], $objmap['users'])) {
$logger->warning("Owner of document cannot be mapped using default user");
$logger->warning("Owner of document cannot be mapped, using default user");
$owner = $defaultUser;
} else {
$owner = $dms->getUser($objmap['users'][(int) $document['attributes']['owner']]);
@ -536,8 +537,8 @@ function insert_document($document) { /* {{{ */
if(array_key_exists($document['folder'], $objmap['folders'])) {
$folder = $dms->getFolder($objmap['folders'][$document['folder']]);
} else {
$logger->err("Folder ".$document['folder']." cannot be mapped");
return false;
$logger->err("Folder ".$document['folder']." cannot be mapped, using import folder");
$folder = $rootfolder;
}
} else
$folder = $rootfolder;
@ -687,7 +688,7 @@ function insert_document($document) { /* {{{ */
$newDocument->setInheritAccess($document['attributes']['inheritaccess']);
foreach($document['versions'] as $version) {
if(!array_key_exists((int) $version['attributes']['owner'], $objmap['users'])) {
$logger->warning("Owner of document version cannot be mapped using default user");
$logger->warning("Owner of document version cannot be mapped, using default user");
$owner = $defaultUser;
} else {
$owner = $dms->getUser($objmap['users'][(int) $version['attributes']['owner']]);
@ -842,7 +843,7 @@ function insert_document($document) { /* {{{ */
if(isset($document['files']) && $document['files']) {
foreach($document['files'] as $file) {
if(!array_key_exists($file['attributes']['owner'], $objmap['users'])) {
$logger->warning("User for file cannot be mapped");
$logger->warning("User for file cannot be mapped, using default user");
$owner = $defaultUser;
} else {
$owner = $dms->getUser($objmap['users'][$file['attributes']['owner']]);
@ -893,7 +894,7 @@ function insert_folder($folder) { /* {{{ */
if(in_array('folders', $sections)) {
if(!array_key_exists($folder['attributes']['owner'], $objmap['users'])) {
$logger->warning("Owner of folder cannot be mapped using default user");
$logger->warning("Owner of folder cannot be mapped, using default user");
$owner = $defaultUser;
} else {
$owner = $dms->getUser($objmap['users'][(int) $folder['attributes']['owner']]);
@ -1032,7 +1033,7 @@ function resolve_links() { /* {{{ */
if(array_key_exists($doclink['attributes']['target'], $objmap['documents'])) {
if($target = $dms->getDocument($objmap['documents'][$doclink['attributes']['target']])) {
if(!array_key_exists($doclink['attributes']['owner'], $objmap['users'])) {
$logger->warning("User for link cannot be mapped using default user");
$logger->warning("User for link cannot be mapped, using default user");
$owner = $defaultUser;
} else {
$owner = $dms->getUser($objmap['users'][$doclink['attributes']['owner']]);
@ -1873,7 +1874,7 @@ function characterData($parser, $data) { /* {{{ */
$version = "0.0.1";
$shortoptions = "hv";
$longoptions = array('help', 'version', 'debug', 'config:', 'sections:', 'folder:', 'file:', 'contentdir:', 'default-user:', 'export-mapping:', 'no-version-check');
$longoptions = array('help', 'version', 'debug', 'config:', 'sections:', 'folder:', 'file:', 'contentdir:', 'default-user:', 'export-mapping:', 'no-version-check', 'log-file:');
if(false === ($options = getopt($shortoptions, $longoptions))) {
usage();
exit(0);
@ -1914,11 +1915,19 @@ require_once($myincpath."/inc/inc.Extension.php");
require_once($myincpath."/inc/inc.DBInit.php");
require_once($myincpath."/inc/inc.ClassAcl.php");
/* Set alternative log file */
$logfile = "xmlimport.log";
if(isset($options['log-file'])) {
$logfile = $options['log-file'];
}
$logconf = array();
$logconf['timeformat'] = '%Y-%m-%d %H:%M:%S';
$logconf['lineFormat'] = '%{timestamp} %{priority} xmlimport: %{ident} %{message}';
$logger = Log::factory('file', $logfile, '', $logconf);
if($logfile == '-')
$logger = Log::factory('console', '', '', $logconf);
else
$logger = Log::factory('file', $logfile, '', $logconf);
if(isset($options['folder'])) {
$folderid = intval($options['folder']);
@ -1926,6 +1935,11 @@ if(isset($options['folder'])) {
$folderid = $settings->_rootFolderID;
}
if (!is_writable($settings->_contentDir)) {
$logger->crit("Directory ".$settings->_contentDir." is not writable.");
exit;
}
if(isset($options['contentdir'])) {
if(file_exists($options['contentdir'])) {
$contentdir = $options['contentdir'];