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

This commit is contained in:
Uwe Steinmann 2024-04-27 18:40:54 +02:00
commit 4f44241850
2 changed files with 46 additions and 6 deletions

View File

@ -102,6 +102,7 @@ $statistic = array(
'folders'=>0,
'roles'=>0,
'users'=>0,
'roles'=>0,
'groups'=>0,
'attributedefinitions'=>0,
'keywordcategories'=>0,
@ -559,7 +560,7 @@ $users = $dms->getAllUsers();
if($users) {
echo "<users>\n";
foreach ($users as $user) {
echo " <user id=\"".$user->getId()."\">\n";
echo " <user id=\"".$user->getId()."\" role=\"".$user->getRole()->getId()."\">\n";
echo " <attr name=\"login\">".wrapWithCData($user->getLogin())."</attr>\n";
echo " <attr name=\"pwd\">".wrapWithCData($user->getPwd())."</attr>\n";
echo " <attr name=\"email\">".wrapWithCData($user->getEmail())."</attr>\n";
@ -567,12 +568,13 @@ if($users) {
echo " <attr name=\"comment\">".wrapWithCData($user->getComment())."</attr>\n";
echo " <attr name=\"language\">".$user->getLanguage()."</attr>\n";
echo " <attr name=\"theme\">".$user->getTheme()."</attr>\n";
echo " <attr name=\"role\">".$user->getRole()->getID()."</attr>\n";
// echo " <attr name=\"role\">".$user->getRole()->getId()."</attr>\n";
echo " <attr name=\"hidden\">".$user->isHidden()."</attr>\n";
echo " <attr name=\"disabled\">".$user->isDisabled()."</attr>\n";
echo " <attr name=\"pwdexpiration\">".$user->getPwdExpiration()."</attr>\n";
echo " <attr name=\"homefolder\">".$user->getHomeFolder()."</attr>\n";
echo " <attr name=\"secret\">".$user->getSecret()."</attr>\n";
echo " <attr name=\"quota\">".$user->getQuota()."</attr>\n";
if($image = $user->getImage()) {
echo " <image id=\"".$image['id']."\">\n";
echo " <attr name=\"mimetype\">".$image['mimeType']."</attr>\n";

View File

@ -23,6 +23,8 @@ function usage() { /* {{{ */
echo " --sections <sections>: comma seperated list of sections to read from dump.".PHP_EOL;
echo " can be: users, groups, documents, folders, keywordcategories, or".PHP_EOL;
echo " documentcategories, transmittals".PHP_EOL;
echo " can be: users, groups, roles, documents, folders, keywordcategories, or".PHP_EOL;
echo " documentcategories".PHP_EOL;
echo " --contentdir <dir>: directory where all document versions are stored".PHP_EOL;
echo " which are not included in the xml file.".PHP_EOL;
echo " --default-user <user id>: use this user if user could not be found.".PHP_EOL;
@ -126,6 +128,10 @@ function insert_user($user) { /* {{{ */
if(in_array('users', $sections)) {
if(substr($user['attributes']['pwdexpiration'], 0, 10) == '0000-00-00')
$user['attributes']['pwdexpiration'] = '';
$roleobj = null;
if(array_key_exists($user['role'], $objmap['roles'])) {
$roleobj = $dms->getRole($objmap['roles'][$user['role']]);
}
$newUser = $dms->addUser(
$user['attributes']['login'],
$user['attributes']['pwd'],
@ -137,7 +143,8 @@ function insert_user($user) { /* {{{ */
$roleobj,
$user['attributes']['hidden'],
$user['attributes']['disabled'],
$user['attributes']['pwdexpiration']);
$user['attributes']['pwdexpiration'],
$user['attributes']['quota']);
if(!$newUser) {
$logger->err("Could not add user");
$logger->debug($dms->getDB()->getErrorMsg());
@ -180,6 +187,36 @@ function set_homefolders() { /* {{{ */
}
} /* }}} */
function insert_role($role) { /* {{{ */
global $logger, $dms, $debug, $sections, $defaultUser, $objmap;
if($debug) print_r($role);
if ($newRole = $dms->getRoleByName($role['attributes']['name'])) {
$logger->warning("Role '".$role['attributes']['name']."' already exists");
} else {
if(in_array('roles', $sections)) {
$newRole = $dms->addRole(
$role['attributes']['name'],
$role['role']);
if(!$newRole) {
$logger->err("Could not add role");
$logger->debug($dms->getDB()->getErrorMsg());
return false;
} else {
$logger->info("Added role '".$role['attributes']['name']."'");
if(isset($role['attributes']['noaccess'])) {
$noaccess = explode(',', $role['attributes']['noaccess']);
$role->setNoAccess($noaccess);
}
}
}
}
if($newRole)
$objmap['roles'][$role['id']] = $newRole->getID();
return $newRole;
} /* }}} */
function insert_group($group) { /* {{{ */
global $logger, $dms, $debug, $objmap, $sections, $users;
@ -1084,7 +1121,7 @@ function set_mandatory() { /* {{{ */
} /* }}} */
function startElement($parser, $name, $attrs) { /* {{{ */
global $logger, $dms, $noversioncheck, $elementstack, $objmap, $cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_workflowlog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_receipt, $cur_receiptlog, $cur_revision, $cur_revisionlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link, $cur_workflow, $cur_workflowtransition, $cur_workflowaction, $cur_workflowstate, $cur_transition, $cur_transmittal, $cur_transmittalitem, $cur_role, $cur_acopath, $cur_acos;
global $logger, $dms, $noversioncheck, $elementstack, $objmap, $cur_user, $cur_group, $cur_role, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_workflowlog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_receipt, $cur_receiptlog, $cur_revision, $cur_revisionlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link, $cur_workflow, $cur_workflowtransition, $cur_workflowaction, $cur_workflowstate, $cur_transition, $cur_transmittal, $cur_transmittalitem, $cur_role, $cur_acopath, $cur_acos;
$parent = end($elementstack);
array_push($elementstack, array('name'=>$name, 'attributes'=>$attrs));
@ -1113,6 +1150,7 @@ function startElement($parser, $name, $attrs) { /* {{{ */
} else {
$cur_user = array();
$cur_user['id'] = (int) $attrs['ID'];
$cur_user['role'] = (int) $attrs['ROLE'];
$cur_user['attributes'] = array();
$cur_user['individual']['reviewers'] = array();
$cur_user['individual']['approvers'] = array();
@ -1489,7 +1527,7 @@ function startElement($parser, $name, $attrs) { /* {{{ */
} /* }}} */
function endElement($parser, $name) { /* {{{ */
global $logger, $dms, $sections, $rootfolder, $objmap, $elementstack, $users, $groups, $links,$cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_receipt, $cur_receiptlog, $cur_revision, $cur_revisionlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link, $cur_workflow, $cur_workflowlog, $cur_workflowtransition, $cur_workflowaction, $cur_workflowstate, $cur_transition, $cur_transmittal, $cur_transmittalitem, $cur_role, $cur_acopath, $cur_acos;
global $logger, $dms, $sections, $rootfolder, $objmap, $elementstack, $users, $groups, $links,$cur_user, $cur_group, $cur_role, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_receipt, $cur_receiptlog, $cur_revision, $cur_revisionlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link, $cur_workflow, $cur_workflowlog, $cur_workflowtransition, $cur_workflowaction, $cur_workflowstate, $cur_transition, $cur_transmittal, $cur_transmittalitem, $cur_role, $cur_acopath, $cur_acos;
array_pop($elementstack);
$parent = end($elementstack);
@ -1641,7 +1679,7 @@ function endElement($parser, $name) { /* {{{ */
} /* }}} */
function characterData($parser, $data) { /* {{{ */
global $elementstack, $objmap, $cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_receipt, $cur_receiptlog, $cur_revision, $cur_revisionlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link, $cur_workflow, $cur_workflowlog, $cur_workflowtransition, $cur_workflowaction, $cur_workflowstate, $cur_transition, $cur_transmittal, $cur_transmittalitem, $cur_role, $cur_acopath, $cur_acos;
global $elementstack, $objmap, $cur_user, $cur_group, $cur_role, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $cur_receipt, $cur_receiptlog, $cur_revision, $cur_revisionlog, $cur_attrdef, $cur_documentcat, $cur_keyword, $cur_keywordcat, $cur_file, $cur_link, $cur_workflow, $cur_workflowlog, $cur_workflowtransition, $cur_workflowaction, $cur_workflowstate, $cur_transition, $cur_transmittal, $cur_transmittalitem, $cur_role, $cur_acopath, $cur_acos;
$current = end($elementstack);
$parent = prev($elementstack);