summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 580a30a)
raw | patch | inline | side by side (parent: 580a30a)
author | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Tue, 27 Apr 2010 10:04:41 +0000 (10:04 +0000) | ||
committer | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Tue, 27 Apr 2010 10:04:41 +0000 (10:04 +0000) |
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@17877 594d385d-05f5-0310-b6e9-bd551577e9d8
gosa-core/include/class_CopyPasteHandler.inc | patch | blob | history |
diff --git a/gosa-core/include/class_CopyPasteHandler.inc b/gosa-core/include/class_CopyPasteHandler.inc
index 2a9bea409e341a0e1e699427d260bc18ded8c987..868081204124d96d0b123ac0656acc1dadcc5fa9 100644 (file)
$this->lastdn = $this->current['object']->dn;
$this->current= $this->_update_vars($this->current);
$this->current['object']->save();
+ $this->handleReferences();
$this->current = FALSE;
}
}
/* Load next queue entry */
if(!count($msgs)){
$this->current['object']->save();
+ $this->handleReferences();
$this->lastdn = $this->current['object']->dn;
$this->current = FALSE;
}else{
}
+ function handleReferences()
+ {
+ $dst_dn = $this->current['object']->dn;
+ $src_dn = $this->current['dn'];
+
+ // Migrate objectgroups
+ $ogroups = get_sub_list("(&(objectClass=gosaGroupOfNames)(member=".LDAP::prepare4filter(LDAP::fix($src_dn))."))",
+ "ogroups", array(get_ou("ogroupRDN")),$this->config->current['BASE'],array("dn"), GL_SUBSEARCH | GL_NO_ACL_CHECK);
+
+ // Walk through all objectGroups
+ foreach($ogroups as $ogroup){
+ $o_ogroup= new ogroup($this->config,$ogroup['dn']);
+ $o_ogroup->member[$dst_dn]= $dst_dn;
+ $o_ogroup->save();
+ }
+
+ // Update roles
+ $roles = get_sub_list("(&(objectClass=organizationalRole)(roleOccupant=".LDAP::prepare4filter(LDAP::fix($src_dn))."))","roles", array(get_ou("roleRDN")),$this->config->current['BASE'],array("dn"), GL_SUBSEARCH | GL_NO_ACL_CHECK);
+
+ // Walk through all roles
+ foreach($roles as $role){
+ $role = new roleGeneric($this->config,$role['dn']);
+ $role->roleOccupant[] = $dst_dn;
+ $role->save();
+ }
+ }
+
/* returns the paste icon for headpages */
function generatePasteIcon()
{