X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Fgroups%2Fclass_groupMail.inc;h=fd9df5eec1534820afd8a6baed5194933db0faab;hb=b5454c5f9b567b6a6ab29089563a77d00f5db194;hp=63e060239a0611c46f43fda941269a5e3bb46e1b;hpb=8859ffe4af14242e8a91bd289acfc6cc8312015d;p=gosa.git diff --git a/plugins/admin/groups/class_groupMail.inc b/plugins/admin/groups/class_groupMail.inc index 63e060239..fd9df5eec 100644 --- a/plugins/admin/groups/class_groupMail.inc +++ b/plugins/admin/groups/class_groupMail.inc @@ -40,7 +40,8 @@ class mailgroup extends plugin var $perms = array(); var $gosaMailDeliveryMode = "[L ]"; // var $gosaMailMaxSize = ""; // - + + var $remove_folder_from_imap = true; /* Helper */ var $indexed_acl= array(); @@ -55,11 +56,11 @@ class mailgroup extends plugin var $objectclasses= array("gosaMailAccount"); - function mailgroup ($config, $dn= NULL, $ui= NULL) + function mailgroup ($config, $dn= NULL, $parent= NULL) { /* Initialise all available attributes ... if possible */ - plugin::plugin($config, $dn); + plugin::plugin($config, $dn, $parent); /* Set mailMethod to the one defined in gosa.conf */ @@ -295,6 +296,7 @@ class mailgroup extends plugin /* Load templating engine */ $smarty= get_smarty(); + $display = ""; if ($_SESSION['js']==FALSE){ $smarty->assign("javascript", "false"); } else { @@ -308,7 +310,8 @@ class mailgroup extends plugin /* Do we represent a valid account? */ if (!$this->is_account && $this->parent == NULL){ - $display= "\"\" ". + + $display.= "\"\" ". _("This 'dn' has no valid mail extensions.").""; return ($display); } @@ -320,8 +323,23 @@ class mailgroup extends plugin $display= $this->show_header(_("Remove mail account"), _("This account has mail features enabled. You can disable them by clicking below.")); } else { - $display= $this->show_header(_("Create mail account"), + $display.= $this->show_header(_("Create mail account"), _("This account has mail features disabled. You can enable them by clicking below.")); + + /* Show checkbox that allows us to remove imap entry too*/ + if($this->initially_was_account){ + + $c = ""; + if($this->remove_folder_from_imap){ + $c= " checked "; + } + + $display .= "

Shared folder delete options

+ "; + $display .= _("Remove the shared folder and all its contents after saving this account"); + } + return ($display); } } @@ -596,18 +614,19 @@ class mailgroup extends plugin /* Connect to IMAP server for account deletion */ if ($this->initially_was_account){ + $method= new $this->method($this->config); - if ($method->connect($this->gosaMailServer)){ + $method->fixAttributesOnRemove($this); + if ($method->connect($this->gosaMailServer) && $this->remove_folder_from_imap){ + /* Remove account from IMAP server */ $method->deleteMailbox($this->uid); $method->disconnect(); } - $method->fixAttributesOnRemove($this); } /* Keep uid */ unset ($this->attrs['uid']); - $ldap->cd($this->dn); $ldap->modify ($this->attrs); show_ldap_error($ldap->get_error(), _("Removing group mail settings failed")); @@ -620,6 +639,16 @@ class mailgroup extends plugin /* Save data to object */ function save_object() { + + /* Check if user wants to remove the shared folder from imap too */ + if($this->initially_was_account && !$this->is_account){ + if(isset($_POST['remove_folder_from_imap'])){ + $this->remove_folder_from_imap = true; + }else{ + $this->remove_folder_from_imap = false; + } + } + /* Assemble mail delivery mode The mode field in ldap consists of values between braces, this must be called when 'mail' is set, because checkboxes may not be set when @@ -779,7 +808,7 @@ I: Only insider delivery */ /* Optionally execute a command after we're done */ if ($this->initially_was_account == $this->is_account){ if ($this->is_modified){ - $this->handle_post_events("mofify"); + $this->handle_post_events("modify"); } } else { $this->handle_post_events("add"); @@ -972,8 +1001,13 @@ I: Only insider delivery */ } } + function PrepareForCopyPaste($source) + { + plugin::PrepareForCopyPaste($source); + /* Reset alternate mail addresses */ + $this->gosaMailAlternateAddress = array(); + } } - // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: ?>