diff --git a/gosa-plugins/mail/personal/mail/class_mailAccount.inc b/gosa-plugins/mail/personal/mail/class_mailAccount.inc
index 5a0356566f873db2df359476ab4e167a9889d10e..4918868bec066c7ef7ed8eb2e8952063e03a5ba2 100644 (file)
$this->initially_was_account= $this->is_account;
/* Set mailMethod to the one defined in gosa.conf */
- if (isset($this->config->current['MAILMETHOD'])){
- $method= $this->config->current['MAILMETHOD'];
+ if ($this->config->get_cfg_value("mailmethod") != ""){
+ $method= $this->config->get_cfg_value("mailmethod");
$cls = get_correct_class_name("mailMethod$method");
if ($cls && class_exists($cls)){
$this->method= $cls;
} else {
- msg_dialog::display(_("Configuration error"), sprintf(_("Unkown mail method '%s' specified!"), $method), ERROR_DIALOG);
+ msg_dialog::display(_("Configuration error"), sprintf(_("Mail method '%s' is unknown!"), $method), ERROR_DIALOG);
}
}
/* Create the account prefix user. user/
Preset folder prefix. Will change it later to respect
altnamespace. */
- if (isset($this->config->current['CYRUSUNIXSTYLE']) && $this->config->current['CYRUSUNIXSTYLE'] == "true"){
- $this->folder_prefix= "user/";
- }elseif (isset($this->config->data['MAIN']['CYRUSUNIXSTYLE']) && $this->config->data['MAIN']['CYRUSUNIXSTYLE'] == "true"){
+ if ($this->config->get_cfg_value("cyrusunixstyle") == "true"){
$this->folder_prefix= "user/";
} else {
$this->folder_prefix= "user.";
/* Fill vacation array */
$this->vacation= array();
- if (isset($this->config->current['VACATIONDIR'])){
- $dir= $this->config->current['VACATIONDIR'];
+ if ($this->config->get_cfg_value("vacationdir") != ""){
+ $dir= $this->config->get_cfg_value("vacationdir");
if (is_dir($dir) && is_readable($dir)){
/* Look for files and build the vacation array */
/* Get available mailserver */
$mailserver= array();
+ $ui = get_userinfo();
foreach ($this->config->data['SERVERS']['IMAP'] as $key => $val){
- $mailserver[]= $key;
+ if( $this->gosaMailServer == $key ||
+ preg_match("/r/",$ui->get_permissions($val['server_dn'],"server/goImapServer",""))){
+ $mailserver[]= $key;
+ }
}
/*
/* Do we represent a valid account? */
if(!$this->multiple_support_active){
if (!$this->is_account && $this->parent === NULL){
- $display= "<img alt=\"\" src=\"images/stop.png\" align=\"middle\"> <b>".
- _("This account has no mail extensions.")."</b>";
+ $display= "<img alt=\"\" src=\"images/small-error.png\" align=\"middle\"> <b>".
+ msgPool::noValidExtension(_("Mail"))."</b>";
$display.= back_to_main();
return ($display);
if ($this->parent !== NULL){
if ($this->is_account){
if($this->accountDelegationsConfigured()){
- $display= $this->show_disable_header(_("Remove mail account"),
- _("This account can't be removed while there are delegations configured. Remove those delegations first."),TRUE,TRUE);
+ $display= $this->show_disable_header(msgPool::removeFeaturesButton(_("Mail")),
+ _("Mail settings cannot be removed while there are delegations configured!"),TRUE,TRUE);
}else{
- $display= $this->show_disable_header(_("Remove mail account"),
- _("This account has mail features enabled. You can disable them by clicking below."));
+ $display= $this->show_disable_header(msgPool::removeFeaturesButton(_("Mail")),
+ msgPool::featuresEnabled(_("Mail")));
}
} else {
- $display= $this->show_enable_header(_("Create mail account"), _("This account has mail features disabled. You can enable them by clicking below."));
+ $display= $this->show_enable_header(msgPool::addFeaturesButton(_("Mail")),
+ msgPool::featuresDisabled(_("Mail")));
return ($display);
}
}
/* Finished adding of locals? */
if (isset($_POST['add_locals_finish'])){
- /* Check if we are able to write gosaMailForwardingAddress */
- if($this->acl_is_writeable("gosaMailForwardingAddress")){
+ if (isset($_POST['local_list'])){
- /* Walk through list of forwarders, ignore own addresses */
- foreach ($_POST['local_list'] as $val){
- if (!in_array ($val, $this->gosaMailAlternateAddress) &&
- $val != $this->mail){
+ /* Check if we are able to write gosaMailForwardingAddress */
+ if($this->acl_is_writeable("gosaMailForwardingAddress")){
- $this->addForwarder($val);
- $this->is_modified= TRUE;
+ /* Walk through list of forwarders, ignore own addresses */
+ foreach ($_POST['local_list'] as $val){
+ if (!in_array ($val, $this->gosaMailAlternateAddress) &&
+ $val != $this->mail){
+
+ $this->addForwarder($val);
+ $this->is_modified= TRUE;
+ }
}
}
+ $this->forward_dialog= FALSE;
+ $this->dialog= FALSE;
+ } else {
+ msg_dialog::display(_("Error"), _("Please select an entry!"), ERROR_DIALOG);
}
- $this->forward_dialog= FALSE;
- $this->dialog= FALSE;
}
/* Add forward email addresses */
if ($this->is_template){
$valid= TRUE;
} else {
- msg_dialog::display(_("Error"), _("Cannot add invalid mail address!"), ERROR_DIALOG);
+ msg_dialog::display(_("Error"),
+ msgPool::invalid(_("Mail address"),"","","your-domain@your-domain.com"),
+ ERROR_DIALOG);
}
}
} elseif ($address == $this->mail
|| in_array($address, $this->gosaMailAlternateAddress)) {
-
- msg_dialog::display(_("Error"),_("Cannot add your primary address to the list of forwarders.") , ERROR_DIALOG);
-
+ msg_dialog::display(_("Error"),_("Cannot add primary address to the list of forwarders!") , ERROR_DIALOG);
} else {
$valid= TRUE;
}
if (!tests::is_email($_POST['alternate_address'])){
if ($this->is_template){
if (!(tests::is_email($_POST['alternate_address'], TRUE))){
- msg_dialog::display(_("Error"), _("Cannot add invalid mail address!"), ERROR_DIALOG);
+ msg_dialog::display(_("Error"),
+ msgPool::invalid(_("Mail address"),"","","your-domain@your-domain.com"),
+ ERROR_DIALOG);
+
} else {
$valid= TRUE;
}
} else {
- msg_dialog::display(_("Error"), _("Cannot add invalid mail address!"), ERROR_DIALOG);
+ msg_dialog::display(_("Error"),
+ msgPool::invalid(_("Mail address"),"","","your-domain@your-domain.com"),
+ ERROR_DIALOG);
}
} else {
if ($valid && ($user= $this->addAlternate ($_POST['alternate_address'])) != ""){
$ui= get_userinfo();
if ($user != $ui->username){
- msg_dialog::display(_("Error"), sprintf(_("Cannot add mail address: it is already used by user '%s'."), $user), ERROR_DIALOG);
+ msg_dialog::display(_("Error"), msgPool::duplicated(_("Mail address"))." ".
+ sprintf(_("Address is already in use by user '%s'."), $user), ERROR_DIALOG);
}
}
}
reset ($mailusers);
/* Show dialog */
- $smarty->assign("search_image", get_template_path('images/search.png'));
- $smarty->assign("usearch_image", get_template_path('images/search_user.png'));
- $smarty->assign("tree_image", get_template_path('images/tree.png'));
+ $smarty->assign("search_image", get_template_path('images/lists/search.png'));
+ $smarty->assign("usearch_image", get_template_path('images/lists/search-user.png'));
+ $smarty->assign("tree_image", get_template_path('images/lists/search-subtree.png'));
$smarty->assign("infoimage", get_template_path('images/info.png'));
- $smarty->assign("launchimage", get_template_path('images/small_filter.png'));
+ $smarty->assign("launchimage", get_template_path('images/lists/action.png'));
$smarty->assign("mailusers", $mailusers);
if (isset($_POST['depselect'])){
$smarty->assign("depselect", $_POST['depselect']);
for($y= $date['year']-10; $y<$date['year']+10; $y++){
$years[]= $y;
}
- $months= array(_("January"), _("February"), _("March"), _("April"),
- _("May"), _("June"), _("July"), _("August"), _("September"),
- _("October"), _("November"), _("December"));
+ $months= msgPool::months();
$smarty->assign("start_day", $date["mday"]);
$smarty->assign("days", $days);
$smarty->assign("months", $months);
/* Add "view" to logging class */
new log("remove","users/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
- show_ldap_error($ldap->get_error(), sprintf(_("Removing of user/mail account with dn '%s' failed."),$this->dn));
+ if (!$ldap->success()){
+ msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, LDAP_MOD, get_class()));
+ }
/* Connect to IMAP server for account deletion */
if ($this->gosaMailServer != ""){
$this->cleanup();
$ldap->modify ($this->attrs);
- show_ldap_error($ldap->get_error(), sprintf(_("Saving of user/mail account with dn '%s' failed."),$this->dn));
+ if (!$ldap->success()){
+ msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, LDAP_MOD, get_class()));
+ }
/* Log last action */
if($this->initially_was_account){
$message= plugin::check();
if(empty($this->gosaMailServer)){
- $message[]= _("There is no valid mailserver specified, please add one in the system setup.");
+ $message[]= msgPool::noserver(_("Mail"));
}
/* must: mail */
if ($this->mail == ""){
- $message[]= _("The required field 'Primary address' is not set.");
+ $message[]= msgPool::required(_("Primary address"));
}
if ($this->is_template){
if (!tests::is_email($this->mail, TRUE)){
- $message[]= _("Please enter a valid email address in 'Primary address' field.");
+ $message[]= msgPool::invalid(_("Mail address"),"","","%givenName.%sn@your-domain.com");
}
} else {
if (!tests::is_email($this->mail)){
- $message[]= _("Please enter a valid email address in 'Primary address' field.");
+ $message[]= msgPool::invalid(_("Mail address"),"","","your-domain@your-domain.com");
}
}
+
$ldap->cd($this->config->current['BASE']);
- $ldap->search ("(&(!(objectClass=gosaUserTemplate))(objectClass=gosaMailAccount)(|(mail=".$this->mail.")(gosaMailAlternateAddress=".$this->mail."))(!(uid=".$this->uid."))(!(cn=".$this->uid.")))", array("uid"));
+ $filter = "(&(!(objectClass=gosaUserTemplate))(!(uid=".$this->uid."))".
+ "(objectClass=gosaMailAccount)".
+ "(|(mail=".$this->mail.")(alias=".$this->mail.")(gosaMailAlternateAddress=".$this->mail.")))";
+
+ $ldap->search($filter,array("uid"));
if ($ldap->count() != 0){
- $message[]= _("The primary address you've entered is already in use.");
+ $message[]= msgPool::duplicated(_("Mail address"));
}
+
/* Check quota */
if ($this->gosaMailQuota != '' && $this->acl_is_writeable("gosaMailQuota")){
if (!is_numeric($this->gosaMailQuota)) {
- $message[]= _("Value in 'Quota size' is not valid.");
+ $message[]= msgPool::invalid(_("Quota size"),$this->gosaMailQuota,"/^[0-9]*/");
} else {
$this->gosaMailQuota= (int) $this->gosaMailQuota;
}
/* Check rejectsize for integer */
if ($this->gosaMailMaxSize != '' && $this->acl_is_writeable("gosaMailMaxSize")){
if (!is_numeric($this->gosaMailMaxSize)){
- $message[]= _("Please specify a vaild mail size for mails to be rejected.");
+ $message[]= msgPool::invalid(_("Mail reject size"),$this->gosaMailMaxSize,"/^[0-9]*/");
} else {
$this->gosaMailMaxSize= (int) $this->gosaMailMaxSize;
}
}
/* Need gosaMailMaxSize if use_mailsize_limit is checked */
- if (is_integer(strpos($this->gosaMailDeliveryMode, "R")) &&
- $this->gosaMailMaxSize == ""){
-
- $message[]= _("You need to set the maximum mail size in order to reject anything.");
+ if (is_integer(strpos($this->gosaMailDeliveryMode, "R")) && $this->gosaMailMaxSize == ""){
+ $message[]= msgPool::required(_("Mail reject size"));
}
if((preg_match("/S/", $this->gosaMailDeliveryMode))&&(empty($this->gosaSpamMailbox))) {
- $message[]= _("You specified Spam settings, but there is no Folder specified.");
+ $message[]= msgPool::required(_("Spam folder"));
}
- if (preg_match('/V/', $this->gosaMailDeliveryMode) && $this->gosaVacationStart > $this->gosaVacationStop){
- $message[]= _("Time interval to show vacation message is not valid.");
+ if (preg_match('/V/', $this->gosaMailDeliveryMode) && $this->gosaVacationStart >= $this->gosaVacationStop){
+ $message[]= msgPool::invalid(_("Vacation interval"));
}
return ($message);
/* Adapt from template, using 'dn' */
- function adapt_from_template($dn)
+ function adapt_from_template($dn, $skip= array())
{
- plugin::adapt_from_template($dn);
+ plugin::adapt_from_template($dn, $skip);
foreach (array("gosaMailAlternateAddress", "gosaMailForwardingAddress") as $val){
+
+ if (in_array($val, $skip)){
+ continue;
+ }
+
$this->$val= array();
if (isset($this->attrs["$val"]["count"])){
for ($i= 0; $i<$this->attrs["$val"]["count"]; $i++){
reset ($this->gosaMailForwardingAddress);
$this->is_modified= TRUE;
}else{
- msg_dialog::display(_("Permission error"), _("You have no permission to modify these addresses."), ERROR_DIALOG);
+ msg_dialog::display(_("Permission error"), _("You have no permission to modify these addresses!"), ERROR_DIALOG);
}
}
$this->gosaMailForwardingAddress= array_remove_entries ($addresses, $this->gosaMailForwardingAddress);
$this->is_modified= TRUE;
}else{
- msg_dialog::display(_("Permission error"), _("You have no permission to modify these addresses."), ERROR_DIALOG);
+ msg_dialog::display(_("Permission error"), _("You have no permission to modify these addresses!"), ERROR_DIALOG);
}
}
/* Is this address already assigned in LDAP? */
$ldap->cd ($this->config->current['BASE']);
- $ldap->search ("(&(objectClass=gosaMailAccount)(|(mail=$address)"."(gosaMailAlternateAddress=$address)))", array("uid"));
- $ldap->search ("(&(!(objectClass=gosaUserTemplate))(objectClass=gosaMailAccount)(|(mail=$address)"."(gosaMailAlternateAddress=$address)))", array("uid"));
+ $ldap->search ("(&(!(objectClass=gosaUserTemplate))(objectClass=gosaMailAccount)(|(mail=$address)".
+ "(alias=$address)(gosaMailAlternateAddress=$address)))", array("uid"));
if ($ldap->count() > 0){
$attrs= $ldap->fetch ();
reset ($this->gosaMailAlternateAddress);
return ("");
}else{
- msg_dialog::display(_("Permission error"), _("You have no permission to modify these addresses."), ERROR_DIALOG);
+ msg_dialog::display(_("Permission error"), _("You have no permission to modify these addresses!"), ERROR_DIALOG);
}
}
$this->gosaMailAlternateAddress= array_remove_entries ($addresses,$this->gosaMailAlternateAddress);
$this->is_modified= TRUE;
}else{
- msg_dialog::display(_("Permission error"), _("You have no permission to modify these addresses."), ERROR_DIALOG);
+ msg_dialog::display(_("Permission error"), _("You have no permission to modify these addresses!"), ERROR_DIALOG);
}
}
function allow_remove()
{
- if (isset($this->config->current['MAILMETHOD'])){
- $method= $this->config->current['MAILMETHOD'];
+ if ($this->config->get_cfg_value("mailmethod") != ""){
+ $method= $this->config->get_cfg_value("mailmethod");
if(preg_match("/olab/i",$method)){
$ldap = $this->config->get_ldap_link();
$ldap->cd($this->config->current['BASE']);
if($ldap->count()){
$attrs = $ldap->fetch();
if(isset($attrs['kolabDeleteFlag'])){
- return(_("Waiting for kolab to remove mail properties."));
+ return(_("Waiting for kolab to remove mail properties..."));
}elseif(in_array("gosaMailAccount",$attrs['objectClass'])){
- return(_("Please remove the mail account first, to allow kolab to call its remove methods."));
+ return(_("Please remove the mail settings first to allow kolab to call its remove methods!"));
}
}
}
$message = plugin::multiple_check();
if(empty($this->gosaMailServer) && in_array("gosaMailServer",$this->multi_boxes)){
- $message[]= _("There is no valid mailserver specified, please add one in the system setup.");
+ $message[]= msgPool::noserver(_("Mail"));
}
/* Check quota */
if ($this->gosaMailQuota != '' && in_array("gosaMailQuota",$this->multi_boxes)){
if (!is_numeric($this->gosaMailQuota)) {
- $message[]= _("Value in 'Quota size' is not valid.");
+ $message[]= msgPool::invalid(_("Quota size"),$this->gosaMailQuota,"/^[0-9]*/");
} else {
$this->gosaMailQuota= (int) $this->gosaMailQuota;
}
/* Check rejectsize for integer */
if ($this->gosaMailMaxSize != '' && in_array("gosaMailMaxSize",$this->multi_boxes)){
if (!is_numeric($this->gosaMailMaxSize)){
- $message[]= _("Please specify a vaild mail size for mails to be rejected.");
+ $message[]= msgPool::invalid(_("Mail reject size"),$this->gosaMailMaxSize,"/^[0-9]*/");
} else {
$this->gosaMailMaxSize= (int) $this->gosaMailMaxSize;
}
}
if(empty($this->gosaSpamMailbox) && in_array("gosaSpamMailbox",$this->multi_boxes)){
- $message[]= _("You specified Spam settings, but there is no Folder specified.");
+ $message[]= msgPool::required(_("Spam folder"));
}
if ( in_array("use_vacation",$this->multi_boxes) &&
preg_match('/V/', $this->gosaMailDeliveryMode) && $this->gosaVacationStart > $this->gosaVacationStop){
- $message[]= _("Time interval to show vacation message is not valid.");
+ $message[]= msgPool::invalid(_("Vacation interval"));
}
return($message);
}