X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Fsystems%2Fclass_goShareServer.inc;h=5f580dde93e6d69bc6555e0bbb4f843506252a28;hb=ea192ab4f2ec780c4e2f21820ba653c67da84bb3;hp=5bfe63424829bfb9c29cbc9ed582b80543dbf893;hpb=7f7195906026b53e8e9dcd1aacaedeefd2710ed4;p=gosa.git
diff --git a/plugins/admin/systems/class_goShareServer.inc b/plugins/admin/systems/class_goShareServer.inc
index 5bfe63424..5f580dde9 100644
--- a/plugins/admin/systems/class_goShareServer.inc
+++ b/plugins/admin/systems/class_goShareServer.inc
@@ -55,7 +55,7 @@ class goShareServer extends goService{
$smarty = get_smarty();
- if((isset($_POST['DelNfsEnt']))&&(isset($_POST['goExportEntryList']))){
+ if((isset($_POST['DelNfsEnt']))&&(isset($_POST['goExportEntryList'])) && ($this->acl_is_writeable("name"))){
if($this->allow_mounts){
foreach($_POST['goExportEntryList'] as $entry){
$this->deleteFromMountList($this->goExportEntryList[$entry]);
@@ -66,7 +66,7 @@ class goShareServer extends goService{
}
}
- if(isset($_POST['NewNfsAdd'])){
+ if(isset($_POST['NewNfsAdd']) && ($this->acl_is_writeable("name"))){
$this->oldone = NULL;
$this->o_subWindow = new servnfs($this->config, $this);
$this->o_subWindow->set_acl_category("server");
@@ -96,6 +96,7 @@ class goShareServer extends goService{
}else{
$this->o_subWindow->save_object();
$newone = $this->o_subWindow->save();
+
$this->addToList($newone);
if($this->allow_mounts){
if($this->oldone) {
@@ -128,11 +129,9 @@ class goShareServer extends goService{
/* Set acls */
$tmp = $this->plInfo();
- $acl = "";
foreach($tmp['plProvidedAcls'] as $name => $translated){
- $acl .= $this->getacl($name);
+ $smarty->assign($name."ACL",$this->getacl($name));
}
- $smarty->assign("goExportEntryACL",$acl);
$smarty->assign("createable",$this->acl_is_createable());
$smarty->assign("removeable",$this->acl_is_removeable());
@@ -213,8 +212,26 @@ class goShareServer extends goService{
$this->goExportEntryList[$key]=$entry[$key];
}
- function deleteFromList($id){
- unset($this->goExportEntryList[$id]);
+ function deleteFromList($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.= "