mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-02-11 09:35:00 +00:00
import roles
This commit is contained in:
parent
6ba36e2cae
commit
42ac18d962
|
@ -72,6 +72,15 @@ function insert_user($user) { /* {{{ */
|
|||
|
||||
if($debug) print_r($user);
|
||||
|
||||
$roleobj = null;
|
||||
if(isset($user['attributes']['role']) && $user['attributes']['role']) {
|
||||
if(array_key_exists($user['attributes']['role'], $objmap['roles'])) {
|
||||
if(!$roleobj = $dms->getRole($objmap['roles'][$user['attributes']['role']])) {
|
||||
$logger->warn("Role ".$user['attributes']['role']." cannot be found");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($newUser = $dms->getUserByLogin($user['attributes']['login'])) {
|
||||
$logger->info("User '".$user['attributes']['login']."' already exists");
|
||||
} else {
|
||||
|
@ -84,7 +93,7 @@ function insert_user($user) { /* {{{ */
|
|||
$user['attributes']['language'],
|
||||
$user['attributes']['theme'],
|
||||
$user['attributes']['comment'],
|
||||
$user['attributes']['role'],
|
||||
$roleobj,
|
||||
$user['attributes']['hidden'],
|
||||
$user['attributes']['disabled'],
|
||||
$user['attributes']['pwdexpiration']);
|
||||
|
@ -111,14 +120,14 @@ function insert_user($user) { /* {{{ */
|
|||
} /* }}} */
|
||||
|
||||
function set_homefolders() { /* {{{ */
|
||||
global $dms, $debug, $defaultUser, $users, $objmap;
|
||||
global $logger, $dms, $debug, $defaultUser, $users, $objmap;
|
||||
|
||||
foreach($users as $user) {
|
||||
if(isset($user['attributes']['homefolder']) && $user['attributes']['homefolder']) {
|
||||
if(array_key_exists($user['id'], $objmap['users'])) {
|
||||
$userobj = $dms->getUser($objmap['users'][$user['id']]);
|
||||
if(!array_key_exists((int) $user['attributes']['homefolder'], $objmap['folders'])) {
|
||||
echo "Warning: homefolder ".$user['attributes']['homefolder']." cannot be found\n";
|
||||
$logger->warning("Homefolder ".$user['attributes']['homefolder']." cannot be found");
|
||||
} else {
|
||||
$userobj->setHomeFolder($objmap['folders'][(int) $user['attributes']['homefolder']]);
|
||||
}
|
||||
|
@ -172,6 +181,34 @@ function insert_group($group) { /* {{{ */
|
|||
return $newGroup;
|
||||
} /* }}} */
|
||||
|
||||
function insert_role($role) { /* {{{ */
|
||||
global $logger, $dms, $debug, $objmap, $sections, $users;
|
||||
|
||||
if($debug) print_r($role);
|
||||
|
||||
if ($newRole = $dms->getRoleByName($role['attributes']['name'])) {
|
||||
$logger->info("Role already exists");
|
||||
} else {
|
||||
if(in_array('roles', $sections)) {
|
||||
$newRole = $dms->addRole($role['attributes']['name'], $role['attributes']['role']);
|
||||
if($newRole) {
|
||||
$logger->info("Added role '".$role['attributes']['name']."'");
|
||||
if(!empty($role['attributes']['noaccess'])) {
|
||||
$newRole->setNoAccess(explode(',', $role['attributes']['noaccess']));
|
||||
}
|
||||
} else {
|
||||
$logger->err("Could not add role");
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
$newRole = null;
|
||||
}
|
||||
}
|
||||
if($newRole)
|
||||
$objmap['roles'][$role['id']] = $newRole->getID();
|
||||
return $newRole;
|
||||
} /* }}} */
|
||||
|
||||
function insert_attributedefinition($attrdef) { /* {{{ */
|
||||
global $logger, $dms, $debug, $objmap, $sections;
|
||||
|
||||
|
@ -277,6 +314,8 @@ function insert_workflow($workflow) { /* {{{ */
|
|||
} else {
|
||||
$logger->info("Added workflow '".$workflow['attributes']['name']."'");
|
||||
}
|
||||
if(!empty($workflow['layoutdata']))
|
||||
$newWorkflow->setLayoutData($workflow['layoutdata']);
|
||||
if($workflow['transitions']) {
|
||||
foreach($workflow['transitions'] as $transition) {
|
||||
if(!$state = $dms->getWorkflowState($objmap['workflowstates'][(int) $transition['attributes']['startstate']])) {
|
||||
|
@ -853,33 +892,33 @@ function insert_folder($folder) { /* {{{ */
|
|||
} /* }}} */
|
||||
|
||||
function insert_transmittal($transmittal) { /* {{{ */
|
||||
global $dms, $debug, $objmap, $sections;
|
||||
global $logger, $dms, $debug, $objmap, $sections;
|
||||
|
||||
if(1||$debug) print_r($transmittal);
|
||||
if($debug) print_r($transmittal);
|
||||
|
||||
if(!array_key_exists((int) $transmittal['attributes']['owner'], $objmap['users'])) {
|
||||
echo "Error: owner of transmittal cannot be found\n";
|
||||
$logger->err( "Owner of transmittal cannot be found");
|
||||
return false;
|
||||
}
|
||||
$owner = $dms->getUser($objmap['users'][(int) $transmittal['attributes']['owner']]);
|
||||
|
||||
if(in_array('transmittals', $sections)) {
|
||||
if(!$newTransmittal = $dms->addTransmittal($transmittal['attributes']['name'], $transmittal['attributes']['comment'], $owner)) {
|
||||
echo "Error: could not add transmittal\n";
|
||||
$logger->err("Could not add transmittal");
|
||||
return false;
|
||||
}
|
||||
foreach($transmittal['items'] as $item) {
|
||||
if(!array_key_exists((int) $item['attributes']['document'], $objmap['documents'])) {
|
||||
echo "Warning: document mapping of transmittal item cannot be found\n";
|
||||
$logger->warning("Document mapping of transmittal item cannot be found");
|
||||
} else {
|
||||
if($document = $dms->getDocument($objmap['documents'][(int) $item['attributes']['document']])) {
|
||||
if($content = $document->getContentByVersion((int) $item['attributes']['version'])) {
|
||||
$newTransmittal->addContent($content);
|
||||
} else {
|
||||
echo "Warning: document version of transmittal item cannot be found\n";
|
||||
$logger->warning("Document version of transmittal item cannot be found");
|
||||
}
|
||||
} else {
|
||||
echo "Warning: document of transmittal item cannot be found\n";
|
||||
$logger->warning("Document of transmittal item cannot be found");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -972,7 +1011,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_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;
|
||||
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_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;
|
||||
|
||||
$parent = end($elementstack);
|
||||
array_push($elementstack, array('name'=>$name, 'attributes'=>$attrs));
|
||||
|
@ -1044,6 +1083,14 @@ function startElement($parser, $name, $attrs) { /* {{{ */
|
|||
$cur_transition['groups'][] = (int) $attrs['ID'];
|
||||
}
|
||||
break;
|
||||
case "ROLE":
|
||||
$first = $elementstack[1];
|
||||
if($first['name'] == 'ROLES') {
|
||||
$cur_role = array();
|
||||
$cur_role['id'] = (int) $attrs['ID'];
|
||||
$cur_role['attributes'] = array();
|
||||
}
|
||||
break;
|
||||
case "TRANSMITTAL":
|
||||
$cur_transmittal = array();
|
||||
$cur_transmittal['id'] = (int) $attrs['ID'];
|
||||
|
@ -1152,6 +1199,8 @@ function startElement($parser, $name, $attrs) { /* {{{ */
|
|||
$cur_user['attributes'][$attrs['NAME']] = '';
|
||||
} elseif($parent['name'] == 'GROUP') {
|
||||
$cur_group['attributes'][$attrs['NAME']] = '';
|
||||
} elseif($parent['name'] == 'ROLE') {
|
||||
$cur_role['attributes'][$attrs['NAME']] = '';
|
||||
} elseif($parent['name'] == 'KEYWORD') {
|
||||
$cur_keyword['attributes'][$attrs['NAME']] = '';
|
||||
} elseif($parent['name'] == 'ATTRIBUTEDEFINITION') {
|
||||
|
@ -1330,7 +1379,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_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;
|
||||
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_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;
|
||||
|
||||
array_pop($elementstack);
|
||||
$parent = end($elementstack);
|
||||
|
@ -1379,6 +1428,9 @@ function endElement($parser, $name) { /* {{{ */
|
|||
insert_group($cur_group);
|
||||
}
|
||||
break;
|
||||
case 'ROLE':
|
||||
insert_role($cur_role);
|
||||
break;
|
||||
case 'ATTRIBUTEDEFINITION':
|
||||
insert_attributedefinition($cur_attrdef);
|
||||
break;
|
||||
|
@ -1463,7 +1515,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_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;
|
||||
global $elementstack, $objmap, $cur_user, $cur_group, $cur_folder, $cur_document, $cur_version, $cur_statuslog, $cur_approval, $cur_approvallog, $cur_review, $cur_reviewlog, $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;
|
||||
|
||||
$current = end($elementstack);
|
||||
$parent = prev($elementstack);
|
||||
|
@ -1551,6 +1603,12 @@ function characterData($parser, $data) { /* {{{ */
|
|||
else
|
||||
$cur_group['attributes'][$current['attributes']['NAME']] = $data;
|
||||
break;
|
||||
case 'ROLE':
|
||||
if(isset($cur_role['attributes'][$current['attributes']['NAME']]))
|
||||
$cur_role['attributes'][$current['attributes']['NAME']] .= $data;
|
||||
else
|
||||
$cur_role['attributes'][$current['attributes']['NAME']] = $data;
|
||||
break;
|
||||
case 'ATTRIBUTEDEFINITION':
|
||||
if(isset($cur_attrdef['attributes'][$current['attributes']['NAME']]))
|
||||
$cur_attrdef['attributes'][$current['attributes']['NAME']] .= $data;
|
||||
|
@ -1730,7 +1788,7 @@ if(isset($options['no-version-check'])) {
|
|||
$noversioncheck = true;
|
||||
}
|
||||
|
||||
$sections = array('documents', 'folders', 'groups', 'users', 'keywordcategories', 'documentcategories', 'attributedefinitions', 'workflows', 'transmittals');
|
||||
$sections = array('documents', 'folders', 'groups', 'users', 'roles', 'keywordcategories', 'documentcategories', 'attributedefinitions', 'workflows', 'transmittals');
|
||||
if(isset($options['sections'])) {
|
||||
$sections = explode(',', $options['sections']);
|
||||
}
|
||||
|
@ -1799,6 +1857,7 @@ set_mandatory();
|
|||
|
||||
set_homefolders();
|
||||
|
||||
print_r($objmap);
|
||||
if($exportmapping) {
|
||||
if($fp = fopen($exportmapping, 'w')) {
|
||||
fputcsv($fp, array('object type', 'old id', 'new id'));
|
||||
|
|
Loading…
Reference in New Issue
Block a user