X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Fsystems%2Fclass_servService.inc;h=266c0edc37472da54f253df2ceb103ffe0daacf5;hb=d9f1895952e9b02c1b0c398cc5dc09b88178e603;hp=091e98717f25c66dc67810b112fb7bb8945d3f6d;hpb=4f507bf6c24fd9a5c50928b3a0c334ba5529c42d;p=gosa.git
diff --git a/plugins/admin/systems/class_servService.inc b/plugins/admin/systems/class_servService.inc
index 091e98717..266c0edc3 100644
--- a/plugins/admin/systems/class_servService.inc
+++ b/plugins/admin/systems/class_servService.inc
@@ -99,7 +99,24 @@ class servservice extends plugin
}
function deleteFromList($id){
- unset($this->goExportEntryList[$id]);
+ /* Check if the share is used by someone */
+ $ldap = $this->config->get_ldap_link();
+ $ldap->cd($this->config->current['BASE']);
+ $ldap->search("(|(gotoProfileServer=*|$id)(gotoShare=*|$id|*))", array("cn"));
+ $cnt= $ldap->count();
+ if ($cnt){
+ $msg= sprintf(_("The share can't be removed since it is still used by %d users:"), $cnt);
+ $msg.= "
";
+ while ($attrs= $ldap->fetch()){
+ $msg.= "- ".$attrs["cn"][0]."
";
+ }
+ $msg.= "
"._("Please correct the share-/profile settings of these users");
+ print_red($msg);
+
+ } else {
+ /* Finally remove it */
+ unset($this->goExportEntryList[$id]);
+ }
}
function addToMountList($entry) {
@@ -128,7 +145,7 @@ class servservice extends plugin
$smarty= get_smarty();
$smarty->assign("staticAddress", "");
- if((isset($_POST['DelNfsEnt']))&&(isset($_POST['goExportEntryList']))){
+ if((isset($_POST['DelNfsEnt'])) && (isset($_POST['goExportEntryList'])) && chkacl($this->acl,"goExportEntry") == ""){
if($this->allow_mounts){
foreach($_POST['goExportEntryList'] as $entry){
$this->deleteFromMountList($this->goExportEntryList[$entry]);
@@ -139,13 +156,13 @@ class servservice extends plugin
}
}
- if(isset($_POST['NewNfsAdd'])){
+ if(isset($_POST['NewNfsAdd']) && chkacl($this->acl,"goExportEntry") == ""){
$this->oldone = NULL;
$this->o_subWindow = new servnfs($this->config,$this->acl, $this->allow_mounts, $this->dn);
$this->dialog = true;
}
- if((isset($_POST['NewNfsEdit']))&&(isset($_POST['goExportEntryList']))){
+ if((isset($_POST['NewNfsEdit']))&&(isset($_POST['goExportEntryList'])) && chkacl($this->acl,"goExportEntry") == ""){
$entry = $this->goExportEntryList[$_POST['goExportEntryList'][0]];
$add_mount=isset($this->mounts_to_add[$entry]);
$this->oldone=$entry;
@@ -193,13 +210,13 @@ class servservice extends plugin
}
/* Here we add a new entry */
- if(isset($_POST['NewNTPAdd']) && $_POST['NewNTPExport'] != "") {
+ if(isset($_POST['NewNTPAdd']) && $_POST['NewNTPExport'] != "" && chkacl($this->acl,"goNtpServer") == "") {
$this->goTimeSource[$_POST['NewNTPExport']]= $_POST['NewNTPExport'];
asort($this->goTimeSource);
}
/* Deleting an Entry, is a bit more complicated than adding one*/
- if(isset($_POST['DelNTPEnt'])) {
+ if(isset($_POST['DelNTPEnt']) && chkacl($this->acl,"goNtpServer") == "") {
foreach ($_POST['goTimeSource'] as $entry){
if (isset($this->goTimeSource[$entry])){
unset($this->goTimeSource[$entry]);
@@ -248,7 +265,7 @@ class servservice extends plugin
$smarty->assign("goExportEntryACL", " disabled ");
}else{
$smarty->assign("goShareServerState", " ");
- $smarty->assign("goExportEntryACL", " ");
+ $smarty->assign("goExportEntryACL", chkacl($this->acl, "goExportEntry"));
}
/* Different handling for checkbox */
@@ -275,9 +292,9 @@ class servservice extends plugin
if (isset($_POST['servicetab'])){
$tmp = $this->goTimeSource;
- if(isset($_POST['goLdapBase'])){
+ if(isset($_POST['goLdapBase']) && chkacl($this->acl,"goLdapBase") == ""){
$this->goLdapBase = $_POST['goLdapBase'];
- }
+ }
/* Save checkbox state */
foreach ($this->additionaloc as $oc => $dummy){
@@ -292,17 +309,21 @@ class servservice extends plugin
}
/* Save xdmcp is enabled flag */
- if (isset($_POST['goXdmcpIsEnabled'])){
- $this->goXdmcpIsEnabled= "true";
- } else {
- $this->goXdmcpIsEnabled= "false";
+ if(chkacl($this->acl,"goXdmcpIsEnabled") == ""){
+ if (isset($_POST['goXdmcpIsEnabled'])){
+ $this->goXdmcpIsEnabled= "true";
+ } else {
+ $this->goXdmcpIsEnabled= "false";
+ }
}
/* Save xdmcp is enabled flag */
- if (isset($_POST['goShareServer'])){
- $this->goShareServer = true;
- } else {
- $this->goShareServer = false;
+ if(chkacl($this->acl,"goExportEntry") == ""){
+ if (isset($_POST['goShareServer'])){
+ $this->goShareServer = true;
+ } else {
+ $this->goShareServer = false;
+ }
}
$this->goTimeSource = array();
$this->goTimeSource = $tmp;