summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 30a2f74)
raw | patch | inline | side by side (parent: 30a2f74)
author | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Thu, 6 Jul 2006 07:17:11 +0000 (07:17 +0000) | ||
committer | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Thu, 6 Jul 2006 07:17:11 +0000 (07:17 +0000) |
Do not branch use this release, in order to manage FAI objects.
Just for testing.
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@4033 594d385d-05f5-0310-b6e9-bd551577e9d8
Just for testing.
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@4033 594d385d-05f5-0310-b6e9-bd551577e9d8
index 727e46ca6323c56dd31bc052820912aa310e7632..651957f2d7f48cc04d2cf830758475f26ae31f94 100644 (file)
$base = $faifilter['branch'];
}
$ldap = $this->config->get_ldap_link();
+
+ /* Set base to release base */
+ $base = key(get_previous_releases_of_this_release(get_release_dn($base),false));
+
$res= get_list("(objectClass=organizationalUnit)", $this->ui->subtreeACL, $base,
array("cn","description","objectClass"), GL_SIZELIMIT);
$used = array();
$delete = array();
foreach($res as $objecttypes){
$res2= get_list("(objectClass=*)", $this->ui->subtreeACL, $objecttypes['dn'],
- array("cn","description","objectClass","FAIclass"), GL_SIZELIMIT | GL_CONVERT);
+ array("cn","description","objectClass","FAIclass"), GL_SIZELIMIT | GL_CONVERT | GL_SUBSEARCH);
foreach($res2 as $object){
/* skip class names with this name */
}
}
}
-
+
/* Create headline
* Depending on the object type we want to create, a different headline will be shown
*/
index 917bbf5395e4c384dea1976187c4b75a0fc4abfe..c64e6285db83b0344b4c424931a6d406dc084939 100644 (file)
require "tabsProfile.inc";
require "tabsPackage.inc";
+
class faiManagement extends plugin
{
/* Definitions */
}
+
/* reload list of objects */
- function reload()
- {
- /* Create a new list of FAI object
- * Generate List of Partitions,Hooks,Scripts,Templates,Profiles ...
- */
- $ObjectTypes = array(
- "FAIpartitionTable" => array("OU"=>"ou=disk," , "CHKBOX"=>"ShowPartitions"),
- "FAIpackageList" => array("OU"=>"ou=packages," , "CHKBOX"=>"ShowPackages"),
- "FAIscript" => array("OU"=>"ou=scripts," , "CHKBOX"=>"ShowScripts"),
- "FAIvariable" => array("OU"=>"ou=variables," , "CHKBOX"=>"ShowVariables"),
- "FAIhook" => array("OU"=>"ou=hooks," , "CHKBOX"=>"ShowHooks"),
- "FAIprofile" => array("OU"=>"ou=profiles," , "CHKBOX"=>"ShowProfiles"),
- "FAItemplate" => array("OU"=>"ou=templates," , "CHKBOX"=>"ShowTemplates"));
+ function reload()
+ {
+ /* Variable initialisation */
+ $str = "";
+ $Regex = $this->DivListFai->Regex;
+ $this->objects = array();
- /* Set base for all searches */
- $base = "ou=fai,ou=configs,ou=systems,".$this->DivListFai->selectedBase;
+ /* Get base */
+ $base = "ou=fai,ou=configs,ou=systems,".$this->DivListFai->selectedBase;
if($this->DivListFai->selectedBranch != "main"){
$br = $this->getBranches();
if(isset($br[$this->DivListFai->selectedBranch])){
}
}
- $Regex = $this->DivListFai->Regex;
- $str = "";
- $objects = array();
- $this->objects = array();
+ /* Get resolved release dependencies */
+ $tmp = get_all_objects_for_given_base($base,"(&(|(objectClass=FAIpartitionTable)(objectClass=FAIpackageList)(objectClass=FAIscript)
+ (objectClass=FAIvariable)(objectClass=FAIhook)(objectClass=FAIprofile)(objectClass=FAItemplate))(cn=$Regex))");
+
+ /* Create a new list of FAI object
+ * Generate List of Partitions,Hooks,Scripts,Templates,Profiles ...
+ */
+ $ObjectTypes = array(
+ "FAIpartitionTable" => array("OU"=>"ou=disk," , "CHKBOX"=>"ShowPartitions"),
+ "FAIpackageList" => array("OU"=>"ou=packages," , "CHKBOX"=>"ShowPackages"),
+ "FAIscript" => array("OU"=>"ou=scripts," , "CHKBOX"=>"ShowScripts"),
+ "FAIvariable" => array("OU"=>"ou=variables," , "CHKBOX"=>"ShowVariables"),
+ "FAIhook" => array("OU"=>"ou=hooks," , "CHKBOX"=>"ShowHooks"),
+ "FAIprofile" => array("OU"=>"ou=profiles," , "CHKBOX"=>"ShowProfiles"),
+ "FAItemplate" => array("OU"=>"ou=templates," , "CHKBOX"=>"ShowTemplates"));
- /* Walk through possible sub departments and fetch all FAI objects */
- foreach($ObjectTypes as $type => $obj){
+ /* Ge listed ldap objects */
+ $ldap = $this->config->get_ldap_link();
+ $ldap->cd($this->config->current['BASE']);
+ foreach($tmp as $entry){
- /* Skip all unchecked types */
- if(! $this->DivListFai->$obj['CHKBOX']){
- continue;
- }
+ /* Get some more informations about the object */
+ $ldap->cat($entry['dn'], array("cn","description","objectClass","FAIclass","FAIstate","objectClass"));
+ $object = $ldap->fetch();
- /* Fetch objects from fai sub department */
- $res= get_list("(&(objectClass=".$type.")(cn=$Regex))", $this->ui->subtreeACL, $obj['OU'].$base,
- array("cn","description","objectClass","FAIclass","FAIstate"), GL_SIZELIMIT);
+ /* Walk through possible types */
+ foreach($ObjectTypes as $type => $rest){
- /* Walk through objects */
- foreach($res as $object){
+ /* Skip all unchecked types */
+ if(! $this->DivListFai->$rest['CHKBOX']){
+ continue;
+ }
- /* Prepare object */
- unset($object['objectClass']['count']);
- if(!isset($object['description'][0])){
- $object['description'][0]="";
- }
-
- /* Clean up object informations */
- $obj['cn'] = $object['cn'][0];
- $obj['dn'] = $object['dn'];
- $obj['description'] = $object['description'][0];
- $obj['objectClass'] = $object['objectClass'];
-
- /* Append type to this string, to be able to check if the selected
- * entry is of type 'freeze' or 'branch'
- */
- if(isset($object['FAIstate'])){
- $obj['FAIstate'] = $object['FAIstate'][0];
- $str.="|".$obj['FAIstate'];
- }else{
- $obj['FAIstate'] ="";
+ if(in_array($type,$object['objectClass'])){
+
+ /* Prepare object */
+ unset($object['objectClass']['count']);
+ if(!isset($object['description'][0])){
+ $object['description'][0]="";
+ }
+
+ /* Clean up object informations */
+ $obj['cn'] = $object['cn'][0];
+ $obj['dn'] = $object['dn'];
+ $obj['description'] = $object['description'][0];
+ $obj['objectClass'] = $object['objectClass'];
+
+ /* Append type to this string, to be able to check if the selected
+ * entry is of type 'freeze' or 'branch'
+ */
+ if(isset($object['FAIstate'])){
+ $obj['FAIstate'] = $object['FAIstate'][0];
+ $str.="|".$obj['FAIstate'];
+ }else{
+ $obj['FAIstate'] ="";
+ }
+ $this->objects[strtolower($obj['cn']).$obj['cn'].$type] = $obj;
+ $this->objects[strtolower($obj['cn']).$obj['cn'].$type]['type']=$type;
}
- $this->objects[strtolower($obj['cn']).$obj['cn'].$type] = $obj;
- $this->objects[strtolower($obj['cn']).$obj['cn'].$type]['type']=$type;
}
}
index c0cec6b9438bf349beec50a2198ae41c0a3578b6..73028ecb2b20c0dbb2f0700a537e5f899f31c970 100644 (file)
{
$ldap = $this->config->get_ldap_link();
$ldap->cd ($this->dn);
- $ldap->rmdir_recursive($this->dn);
- show_ldap_error($ldap->get_error(), sprintf(_("Removing of FAI/script with dn '%s' failed."),$this->dn));
- $this->handle_post_events("remove");
+
+ $use_dn = str_ireplace( get_release_dn($this->dn), $_SESSION['faifilter']['branch'], $this->dn);
+
+ $attr = prepare_ldap_fetch_to_be_saved($this->attrs);
+ if(isset($attr['FAIstate'][0])){
+ if(!preg_match("/removed$/",$attr['FAIstate'][0])){
+ $attr['FAIstate'][0] .= "|removed";
+ }
+ }else{
+ $attr['FAIstate'][0] = "|removed";
+ }
+
+ prepare_to_save_FAI_object($use_dn,$attr);
+
+ foreach($this->SubObjects as $name => $obj){
+
+ $use_dn = str_ireplace( get_release_dn($this->dn), $_SESSION['faifilter']['branch'], $obj['dn']);
+
+ $ldap->cat($obj['dn']);
+ $attr = prepare_ldap_fetch_to_be_saved($ldap->fetch());
+ if(isset($attr['FAIstate'][0])){
+ if(!preg_match("/removed$/",$attr['FAIstate'][0])){
+ $attr['FAIstate'][0] .= "|removed";
+ }
+ }else{
+ $attr['FAIstate'][0] = "|removed";
+ }
+ prepare_to_save_FAI_object($use_dn,$attr);
+ }
}
plugin::save();
$ldap = $this->config->get_ldap_link();
-
$ldap->cat($this->dn,array("objectClass"));
+
+ prepare_to_save_FAI_object($this->dn,$this->attrs);
+
if($ldap->count()!=0){
/* Write FAIscript to ldap*/
$ldap->cd($this->dn);
$this->cleanup();
- $ldap->modify ($this->attrs);
+// $ldap->modify ($this->attrs);
}else{
/* Write FAIscript to ldap*/
$ldap->cd($this->config->current['BASE']);
$ldap->create_missing_trees(preg_replace('/^[^,]+,/', '', $this->dn));
$ldap->cd($this->dn);
- $ldap->add($this->attrs);
+// $ldap->add($this->attrs);
}
show_ldap_error($ldap->get_error(), sprintf(_("Creating of FAI/script with dn '%s' failed."),$this->dn));
}
}
+
if($obj['status'] == "delete"){
+
+ $tmp['FAIstate'] = "|removed";
+ prepare_to_save_FAI_object($sub_dn,$tmp);
+
$ldap->cd($sub_dn);
- $ldap->rmdir_recursive($sub_dn);
+ //$ldap->rmdir_recursive($sub_dn);
$this->handle_post_events("remove");
show_ldap_error($ldap->get_error(), sprintf(_("Saving of FAI/script entry with dn '%s' failed."),$this->dn));
}elseif($obj['status'] == "edited"){
$ldap->cd($sub_dn);
$this->cleanup();
- $ldap->modify ($tmp);
+ prepare_to_save_FAI_object($sub_dn,$tmp);
+ // $ldap->modify ($tmp);
$this->handle_post_events("modify");
}elseif($obj['status']=="new"){
$ldap->cd($this->config->current['BASE']);
$ldap->create_missing_trees(preg_replace('/^[^,]+,/', '', $this->dn));
$ldap->cd($sub_dn);
- $ldap->add($tmp);
+ prepare_to_save_FAI_object($sub_dn,$tmp);
+ // $ldap->add($tmp);
$this->handle_post_events("add");
show_ldap_error($ldap->get_error(), sprintf(_("Saving of FAI/script entry with dn '%s' failed."),$this->dn));
}
index 22a34d2c9690ceac786eca76a8caa68a85773dc6..1f51edd97e2d84be4fde68589b20d9e8b73c49ed 100644 (file)
if((strstr($new_dn,$this->dn))&&($cnt1<$cnt2)){
print_red(_("Try to move tree failed. Destination tree is subtree of source tree."));
}else{
- $baseobject->recursive_move($this->dn, $new_dn);
+// $baseobject->recursive_move($this->dn, $new_dn);
}
}
$this->dn= $new_dn;