mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-05-22 09:31:22 +00:00
insert acos and aros
This commit is contained in:
parent
159aa09636
commit
df63e1bb7e
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
require_once("../inc/inc.ClassSettings.php");
|
||||
require_once("../inc/inc.ClassAcl.php");
|
||||
require("Log.php");
|
||||
|
||||
function usage() { /* {{{ */
|
||||
|
@ -229,6 +230,27 @@ function insert_role($role) { /* {{{ */
|
|||
$logger->err("Could not add role");
|
||||
return false;
|
||||
}
|
||||
if($aro = SeedDMS_Aro::getInstance($newRole, $dms)) {
|
||||
$logger->info("Added aro");
|
||||
if($role['acos']) {
|
||||
$acl = new SeedDMS_Acl($dms);
|
||||
foreach($role['acos'] as $alias=>$perm) {
|
||||
if($aco = SeedDMS_Aco::getInstance($alias, $dms)) {
|
||||
$logger->info("Added aco with alias '".$alias."'");
|
||||
if(isset($perm['attributes']['permission'])) {
|
||||
if($acl->add($aro, $aco, $perm['attributes']['permission'])) {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$logger->err("Could not add Aco");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$logger->err("Could not add Aro");
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
$newRole = null;
|
||||
}
|
||||
|
@ -1022,7 +1044,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, $cur_role;
|
||||
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, $cur_acopath, $cur_acos;
|
||||
|
||||
$parent = end($elementstack);
|
||||
array_push($elementstack, array('name'=>$name, 'attributes'=>$attrs));
|
||||
|
@ -1094,12 +1116,19 @@ function startElement($parser, $name, $attrs) { /* {{{ */
|
|||
$cur_transition['groups'][] = (int) $attrs['ID'];
|
||||
}
|
||||
break;
|
||||
case "ACO":
|
||||
array_push($cur_acopath, $attrs['ALIAS']);
|
||||
$cur_acos[implode('/', $cur_acopath)] = array();
|
||||
break;
|
||||
case "ROLE":
|
||||
$first = $elementstack[1];
|
||||
if($first['name'] == 'ROLES') {
|
||||
$cur_role = array();
|
||||
$cur_role['id'] = (int) $attrs['ID'];
|
||||
$cur_role['attributes'] = array();
|
||||
$cur_role['acos'] = array();
|
||||
$cur_acopath = array();
|
||||
$cur_acos = array();
|
||||
}
|
||||
break;
|
||||
case "TRANSMITTAL":
|
||||
|
@ -1212,6 +1241,8 @@ function startElement($parser, $name, $attrs) { /* {{{ */
|
|||
$cur_group['attributes'][$attrs['NAME']] = '';
|
||||
} elseif($parent['name'] == 'ROLE') {
|
||||
$cur_role['attributes'][$attrs['NAME']] = '';
|
||||
} elseif($parent['name'] == 'ACO') {
|
||||
$cur_acos[implode('/', $cur_acopath)]['attributes'][$attrs['NAME']] = '';
|
||||
} elseif($parent['name'] == 'KEYWORD') {
|
||||
$cur_keyword['attributes'][$attrs['NAME']] = '';
|
||||
} elseif($parent['name'] == 'ATTRIBUTEDEFINITION') {
|
||||
|
@ -1390,7 +1421,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, $cur_role;
|
||||
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, $cur_acopath, $cur_acos;
|
||||
|
||||
array_pop($elementstack);
|
||||
$parent = end($elementstack);
|
||||
|
@ -1439,7 +1470,11 @@ function endElement($parser, $name) { /* {{{ */
|
|||
insert_group($cur_group);
|
||||
}
|
||||
break;
|
||||
case 'ACO':
|
||||
array_pop($cur_acopath);
|
||||
break;
|
||||
case 'ROLE':
|
||||
$cur_role['acos'] = $cur_acos;
|
||||
insert_role($cur_role);
|
||||
break;
|
||||
case 'ATTRIBUTEDEFINITION':
|
||||
|
@ -1526,7 +1561,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, $cur_role;
|
||||
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, $cur_acopath, $cur_acos;
|
||||
|
||||
$current = end($elementstack);
|
||||
$parent = prev($elementstack);
|
||||
|
@ -1620,6 +1655,12 @@ function characterData($parser, $data) { /* {{{ */
|
|||
else
|
||||
$cur_role['attributes'][$current['attributes']['NAME']] = $data;
|
||||
break;
|
||||
case 'ACO':
|
||||
if(isset($cur_acos[implode('/', $cur_acopath)]['attributes'][$current['attributes']['NAME']]))
|
||||
$cur_acos[implode('/', $cur_acopath)]['attributes'][$current['attributes']['NAME']] .= $data;
|
||||
else
|
||||
$cur_acos[implode('/', $cur_acopath)]['attributes'][$current['attributes']['NAME']] = $data;
|
||||
break;
|
||||
case 'ATTRIBUTEDEFINITION':
|
||||
if(isset($cur_attrdef['attributes'][$current['attributes']['NAME']]))
|
||||
$cur_attrdef['attributes'][$current['attributes']['NAME']] .= $data;
|
||||
|
@ -1833,6 +1874,7 @@ if($defaultuserid) {
|
|||
$defaultUser = null;
|
||||
}
|
||||
|
||||
$users = array();
|
||||
$elementstack = array();
|
||||
$objmap = array(
|
||||
'attributedefs' => array(),
|
||||
|
|
Loading…
Reference in New Issue
Block a user