diff --git a/gosa-plugins/goto/admin/systems/goto/class_terminalStartup.inc b/gosa-plugins/goto/admin/systems/goto/class_terminalStartup.inc
index f48b2aabac3c68379e797e143b4396f980eecd79..15cd3bdfe762397aeb7844867d1c71e0a2bd3694 100644 (file)
unset($this->attrs['gotoShare']['count']);
foreach($this->attrs['gotoShare'] as $share){
$tmp = $tmp2 = array();
- $tmp = split("\|",$share);
+ $tmp = explode("|",$share);
$tmp2['server'] =$tmp[0];
$tmp2['name'] =$tmp[1];
$tmp2['mountPoint'] =$tmp[2];
$this->orig_dn= $this->dn;
- /* Get list of boot kernels */
- if (isset($this->config->data['TABS'])){
- $command= $this->config->search(get_class($this), "systemKernelsHook",array('tabs'));
-
- if (!check_command($command)){
- $message[]= sprintf(_("Command '%s', specified as systemKernelsHook for plugin '%s' doesn't seem to exist."), $command,
- get_class($this));
- } else {
- $fh= popen($command, "r");
- while (!feof($fh)) {
- $buffer= trim(fgets($fh, 256));
-
- if(!empty($buffer)){
-
- $name=$value = $buffer;
-
- if(preg_match("/:/",$buffer)){
- $name = preg_replace("/:.*$/","",$buffer);
- $value= preg_replace("/^.*:/","",$buffer);
- $this->gotoBootKernels[$name]= $name.":".$value;
- }else{
- $this->gotoBootKernels[$name]= $value;
- }
- }
+ /* Creating a list of valid Mirrors
+ * none will not be saved to ldap.
+ */
+ $ldap = $this->config->get_ldap_link();
+ $ldap->cd($this->config->current['BASE']);
+ $ui = get_userinfo();
+ foreach($this->config->data['SERVERS']['LDAP'] as $dn => $data){
+ if($ui->get_category_permissions($data['dn'],"server",TRUE)){
+ for($i = 0; $i < $data['goLdapBase']['count']; $i ++){
+ $name = $data["cn"][0].":".$data["goLdapBase"][$i];
+ $this->gotoLdapServerList[]= $name;
}
- pclose($fh);
}
-
- }
-
- foreach($this->config->data['SERVERS']['LDAP'] as $server) {
- $this->gotoLdapServerList[]= $server;
}
+
if(isset($this->attrs['gotoLdapServer'])){
unset($this->attrs['gotoLdapServer']['count']);
sort($this->attrs['gotoLdapServer']);
}
natcasesort($this->gotoLdapServerList);
- if(!count($this->gotoLdapServers) && $this->member_of_ogroup){
- $this->gotoLdap_inherit = TRUE;
- }
-
-
/* Load hardware list */
$ldap= $this->config->get_ldap_link();
$ldap->cd($this->config->current['BASE']);
if ($ldap->count() == 1){
$map= array("gotoLdapServer","gotoBootKernel");
$attrs= $ldap->fetch();
+ $this->member_of_ogroup = TRUE;
+ $this->o_group_dn = $attrs['dn'];
foreach ($map as $name){
if (!isset($attrs[$name][0])){
case 'gotoBootKernel':
/* Handle inheritance value "default" */
if ($this->member_of_ogroup){
- $this->gotoBootKernels= array("default-inherited" => '['._("inherited").']');
+ $this->gotoBootKernels["default-inherited"]= _("inherited")." [".$attrs['gotoBootKernel'][0]."]";
}
break;
case 'gotoLdapServer':
break;
}
}
+ }
- $this->member_of_ogroup = TRUE;
- $this->o_group_dn = $attrs['dn'];
+ if(!count($this->gotoLdapServers) && $this->member_of_ogroup){
+ $this->gotoLdap_inherit = TRUE;
}
+
+ /* Get list of boot kernels */
+ if (isset($this->config->data['TABS'])){
+ $command= $this->config->search(get_class($this), "systemKernelsHook",array('tabs'));
+
+ if (!check_command($command)){
+ $message[]= sprintf(_("Command '%s', specified as systemKernelsHook for plugin '%s' doesn't seem to exist."), $command,
+ get_class($this));
+ } else {
+ $fh= popen($command, "r");
+ while (!feof($fh)) {
+ $buffer= trim(fgets($fh, 256));
+
+ if(!empty($buffer)){
+
+ $name=$value = $buffer;
+
+ if(preg_match("/:/",$buffer)){
+ $name = preg_replace("/:.*$/","",$buffer);
+ $value= preg_replace("/^.*:/","",$buffer);
+ $this->gotoBootKernels[$name]= $name.":".$value;
+ }else{
+ $this->gotoBootKernels[$name]= $value;
+ }
+ }
+ }
+ pclose($fh);
+ }
+
+ }
+
}
function execute()
/* We assign a share to this user, if we don't know where to mount the share */
if((!isset($_POST['gotoShareMountPoint']))||(empty($_POST['gotoShareMountPoint']))||(preg_match("/[\|]/i",$_POST['gotoShareMountPoint']))){
msg_dialog::display(_("Error"), msgPool::invalid(_("Mount point")), WARNING_DIALOG);
- }else{
+ }elseif(isset($_POST['gotoShareSelection']) && isset($this->gotoAvailableShares[$_POST['gotoShareSelection']])){
$a_share = $this->gotoAvailableShares[$_POST['gotoShareSelection']];
$s_mount = $_POST['gotoShareMountPoint'];
/* Preparing the new assignment */
}else{
$this->gotoLdap_inherit = FALSE;
}
-
- /* Save kernel parameters */
- if ($this->acl_is_writeable("gotoKernelParameters") && isset($_POST["gotoKernelParameters"])){
- $this->gotoKernelParameters= $_POST["gotoKernelParameters"];
- }
}
}
exit();
}
- /* Find proper terminal path for tftp configuration
- FIXME: This is suboptimal when the default has changed to
- another location! */
- if ($this->gotoTerminalPath == "default-inherit"){
- $ldap= $this->config->get_ldap_link();
-
- /* Strip relevant part from dn, keep trailing ',' */
- $tmp= preg_replace("/^cn=[^,]+,".get_ou('terminalRDN')."/i", "", $this->dn);
- $tmp= preg_replace("/".$this->config->current['BASE']."$/i", "", $tmp);
-
- /* Walk from top to base and try to load default values for
- 'gotoTerminalPath'. Abort when an entry is found. */
- while (TRUE){
- $tmp= preg_replace ("/^[^,]+,/", "", $tmp);
-
- $ldap->cat("cn=default,".get_ou('terminalRDN').$tmp.
- $this->config->current['BASE'], array('gotoTerminalPath'));
- $attrs= $ldap->fetch();
- if (isset($attrs['gotoTerminalPath'])){
- $this->gotoTerminalPath= $attrs['gotoTerminalPath'][0];
- break;
- }
-
- /* Nothing left? */
- if ($tmp == ""){
- break;
- }
- }
- }
plugin::save();
/* prepare share settings */
$tmp = array();
foreach($this->gotoShares as $name => $settings){
- $tmp2 = split("\|",$name);
+ $tmp2 = explode("|",$name);
$name = $tmp2[0];
$tmp[] = $settings['server']."|".$name."|".$settings['mountPoint'];
}
$source_o = new termstartup ($this->config, $source['dn']);
- foreach(array("gotoModules", "gotoKernelParameters","gotoShares","gotoKernelParameters","gotoTerminalPath","gotoShares","goLdapServerList","gotoBootKernel","gotoLdapServer","gotoBootKernels") as $attr){
+ foreach(array("gotoModules", "gotoKernelParameters","gotoShare",
+ "gotoKernelParameters","gotoShares",
+ "goLdapServerList","gotoBootKernel","gotoLdapServer",
+ "gotoBootKernels","gotoLdapServers","gotoLdapServers",
+ "gotoLdapServerList","gotoLdap_inherit","gotoShareSelections",
+ "gotoAvailableShares") as $attr){
$this->$attr = $source_o->$attr;
}
}