X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=include%2Fclass_plugin.inc;h=df9412f90b03c70d953e11bfe7dd009a7430bd73;hb=9c7a5a68b6025703828c7f2437b3751851566c07;hp=30743f55a719819db773c0a032d7e80eb5de8064;hpb=df2c9ab281801434b0596b0ddf6676372f4e00f7;p=gosa.git diff --git a/include/class_plugin.inc b/include/class_plugin.inc index 30743f55a..df9412f90 100644 --- a/include/class_plugin.inc +++ b/include/class_plugin.inc @@ -667,7 +667,7 @@ class plugin { /* Rename dn in possible object groups */ $ldap= $this->config->get_ldap_link(); - $ldap->search('(&(objectClass=gosaGroupOfNames)(member='.$src_dn.'))', + $ldap->search('(&(objectClass=gosaGroupOfNames)(member='.@LDAP::fix($src_dn).'))', array('cn')); while ($attrs= $ldap->fetch()){ $og= new ogroup($this->config, $ldap->getDN()); @@ -679,7 +679,7 @@ class plugin $ldap->cat($dst_dn); $attrs= $ldap->fetch(); if (count($attrs)){ - trigger_error("Trying to overwrite $dst_dn, which already exists.", + trigger_error("Trying to overwrite ".@LDAP::fix($dst_dn).", which already exists.", E_USER_WARNING); return (FALSE); } @@ -687,7 +687,7 @@ class plugin $ldap->cat($src_dn); $attrs= $ldap->fetch(); if (!count($attrs)){ - trigger_error("Trying to move $src_dn, which does not seem to exist.", + trigger_error("Trying to move ".@LDAP::fix($src_dn).", which does not seem to exist.", E_USER_WARNING); return (FALSE); } @@ -701,7 +701,7 @@ class plugin $r=ldap_bind($ds,$this->config->current['ADMIN'], $this->config->current['PASSWORD']); error_reporting (0); - $sr=ldap_read($ds, $ldap->fix($src_dn), "objectClass=*"); + $sr=ldap_read($ds, @LDAP::fix($src_dn), "objectClass=*"); /* Fill data from LDAP */ $new= array(); @@ -729,14 +729,14 @@ class plugin /* Adapt naming attribute */ $dst_name= preg_replace("/^([^=]+)=.*$/", "\\1", $dst_dn); $dst_val = preg_replace("/^[^=]+=([^,+]+).*,.*$/", "\\1", $dst_dn); - $new[$dst_name]= $dst_val; + $new[$dst_name]= @LDAP::fix($dst_val); /* Check if this is a department. * If it is a dep. && there is a , override in his ou * change \2C to , again, else this entry can't be saved ... */ - if((isset($new['ou'])) &&( preg_match("/\\\\2C/",$new['ou']))){ - $new['ou'] = preg_replace("/\\\\2C/",",",$new['ou']); + if((isset($new['ou'])) &&( preg_match("/\\,/",$new['ou']))){ + $new['ou'] = preg_replace("/\\\\,/",",",$new['ou']); } /* Save copy */ @@ -871,11 +871,11 @@ class plugin //FIXME: How to optimize this? We have at least two // LDAP accesses per object. It would be a good // idea to have it integrated. - + /* No dn? Self-operation... */ if ($dn == ""){ $dn= $this->dn; - + /* No tag? Find it yourself... */ if ($tag == ""){ $len= strlen($dn); @@ -908,7 +908,7 @@ class plugin } } } - + /* Set tag? */ if ($tag != ""){ @@ -943,7 +943,7 @@ class plugin } else { @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, "Not tagging ($tag) $dn - seems to have moved away", "Tagging"); } - + } else { /* Remove objectclass and attribute */ $ldap= $this->config->get_ldap_link(); @@ -973,7 +973,7 @@ class plugin @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, "Not removing tag ($tag) $dn - seems to have moved away", "Tagging"); } } - + } @@ -991,11 +991,11 @@ class plugin /* Check if snapshot functionality is enabled */ if(!$this->snapshotEnabled()){ - return; + return; } - + /* Get configuration from gosa.conf */ - $tmp = $this->config->data['MAIN']; + $tmp = $this->config->current; /* Check if the undo level is specified */ if(isset($tmp['SNAPSHOT_UNDO_LEVEL'])){ $UndoLvl = $tmp['SNAPSHOT_UNDO_LEVEL']; @@ -1011,7 +1011,8 @@ class plugin if(!isset($tmp['SNAPSHOT_SERVER'])){ /* Source and destination server are both the same, just copy source to dest obj */ - $ldap_to = $ldap; + $ldap_to = $ldap; + $snapldapbase = $this->config->current['BASE']; }else{ $server = $tmp['SNAPSHOT_SERVER']; @@ -1024,7 +1025,7 @@ class plugin show_ldap_error($ldap_to->get_error(), _("Snapshot failed.")); } - + /* check if the dn exists */ if ($ldap->dn_exists($this->dn)){ @@ -1038,7 +1039,7 @@ class plugin $new_base = preg_replace("/".normalizePreg($base)."$/","",$base_of_object).$snap_base; /* Create object */ - #$data = preg_replace('/^dn:.*\n/', '', $ldap->gen_ldif($this->dn,"(!(objectClass=gosaDepartment))")); +#$data = preg_replace('/^dn:.*\n/', '', $ldap->gen_ldif($this->dn,"(!(objectClass=gosaDepartment))")); $data = $ldap->gen_ldif($this->dn,"(&(!(objectClass=gosaDepartment))(!(objectClass=FAIclass)))"); $newName = preg_replace("/\./", "", $sec."-".$usec); $target= array(); @@ -1050,9 +1051,9 @@ class plugin $target['gosaSnapshotTimestamp'] = $newName; /* Insert the new snapshot - But we have to check first, if the given gosaSnapshotTimestamp - is already used, in this case we should increment this value till there is - an unused value. */ + But we have to check first, if the given gosaSnapshotTimestamp + is already used, in this case we should increment this value till there is + an unused value. */ $new_dn = "gosaSnapshotTimestamp=".$newName.",".$new_base; $ldap_to->cat($new_dn); while($ldap_to->count()){ @@ -1063,9 +1064,11 @@ class plugin } /* Inset this new snapshot */ + $ldap_to->cd($snapldapbase); $ldap_to->create_missing_trees($new_base); $ldap_to->cd($new_dn); $ldap_to->add($target); + show_ldap_error($ldap_to->get_error(), _("Create snapshot failed.")); show_ldap_error($ldap->get_error(), _("Create snapshot failed.")); @@ -1088,18 +1091,18 @@ class plugin } } - + /* returns true if snapshots are enabled, and false if it is disalbed - There will also be some errors psoted, if the configuration failed */ + There will also be some errors psoted, if the configuration failed */ function snapshotEnabled() { - $tmp = $this->config->data['MAIN']; + $tmp = $this->config->current; if(isset($tmp['ENABLE_SNAPSHOT'])){ if (preg_match("/^true$/i", $tmp['ENABLE_SNAPSHOT']) || preg_match("/yes/i", $tmp['ENABLE_SNAPSHOT'])){ /* Check if the snapshot_base is defined */ if(!isset($tmp['SNAPSHOT_BASE'])){ - print_red(_("The snapshot functionality is enabled, but the required variable SNAPSHOT_BASE is not configured in your gosa.conf.")); + print_red(sprintf(_("The snapshot functionality is enabled, but the required variable '%s' is not configured in your gosa.conf."),$missing)); return(FALSE); } @@ -1119,21 +1122,21 @@ class plugin return(TRUE); } } - return(false); + return(FALSE); } - + /* Return available snapshots for the given base - */ + */ function Available_SnapsShots($dn,$raw = false) { if(!$this->snapshotEnabled()) return(array()); /* Create an additional ldap object which - points to our ldap snapshot server */ + points to our ldap snapshot server */ $ldap= $this->config->get_ldap_link(); $ldap->cd($this->config->current['BASE']); - $tmp = $this->config->data['MAIN']; + $tmp = $this->config->current; /* check if there are special server configurations for snapshots */ if(isset($tmp['SNAPSHOT_SERVER'])){ @@ -1158,8 +1161,8 @@ class plugin /* Fetch all objects with gosaSnapshotDN=$dn */ $ldap_to->cd($new_base); $ldap_to->ls("(&(objectClass=gosaSnapshotObject)(gosaSnapshotDN=".$dn."))",$new_base, - array("gosaSnapshotType","gosaSnapshotTimestamp","gosaSnapshotDN","description")); - + array("gosaSnapshotType","gosaSnapshotTimestamp","gosaSnapshotDN","description")); + /* Put results into a list and add description if missing */ while($entry = $ldap_to->fetch()){ if(!isset($entry['description'][0])){ @@ -1184,12 +1187,12 @@ class plugin function getAllDeletedSnapshots($base_of_object,$raw = false) { if(!$this->snapshotEnabled()) return(array()); - + /* Create an additional ldap object which - points to our ldap snapshot server */ + points to our ldap snapshot server */ $ldap= $this->config->get_ldap_link(); $ldap->cd($this->config->current['BASE']); - $tmp = $this->config->data['MAIN']; + $tmp = $this->config->current; /* check if there are special server configurations for snapshots */ if(isset($tmp['SNAPSHOT_SERVER'])){ @@ -1253,7 +1256,7 @@ class plugin $ldap= $this->config->get_ldap_link(); $ldap->cd($this->config->current['BASE']); - $tmp = $this->config->data['MAIN']; + $tmp = $this->config->current; /* check if there are special server configurations for snapshots */ if(isset($tmp['SNAPSHOT_SERVER'])){ @@ -1267,16 +1270,16 @@ class plugin }else{ $ldap_to = $ldap; } - + /* Get the snapshot */ $ldap_to->cat($dn); $restoreObject = $ldap_to->fetch(); - + /* Prepare import string */ $data = gzuncompress($ldap_to->get_attribute($dn,'gosaSnapshotData')); - + /* Import the given data */ - $ldap->import_complete_ldif($data,$err,true,true); + $ldap->import_complete_ldif($data,$err,false,false); show_ldap_error($ldap_to->get_error().$err, _("Restore snapshot failed.")); } @@ -1300,14 +1303,14 @@ class plugin $entry = preg_replace("/^RestoreSnapShot_/","",$name); $entry = base64_decode(preg_replace("/_[xy]$/","",$entry)); $this->snapDialog = new SnapShotDialog($this->config,$entry,$this); - $this->snapDialog->Restore = true; + $this->snapDialog->display_restore_dialog = true; } /* Restore one of the already deleted objects */ if(preg_match("/^RestoreDeletedSnapShot_/",$name) && $once){ $once = false; $this->snapDialog = new SnapShotDialog($this->config,$baseSuffixe,$this); - $this->snapDialog->Restore = true; + $this->snapDialog->display_restore_dialog = true; $this->snapDialog->DeletedOnes = true; } } @@ -1337,16 +1340,15 @@ class plugin $this->snapDialog = NULL; } } - + if(isset($_POST['CancelSnapshot'])){ $this->snapDialog = NULL; } - + if($this->snapDialog){ $this->snapDialog->save_object(); return($this->snapDialog->execute()); } - } } // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: