index 1bcc95816fea23ddbbd01a7cca4dc65bc5dfd0c3..629b0190d77383bd51a939402e5a36d1b5a42e09 100644 (file)
if ($s_action=="delete"){
+ /* Get 'dn' from posted termlinst */
+ $this->dn= $this->objects[$s_entry]['dn'];
+
/* Load permissions for selected 'dn' and check if
we're allowed to remove this 'dn' */
$acl = $this->ui->get_permissions($this->dn,"fai/".$type_acl_mapping[$this->objects[$s_entry]['type']]);
if(preg_match("/d/",$acl)){
- /* Get 'dn' from posted termlinst */
- $this->dn= $this->objects[$s_entry]['dn'];
-
/* Check locking, save current plugin in 'back_plugin', so the dialog knows where to return. */
if (($user= get_lock($this->dn)) != ""){
return(gen_locked_message ($user, $this->dn));
/* Some nice guy may send this as POST, so we've to check
for the permissions again. */
- $acl = $this->ui->get_permissions($this->dn,"fai/".$type_acl_mapping[$this->objects[$s_entry]['type']]);
+
+ /* Find out more about the object type */
+ $ldap = $this->config->get_ldap_link();
+ $ldap->cat($this->dn, array('objectClass'));
+ $attrs = $ldap->fetch();
+ $type = $this->get_type($attrs);
+
+ $acl = $this->ui->get_permissions($this->dn,"fai/".$type[1]);
if(preg_match("/d/",$acl)){
- /* Find out more about the object type */
- $ldap = $this->config->get_ldap_link();
- $ldap->cat($this->dn, array('objectClass'));
- $attrs = $ldap->fetch();
- $type = $this->get_type($attrs);
- $this->dialog = new $type[0]($this->config, $this->config->data['TABS'][$type[2]], $this->dn);
- $this->dialog->by_object[$type[1]]->remove_from_parent ();
- unset ($this->dialog);
- gosa_log ("FAI class '".$this->dn."' has been tagged as removed");
- $this->dialog= NULL;
+ $this->dialog = new $type[0]($this->config, $this->config->data['TABS'][$type[2]], $this->dn,"fai");
+ $this->dialog->set_acl_base($this->dn);
+ $this->dialog->by_object[$type[1]]->remove_from_parent ();
+ unset ($this->dialog);
+ gosa_log ("FAI class '".$this->dn."' has been tagged as removed");
+ $this->dialog= NULL;
$to_del = clean_up_releases($this->dn);
save_release_changes_now();
gosa_log(sprintf(_("Release cleanup : Removing object (tagged as remvoed) that is no longer in use '%s'."),$dn));
}
- } else {
+ } else {
- /* Normally this shouldn't be reached, send some extra
- logs to notify the administrator */
- print_red (_("You are not allowed to delete this component!"));
- gosa_log ("Warning: '".$this->ui->uid."' tried to trick system ".
- "deletion.");
- }
+ /* Normally this shouldn't be reached, send some extra
+ logs to notify the administrator */
+ print_red (_("You are not allowed to delete this component!"));
+ gosa_log ("Warning: '".$this->ui->uid."' tried to trick system ".
+ "deletion.");
+ }
- /* Remove lock file after successfull deletion */
- del_lock ($this->dn);
- }
+ /* Remove lock file after successfull deletion */
+ del_lock ($this->dn);
+ }
/****************
}
add_lock ($this->dn, $this->ui->dn);
- $this->dialog = new $a_setup[0]($this->config,$this->config->data['TABS'][$a_setup[2]],$this->dn);
+ $this->dialog = new $a_setup[0]($this->config,$this->config->data['TABS'][$a_setup[2]],$this->dn,"fai");
+ $this->dialog->set_acl_base($this->dn);
$this->is_dialog = true;
if($entry['FAIstate'] == "freeze"){
$mimedst = preg_replace("/ou=fai,ou=configs,ou=systems,/","ou=mime,","ou=".$name.",".$baseToUse) ;
/* Print header to have styles included */
- echo "<!-- headers.tpl-->".$smarty->fetch(get_template_path('headers.tpl'));
- echo "<body style='background-image:none;margin:3px;color:black'>";
+ echo ' <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+ <html>
+ <head>
+ <title></title>
+ <style type="text/css">@import url("themes/default/style.css");</style>
+ <script language="javascript" src="include/focus.js" type="text/javascript"></script>
+ </head>
+ <body style="background: none;margin:3px;color:black">
+ ';
+
/* Duplicate applications
*/
<br><input type='submit' name='CloseIFrame' value='"._("Continue")."'>
</form></div>";
+ echo "<script language=\"javascript\" type=\"text/javascript\">scrollDown2();</script>" ;
+
/* Print footer to have valid html */
echo "</body></html>";
$acl = $this->ui->get_permissions($this->DivListFai->selectedBase,"fai/faiProfile");
if(preg_match("/c/",$acl)){
$a_setup= $this->get_type(array("objectClass"=>array("FAIprofile")));
- $this->dialog = new $a_setup[0]($this->config,$this->config->data['TABS'][$a_setup[2]],$this->dn);
+ $this->dialog = new $a_setup[0]($this->config,$this->config->data['TABS'][$a_setup[2]],$this->dn,"fai");
+ $this->dialog->set_acl_base($_SESSION['CurrentMainBase']);
+
$this->is_dialog = false;
}else{
print_red(sprintf(_("You are not allowed to create a new '%s' object."),"FAIprofile"));
$a_setup= $this->get_type(array("objectClass"=>array($this->dialog->objectClass)));
$name = $this->dialog->save();
- $this->dialog = new $a_setup[0]($this->config,
- $this->config->data['TABS'][$a_setup[2]],$this->dn,$name);
+ $this->dialog = new $a_setup[0]($this->config,$this->config->data['TABS'][$a_setup[2]],$this->dn,"fai");
+ $this->dialog->set_acl_base($_SESSION['CurrentMainBase']);
$this->dialog->by_object[$a_setup[1]]->cn = $name;
$this->is_dialog = true;
}
$this->lock_type = get_release_tag(get_release_dn($base));
- /* 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"));
+ "FAIpartitionTable" => array("OU"=>"ou=disk," , "CHKBOX"=>"ShowPartitions" ,"ACL" => "faiPartitionTable"),
+ "FAIpackageList" => array("OU"=>"ou=packages," , "CHKBOX"=>"ShowPackages" ,"ACL" => "faiPackage"),
+ "FAIscript" => array("OU"=>"ou=scripts," , "CHKBOX"=>"ShowScripts" ,"ACL" => "faiScript"),
+ "FAIvariable" => array("OU"=>"ou=variables," , "CHKBOX"=>"ShowVariables" ,"ACL" => "faiVariable"),
+ "FAIhook" => array("OU"=>"ou=hooks," , "CHKBOX"=>"ShowHooks" ,"ACL" => "faiHook"),
+ "FAIprofile" => array("OU"=>"ou=profiles," , "CHKBOX"=>"ShowProfiles" ,"ACL" => "faiProfile"),
+ "FAItemplate" => array("OU"=>"ou=templates," , "CHKBOX"=>"ShowTemplates" ,"ACL" => "faiTemplate"));
+
+ $filter = "";
+ foreach($ObjectTypes as $key => $data){
+ if($this->DivListFai->$data['CHKBOX']){
+ $filter.= "(objectClass=".$key.")";
+ }
+ }
+ $filter = "(&(|".$filter.")(cn=$Regex))";
+
+ /* Get resolved release dependencies */
+ $tmp = get_all_objects_for_given_base($base,$filter);
/* Ge listed ldap objects */
$ldap = $this->config->get_ldap_link();
/* Walk through possible types */
foreach($ObjectTypes as $type => $rest){
- /* Skip all unchecked types */
- if(! $this->DivListFai->$rest['CHKBOX']){
- continue;
- }
+ $acl = $this->ui->get_permissions($object['dn'],"fai/".$rest ['ACL']);
- if(in_array($type,$object['objectClass'])){
+ if(in_array($type,$object['objectClass']) && preg_match("/r/",$acl)){
/* Prepare object */
unset($object['objectClass']['count']);
$obj = array();
$obj['cn'] = $object['cn'][0];
$obj['dn'] = $object['dn'];
+ $obj['acl'] = $acl;
$obj['description'] = $object['description'][0];
$obj['objectClass'] = $object['objectClass'];