X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Fogroups%2Fclass_mailogroup.inc;h=1040dc626a0269fb76e3709574f24860acc9f09f;hb=bda4c3aedb1c60fd9945d73a8b589468602bc685;hp=0fb270913057afc88941844345b8bfd3fc5d3a52;hpb=3d7b65f57b4ec5d832611aff0064ee4a5b00fe2d;p=gosa.git diff --git a/plugins/admin/ogroups/class_mailogroup.inc b/plugins/admin/ogroups/class_mailogroup.inc index 0fb270913..1040dc626 100644 --- a/plugins/admin/ogroups/class_mailogroup.inc +++ b/plugins/admin/ogroups/class_mailogroup.inc @@ -10,11 +10,11 @@ class mailogroup extends plugin var $attributes= array("mail"); var $objectclasses= array("kolabGroupOfNames"); var $members= array(); + var $view_logged = FALSE; - - function mailogroup ($config, $dn= NULL) + function mailogroup ($config, $dn= NULL, $parent= NULL) { - plugin::plugin($config, $dn); + plugin::plugin($config, $dn, $parent); /* Include config object */ $this->config= $config; @@ -26,12 +26,22 @@ class mailogroup extends plugin function execute() { - /* Call parent execute */ - plugin::execute(); + /* Call parent execute */ + plugin::execute(); + + if($this->is_account && !$this->view_logged){ + $this->view_logged = TRUE; + new log("view","ogroups/".get_class($this),$this->dn); + } + /* Do we need to flip is_account state? */ - if (isset($_POST['modify_state'])){ - $this->is_account= !$this->is_account; + if(isset($_POST['modify_state'])){ + if($this->is_account && $this->acl_is_removeable()){ + $this->is_account= FALSE; + }elseif(!$this->is_account && $this->acl_is_createable()){ + $this->is_account= TRUE; + } } /* Show tab dialog headers */ @@ -48,9 +58,13 @@ class mailogroup extends plugin /* Initialize templating engine */ $smarty= get_smarty(); + $tmp = $this->plInfo(); + foreach($tmp['plProvidedAcls'] as $name => $translation){ + $smarty->assign($name."ACL",$this->getacl("mail")); + } + /* Assign mail attribute */ $smarty->assign("mail", $this->mail); - $smarty->assign("mailACL", chkacl($this->acl, "mail")); /* Show main page */ return ($display.$smarty->fetch (get_template_path('mail.tpl', TRUE))); @@ -73,7 +87,7 @@ class mailogroup extends plugin /* Check if mail address is already in use */ $ldap->cd($this->config->current['BASE']); - $ldap->search ("(&(!(objectClass=gosaUserTemplate))(|(mail=".$this->mail. ")(gosaMailAlternateAddress=".$this->mail."))(!(cn=".$this->cn.")))", array("uid")); + $ldap->search ("(&(!(objectClass=gosaUserTemplate))(|(mail=".$this->mail.")(gosaMailAlternateAddress=".$this->mail."))(!(cn=".$this->cn.")))", array("uid")); if ($ldap->count() != 0){ $message[]= _("The primary address you've entered is already in use."); } @@ -95,12 +109,18 @@ class mailogroup extends plugin $this->cleanup(); $ldap->modify ($this->attrs); + if($this->initially_was_account){ + new log("modify","ogroups/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error()); + }else{ + new log("create","ogroups/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error()); + } + show_ldap_error($ldap->get_error(), sprintf(_("Saving of object group/mail with dn '%s' failed."),$this->dn)); /* 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"); @@ -128,16 +148,22 @@ class mailogroup extends plugin $this->cleanup(); $ldap->modify ($this->attrs); + new log("remove","ogroups/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error()); + show_ldap_error($ldap->get_error(), sprintf(_("Removing of object group/mail with dn '%s' failed."),$this->dn)); } function getCopyDialog() { - $str = ""; - $str .= _("Phone number"); - $str .= " "; - return($str); + $str = ""; + $smarty = get_smarty(); + $smarty->assign("mail", $this->mail); + $str = $smarty->fetch(get_template_path("paste_mail.tpl",TRUE,dirname(__FILE__))); + $ret = array(); + $ret['string'] = $str; + $ret['status'] = ""; + return($ret); } @@ -149,14 +175,14 @@ class mailogroup extends plugin } - function plInfo() + function plInfo() { return (array( "plShortName" => _("Mail"), "plDescription" => _("Mail group"), "plSelfModify" => FALSE, "plDepends" => array(), - "plPriority" => 0, + "plPriority" => 4, "plSection" => array("administration"), "plCategory" => array("ogroups"), "plProvidedAcls"=> array(