summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 16cf862)
raw | patch | inline | side by side (parent: 16cf862)
author | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Wed, 28 Apr 2010 10:33:42 +0000 (10:33 +0000) | ||
committer | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Wed, 28 Apr 2010 10:33:42 +0000 (10:33 +0000) |
- Update role and group membership for the target object.
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@17905 594d385d-05f5-0310-b6e9-bd551577e9d8
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@17905 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 f0cb85d7db7e1ea8d8124508195231ee0ac515ac..5d83308418693cb9e1b529bd53d71660b8797922 100644 (file)
}
// 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);
+ $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->roleOccupant[] = $dst_dn;
$role->save();
}
+
+ // Update groups
+ if(isset($this->current['object']->uid) && !empty($this->current['object']->uid)){
+
+ $ldap = $this->config->get_ldap_link();
+ $ldap->cd($this->config->current['BASE']);
+ $ldap->cat($src_dn);
+ $attrs = $ldap->fetch();
+ if(isset($attrs['uid'][0])){
+ $suid = $attrs['uid'][0];
+
+ $uid = $this->current['object']->uid;
+ $groups = get_sub_list("(&(objectClass=posixGroup)(memberUid={$suid}))",
+ "groups",array(get_ou("groupRDN")),$this->config->current['BASE'],array("dn"), GL_SUBSEARCH | GL_NO_ACL_CHECK);
+
+ // Walk through all POSIX groups
+ foreach($groups as $group){
+ $o_group= new group($this->config,$group['dn']);
+ $o_group->addUser($uid);
+ $o_group->save();
+ }
+ }
+ }
}
/* returns the paste icon for headpages */