Thread: SF.net SVN: postfixadmin:[872] trunk (Page 4)
Brought to you by:
christian_boltz,
gingerdog
From: <chr...@us...> - 2010-09-30 20:43:58
|
Revision: 872 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=872&view=rev Author: christian_boltz Date: 2010-09-30 20:43:52 +0000 (Thu, 30 Sep 2010) Log Message: ----------- common.php: - store language in session variable (BTW: storing it only at login instead of calling check_language() on every page would save some processor cycles ;-) templates/header.tpl: - add class="lang-XY" (where XY is the language to the body tag. This allows language-specific CSS code: .lang-XY table {...} This commit implements the feature request from J.Kruis (jan-kruis) https://sourceforge.net/tracker/?func=detail&aid=2903088&group_id=191583&atid=937967 Modified Paths: -------------- trunk/common.php trunk/templates/header.tpl Modified: trunk/common.php =================================================================== --- trunk/common.php 2010-09-29 20:41:52 UTC (rev 871) +++ trunk/common.php 2010-09-30 20:43:52 UTC (rev 872) @@ -45,7 +45,8 @@ require_once("$incpath/languages/language.php"); require_once("$incpath/functions.inc.php"); -require_once("$incpath/languages/" . check_language () . ".lang"); +$_SESSION['lang'] = $language = check_language (); # TODO: storing the language only at login instead of calling check_language() on every page would save some processor cycles ;-) +require_once("$incpath/languages/" . $_SESSION['lang'] . ".lang"); /** * @param string $class Modified: trunk/templates/header.tpl =================================================================== --- trunk/templates/header.tpl 2010-09-29 20:41:52 UTC (rev 871) +++ trunk/templates/header.tpl 2010-09-30 20:43:52 UTC (rev 872) @@ -15,7 +15,7 @@ <link rel="stylesheet" type="text/css" href="{$CONF.theme_css}"/> <title>Postfix Admin - {$smarty.server.HTTP_HOST}</title> </head> - <body> + <body class="lang-{$smarty.session.lang}"> <div id="login_header"> <img id="login_header_logo" src="{$CONF.theme_logo}" alt="Logo"/> {if $CONF.show_header_text==='YES' && $CONF.header_text} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2010-12-25 14:26:06
|
Revision: 900 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=900&view=rev Author: christian_boltz Date: 2010-12-25 14:26:00 +0000 (Sat, 25 Dec 2010) Log Message: ----------- create-alias: support multiple alias targets - support multiple alias targets, patch by anexius@SF, http://sourceforge.net/projects/postfixadmin/forums/forum/676076/topic/4004442 The patch fixes https://sourceforge.net/tracker/?func=detail&aid=2706290&group_id=191583&atid=937964 additional small fixes: - replace spaces only at the start and end of a line, not in the middle of an (BTW: invalid) mail address - allow multiple error messages (separated by <br />) - prevent input data loss on validation errors Modified Paths: -------------- trunk/create-alias.php trunk/templates/create-alias.tpl Modified: trunk/create-alias.php =================================================================== --- trunk/create-alias.php 2010-12-25 14:16:11 UTC (rev 899) +++ trunk/create-alias.php 2010-12-25 14:26:00 UTC (rev 900) @@ -75,9 +75,10 @@ $fDomain = escape_string ($_POST['fDomain']); } - if(!preg_match ('/@/',$fGoto)) { - $fGoto = $fGoto . "@" . escape_string ($_POST['fDomain']); - } +# TODO: Doesn't work with multiple aliases - fix or discard... +# if(!preg_match ('/@/',$fGoto)) { +# $fGoto = $fGoto . "@" . escape_string ($_POST['fDomain']); +# } if(!(authentication_has_role('global-admin') || check_owner ($SESSID_USERNAME, $fDomain) )) @@ -105,7 +106,42 @@ $pCreate_alias_address_text = $PALANG['pCreate_alias_address_text_error1']; } - if (empty($fGoto) || !check_email ($fGoto)) { + // Begin check alias email + $goto = preg_replace ('/\\\r\\\n/', ',', $fGoto); + $goto = preg_replace ('/\r\n/', ',', $goto); + $goto = preg_replace ('/,[\s]+/i', ',', $goto); + $goto = preg_replace ('/[\s]+,/i', ',', $goto); + $goto = preg_replace ('/,*$|^,*/', '', $goto); + $goto = preg_replace ('/,,*/', ',', $goto); + + if (empty ($goto) && !authentication_has_role('global-admin')) { + $error = 1; + $tGoto = $_POST['fGoto']; + $tMessage = $PALANG['pEdit_alias_goto_text_error1']; + } + + $new_aliases = array(); + if ($error != 1) { + $new_aliases = explode(',', $goto); + } + $new_aliases = array_unique($new_aliases); + + foreach($new_aliases as $address) { + if (in_array($address, $CONF['default_aliases'])) continue; + if (empty($address)) continue; # TODO: should never happen - remove after 2.2 release + if (!check_email($address)) { + $error = 1; + $tGoto = $goto; + if (!empty($tMessage)) $tMessage .= "<br />"; + $tMessage .= $PALANG['pEdit_alias_goto_text_error2'] . "$address</span>"; + } + } + + $goto = implode(',', $new_aliases); + $fGoto = escape_string($goto); + // End check alias mail + + if (empty($fGoto)) { $error = 1; $tAddress = escape_string ($_POST['fAddress']); $tGoto = $fGoto; @@ -150,8 +186,12 @@ $tDomain = $fDomain; $tMessage = $PALANG['pCreate_alias_result_success'] . "<br />($fAddress -> $fGoto)<br />\n"; } + } else { # on error + $tAddress = htmlentities($_POST['fAddress']); + $tGoto = htmlentities($_POST['fGoto']); + $tDomain = htmlentities($_POST['fDomain']); + } } -} $smarty->assign ('tAddress', $tAddress); $smarty->assign ('select_options', select_options ($list_domains, array ($tDomain)), false); Modified: trunk/templates/create-alias.tpl =================================================================== --- trunk/templates/create-alias.tpl 2010-12-25 14:16:11 UTC (rev 899) +++ trunk/templates/create-alias.tpl 2010-12-25 14:26:00 UTC (rev 900) @@ -15,8 +15,7 @@ </tr> <tr> <td>{$PALANG.pCreate_alias_goto}:</td> - <td><input class="flat" type="text" name="fGoto" value="{$tGoto}" /></td> - <td>{$pCreate_alias_goto_text}</td> + <td colspan="2"><textarea class="flat" rows="10" cols="60" name="fGoto">{$tGoto}</textarea></td> </tr> <tr> <td>{$PALANG.pCreate_alias_active}:</td> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2010-12-26 00:20:18
|
Revision: 912 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=912&view=rev Author: christian_boltz Date: 2010-12-26 00:20:12 +0000 (Sun, 26 Dec 2010) Log Message: ----------- model/AliasHandler.php: changed behaviour of get() - get() now returns only true (success) / false (failure) instead of the alias list (result of partly merging in scripts/models-ext/AliasHandler.php) - new method result() to get the real result (alias targets) - added TODO on if(sizeof($addresses) == 0) - this should never happen model/VacationHandler.php: - updated for new AliasHandler bevaviour xmlrpc.php: - updated for new AliasHandler bevaviour - switched from obsolete change_pass to change_pw method Modified Paths: -------------- trunk/model/AliasHandler.php trunk/model/VacationHandler.php trunk/xmlrpc.php Modified: trunk/model/AliasHandler.php =================================================================== --- trunk/model/AliasHandler.php 2010-12-26 00:00:24 UTC (rev 911) +++ trunk/model/AliasHandler.php 2010-12-26 00:20:12 UTC (rev 912) @@ -45,9 +45,10 @@ } } $list = $new_list; - return $list; + $this->return = $list; + return true; } - return array(); + return false; } /** @@ -141,7 +142,8 @@ $goto = escape_string(implode(',', $addresses)); $table_alias = table_by_key('alias'); if(sizeof($addresses) == 0) { - $sql = "DELETE FROM $table_alias WHERE address = '$username'"; + $sql = "DELETE FROM $table_alias WHERE address = '$username'"; # TODO: should never happen + error_log("Alias set to empty / deleted: $username"); # TODO: more/better error handling - maybe just return false? } if($this->hasAliasRecord() == false) { $true = db_get_boolean(True); @@ -184,4 +186,13 @@ } return false; } -} + + /** + * @return return value of previously called method + */ + public function result() { + return $this->return; + } + } + +/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ Modified: trunk/model/VacationHandler.php =================================================================== --- trunk/model/VacationHandler.php 2010-12-26 00:00:24 UTC (rev 911) +++ trunk/model/VacationHandler.php 2010-12-26 00:20:12 UTC (rev 912) @@ -13,7 +13,8 @@ */ function remove() { $ah = new AliasHandler($this->username); - $aliases = $ah->get(true); // fetch all. + $result = $ah->get(true); // fetch all # TODO check $result, error handling + $aliases = $ah->result; $new_aliases = array(); $table_vacation = table_by_key('vacation'); $table_vacation_notification = table_by_key('vacation_notification'); @@ -130,3 +131,4 @@ return $vacation_goto; } } +/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ Modified: trunk/xmlrpc.php =================================================================== --- trunk/xmlrpc.php 2010-12-26 00:00:24 UTC (rev 911) +++ trunk/xmlrpc.php 2010-12-26 00:20:12 UTC (rev 912) @@ -74,7 +74,7 @@ */ public function changePassword($old_password, $new_password) { $uh = new UserHandler($_SESSION['username']); - return $uh->change_pass($old_password, $new_password); + return $uh->change_pw($new_password, $old_password); } /** @@ -141,7 +141,8 @@ public function get() { $ah = new AliasHandler($_SESSION['username']); /* I see no point in returning special addresses to the user. */ - return $ah->get(false); + $ah->get(false); + return $ah->result; } /** @@ -167,3 +168,4 @@ return $ah->hasStoreAndForward(); } } +/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2010-12-26 20:35:06
|
Revision: 916 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=916&view=rev Author: christian_boltz Date: 2010-12-26 20:35:00 +0000 (Sun, 26 Dec 2010) Log Message: ----------- model/UserHandler.php: fix verifying old password in change_pw() - if you want to verify the old password, you should compare it against the OLD and not the NEW password ;-) - fix database calls In other words: changing the password in users/password.php works again ;-) users/password.php: - switch from obsolete change_pass() to change_pw() Modified Paths: -------------- trunk/model/UserHandler.php trunk/users/password.php Modified: trunk/model/UserHandler.php =================================================================== --- trunk/model/UserHandler.php 2010-12-26 19:48:10 UTC (rev 915) +++ trunk/model/UserHandler.php 2010-12-26 20:35:00 UTC (rev 916) @@ -38,10 +38,11 @@ if ($match == true) { $active = db_get_boolean(True); - $result = db_query("SELECT * FROM $table_mailbox WHERE username='$username' AND active='$active'"); - $result = $result['result']; - if ($new_db_password != $result['password']) { # TODO: comparison might fail because pacrypt() didn't know the salt above (separate pacrypt call?) - db_log ('CONSOLE', $domain, 'edit_password', "FAILURE: " . $this->username); # TODO: replace hardcoded CONSOLE - class is used by XMLRPC and users/ + $result = db_query("SELECT password FROM $table_mailbox WHERE username='$username' AND active='$active'"); + $result = db_assoc($result['result']); + + if (pacrypt($old_password, $result['password']) != $result['password']) { + db_log ('CONSOLE', $domain, 'edit_password', "MATCH FAILURE: " . $this->username); # TODO: replace hardcoded CONSOLE - class is used by XMLRPC and users/ $this->errormsg[] = 'Passwords do not match'; # TODO: make translatable return false; } @@ -50,7 +51,7 @@ $set = array( 'password' => $new_db_password ); - + $result = db_update('mailbox', 'username=\''.$username.'\'', $set ); if ($result != 1) { Modified: trunk/users/password.php =================================================================== --- trunk/users/password.php 2010-12-26 19:48:10 UTC (rev 915) +++ trunk/users/password.php 2010-12-26 20:35:00 UTC (rev 916) @@ -61,7 +61,7 @@ if ($error == 0) { $uh = new UserHandler($username); - if($uh->change_pass($fPassword_current, $fPassword)) { + if($uh->change_pw($fPassword, $fPassword_current) ) { flash_info($PALANG['pPassword_result_success']); header("Location: main.php"); exit(0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <va...@us...> - 2010-12-28 23:49:21
|
Revision: 920 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=920&view=rev Author: valkum Date: 2010-12-28 23:49:14 +0000 (Tue, 28 Dec 2010) Log Message: ----------- some todos done or partially done -added alias delete function -remove silly password function in domain and alias -changed some $this->err to $this->error -error ends with stop(1) which returns 1 in *unix shells Modified Paths: -------------- trunk/model/AliasHandler.php trunk/scripts/shells/alias.php trunk/scripts/shells/domain.php trunk/scripts/shells/shell.php trunk/scripts/shells/user.php Modified: trunk/model/AliasHandler.php =================================================================== --- trunk/model/AliasHandler.php 2010-12-27 15:44:22 UTC (rev 919) +++ trunk/model/AliasHandler.php 2010-12-28 23:49:14 UTC (rev 920) @@ -8,10 +8,6 @@ private $username = null; -# TODO: implement a "delete" method. Pseudocode: -# - check if alias exists -# - check if mailbox exists - if yes, error out (never delete the alias of a mailbox!) -# - (if still here) delete alias /** * @param string $username @@ -210,8 +206,31 @@ } return false; } + + # TODO: implement a "delete" method. Pseudocode: +# - check if alias exists +# - check if mailbox exists - if yes, error out (never delete the alias of a mailbox!) +# - (if still here) delete alias +#HERE IT IS! /** + * @param alias address + * @return true on success false on failure + */ + public function delete($address){ + $E_address = escape_string($address); + $table_alias = table_by_key('alias'); + if( $this->get($address) && !is_mailbox_alias($address) ) { + sql = "DELETE FROM $table_alias" WHERE address = '$E_address'; + $result = db_query($sql); + if( $result['rows'] == 1 ) { + return true; + } + return false; + } + } + + /** * @return return value of previously called method */ public function result() { Modified: trunk/scripts/shells/alias.php =================================================================== --- trunk/scripts/shells/alias.php 2010-12-27 15:44:22 UTC (rev 919) +++ trunk/scripts/shells/alias.php 2010-12-28 23:49:14 UTC (rev 920) @@ -107,7 +107,7 @@ $return = $handler->add($goto); if($return == 1) { - $this->err(join("\n", $handler->errormsg)); + $this->error("Error:", join("\n", $handler->errormsg)); } else { $this->out(""); $this->out("Alias ( $address -> $goto ) generated."); @@ -132,6 +132,7 @@ } } +#TODO: implement class UpdateTask extends Shell { /** * Execution method always used for tasks @@ -209,7 +210,7 @@ $create = $this->in($question, array('y','n')); - $create == 'y' ? $random = true : $random = false; + $create == 'y' ? $create = true : $create = false; if ($create) $this->__handle($address); @@ -227,13 +228,15 @@ ### TODO: don't use UserHandler, instead add delete function to AliasHandler (if not already there) ### using UserHandler for deleting aliases is like taking a sledgehammer to crack a nut ### (and will probably cause some error messages that I added today ;-) - $handler = new UserHandler($address); + +### Implemented check it please! + $handler = new AliasHandler($address); $status = $handler->delete(); if ($status == true) { $this->out("Mailbox of '$address' was deleted."); } else { - $this->err(join("\n", $handler->errormsg)); + $this->error("Error:", join("\n", $handler->errormsg)); } return; @@ -256,128 +259,7 @@ } } -class PasswordTask extends Shell { -/** - * Execution method always used for tasks - * - * @access public - */ - function execute() { - if (empty($this->args)) { - $this->__interactive(); - } - - if (!empty($this->args[0])) { - - $address = $this->args[0]; - - if (isset($this->params['g']) && $this->params['g'] == true ) { - $random = true; - $password = NULL; - } elseif (isset($this->args[1]) && length($this->args[1]) > 8) { - $password = $this->args[1]; - } else { - - $this->Dispatch->stderr('Missing <newpw> or -g. Falling back to interactive mode.'); - $this->__interactive(); - } - $this->__handle($address, $password, $random); - - - } - } -/** - * Interactive - * - * @access private - */ - function __interactive() { - - while(0==0) { - $question = "Which address' password do you want to change?"; - $address = $this->in($question); - - if(preg_match("/^((?:(?:(?:[a-zA-Z0-9][\.\-\+_]?)*)[a-zA-Z0-9])+)\@((?:(?:(?:[a-zA-Z0-9][\.\-_]?){0,62})[a-zA-Z0-9])+)\.([a-zA-Z0-9]{2,6})$/", $address) == 1) - break; - - $this->err("Invalid emailaddress"); - - } - - - $question2[] = "Do you want to change the password?"; - $question2[] = "Are you really sure?"; - $sure = $this->in(join("\n", $question2), array('y','n')); - - - if ($sure == 'n' ) { - $this->out('You\'re not sure.'); - $this->_stop(); - } - - $question = "Do you want to generate a random password?"; - $random = $this->in($question, array('y','n')); - - $random == 'y' ? $random = true : $random = false; - - - $password = NULL; - if ($random == false) { - $question = "Pleas enter the new password?"; - $password = $this->in($question); - } - var_dump($random); - $this->__handle($address, $password, $random); - - - - - } - /** - * Interactive - * - * @access private - */ - function __handle($address, $password = NULL, $random = false) { -# TODO: Does PasswordTask really make sense for Aliases? Probably not... - if ($random == true) { - $password = generate_password(); - } - if ($password != NULL) { - $handler = new UserHandler($address); - - if ($handler->change_pw($password, NULL, false) == 1){ - $this->error("Change Password",join("\n", $handler->errormsg)); - } - } - - $this->out(""); - $this->out("Password updated."); - $this->hr(); - $this->out(sprintf('The Mail address is %20s', $address)); - $this->out(sprintf('The new password is %20s',$password)); - $this->hr(); - - return ; - } -/** - * Displays help contents - * - * @access public - */ - function help() { - $this->out(""); - $this->hr(); - $this->out("Usage: postfixadmin-cli user password <address> [<newpw>] [-g]"); - $this->hr(); - $this->out('Commands:'); - $this->out("\n\tpassword\n\t\tchanges the password in interactive mode."); - $this->out("\n\tpassword <address> [<newpw>] [-g]\n\t\tchanges the password to <newpw> or if -g genereate a new pw for <address>"); - $this->out(""); - $this->_stop(); - } - -} +### PasswordTask was a rest of Copy Paste :D Deleted. Check it! class ViewTask extends Shell { /** * Execution method always used for tasks @@ -421,7 +303,7 @@ $handler = new AliasHandler($address); $status = $handler->get(); # TODO: set the "all" flag? if ( ! $status) { - # TODO: error message + $this->error("Error: Not Found", "The requested alias was not found!"); } else { $result = $handler->return; @@ -431,7 +313,18 @@ $this->out("\t -> ".$goto); } # TODO: display "deliver to mailbox" + ##NEED fix in is_mailbox_alias because user is not set correctly in this scenario! + /** + if( $handler->is_mailbox_alias($address) ) + $this->out("A mailbox was set for this alias!\n"); + } + */ # TODO: display if vacation is on? + /** + if( $handler->is_vacation_address($address) ) { + $this->out("This alias is a vacation address!"); + } + */ } return; Modified: trunk/scripts/shells/domain.php =================================================================== --- trunk/scripts/shells/domain.php 2010-12-27 15:44:22 UTC (rev 919) +++ trunk/scripts/shells/domain.php 2010-12-28 23:49:14 UTC (rev 920) @@ -139,8 +139,8 @@ $handler = new DomainHandler('CONSOLE'); $return = $handler->add($domain, $desc, $a, $m, $t, $q, $default, $backup); - if($return == 1) { - $this->err(join("\n", $handler->errormsg)); + if(!$return) { + $this->error("Error:", join("\n", $handler->errormsg)); } else { $this->out(""); $this->out("Domain ( $domain ) generated."); @@ -264,7 +264,7 @@ $this->out("Mailbox of '$address' was deleted."); } else { - $this->err(join("\n", $handler->errormsg)); + $this->error("Error:", join("\n", $handler->errormsg)); } return; @@ -287,129 +287,7 @@ } } -class PasswordTask extends Shell { -/** - * Execution method always used for tasks - * - * @access public - */ - function execute() { - if (empty($this->args)) { - $this->help(); - // $this->__interactive(); - } - - if (!empty($this->args[0])) { - $this->help(); - //$address = $this->args[0]; - - //if (isset($this->params['g']) && $this->params['g'] == true ) { - // $random = true; - // $password = NULL; - //} elseif (isset($this->args[1]) && length($this->args[1]) > 8) { - // $password = $this->args[1]; - //} else { - - // $this->Dispatch->stderr('Missing <newpw> or -g. Falling back to interactive mode.'); - // $this->__interactive(); - //} - //$this->__handle($address, $password, $random); - - - } - } -/** - * Interactive - * - * @access private - */ - function __interactive() { - - while(0==0) { - $question = "Which address' password do you want to change?"; - $address = $this->in($question); - - if(preg_match("/^((?:(?:(?:[a-zA-Z0-9][\.\-\+_]?)*)[a-zA-Z0-9])+)\@((?:(?:(?:[a-zA-Z0-9][\.\-_]?){0,62})[a-zA-Z0-9])+)\.([a-zA-Z0-9]{2,6})$/", $address) == 1) - break; - - $this->err("Invalid emailaddress"); - - } - - - $question2[] = "Do you want to change the password?"; - $question2[] = "Are you really sure?"; - $sure = $this->in(join("\n", $question2), array('y','n')); - - - if ($sure == 'n' ) { - $this->out('You\'re not sure.'); - $this->_stop(); - } - - $question = "Do you want to generate a random password?"; - $random = $this->in($question, array('y','n')); - - $random == 'y' ? $random = true : $random = false; - - - $password = NULL; - if ($random == false) { - $question = "Pleas enter the new password?"; - $password = $this->in($question); - } - var_dump($random); - $this->__handle($address, $password, $random); - - - - - } - /** - * Interactive - * - * @access private - */ - function __handle($address, $password = NULL, $random = false) { - - if ($random == true) { - $password = generate_password(); - } - if ($password != NULL) { - $handler = new UserHandler($address); - - if ($handler->change_pw($password, NULL, false) == 1){ - $this->error("Change Password",join("\n", $handler->errormsg)); - } - } - - $this->out(""); - $this->out("Password updated."); - $this->hr(); - $this->out(sprintf('The Mail address is %20s', $address)); - $this->out(sprintf('The new password is %20s',$password)); - $this->hr(); - - return ; - } -/** - * Displays help contents - * - * @access public - */ - function help() { - $this->out("NOT implemented yet."); - $this->hr(); - $this->out("Usage: postfixadmin-cli user password <address> [<newpw>] [-g]"); - $this->hr(); - $this->out('Commands:'); - $this->out("\n\tpassword\n\t\tchanges the password in interactive mode."); - $this->out("\n\tpassword <address> [<newpw>] [-g]\n\t\tchanges the password to <newpw> or if -g genereate a new pw for <address>"); - $this->out(""); - $this->_stop(); - } - -} +##Deleted PasswordTask because its silly in domain shell class ViewTask extends Shell { /** * Execution method always used for tasks @@ -453,7 +331,9 @@ $handler = new DomainHandler('CONSOLE'); $status = $handler->view($domain); - if ($status == 0) { + if (!$status) { + $this->error("Error:",join("\n", $handler->errormsg)); + } else { $result = $handler->return; $this->out("Domain: \t".$result['domain']); $this->out("Description: \t".$result['description']); @@ -466,9 +346,8 @@ $this->out("Modified: \t".$result['modified']); $this->out("Created: \t".$result['created']); - + return ; } - return; } /** Modified: trunk/scripts/shells/shell.php =================================================================== --- trunk/scripts/shells/shell.php 2010-12-27 15:44:22 UTC (rev 919) +++ trunk/scripts/shells/shell.php 2010-12-28 23:49:14 UTC (rev 920) @@ -327,7 +327,7 @@ $out .= "$msg\n"; $out .= "\n"; $this->err($out); - $this->_stop(); + $this->_stop(1); } /** * Outputs usage text on the standard output. Implement it in subclasses. @@ -341,7 +341,7 @@ $this->Dispatch->help(); } } - /** + /** * Stop execution of the current script * * @param $status see http://php.net/exit for values Modified: trunk/scripts/shells/user.php =================================================================== --- trunk/scripts/shells/user.php 2010-12-27 15:44:22 UTC (rev 919) +++ trunk/scripts/shells/user.php 2010-12-28 23:49:14 UTC (rev 920) @@ -57,6 +57,11 @@ * * @access public */ + + # Find one function that matches all executes in shell childclasses. + # Eventually getopts like call in __handle?? + + function execute() { if (empty($this->args)) { $this->__interactive(); @@ -143,8 +148,10 @@ } } else { if( $return == false ) { - $this->err($handler->errormsg); - $this->_stop(1); +### When $this->error is used, $this->_stop is useless. +### Changed $this->error to stop with level 1. +### Eventually param q check in $this->error is better!! !Important! + $this->error("Error:", $handler->errormsg); } else { $this->out(""); if ($name != '') @@ -270,7 +277,8 @@ $handler = new UserHandler($address); $status = $handler->delete(); if ( ! $status ) { - $this->err(join("\n", $handler->errormsg)); + $this->error("Error:", join("\n", $handler->errormsg)); + } else { $this->out("Mailbox of '$address' was deleted."); } @@ -460,9 +468,8 @@ $handler = new UserHandler($address); if ( ! $handler->view() ) { - return ; - # TODO: display error message "not found" - } + $this->error("Not Found!", "The user you have searched could not be found."); + } # TODO: offer alternative output formats (based on parameter) # TODO: whitespace fix - 8 lines below $result = $handler->return; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2010-12-30 22:35:05
|
Revision: 925 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=925&view=rev Author: christian_boltz Date: 2010-12-30 22:34:59 +0000 (Thu, 30 Dec 2010) Log Message: ----------- moved scripts/models-ext/* to model/ - moved scripts/models-ext/DomainHandler.php to model/ - deleted redirect scripts in scripts/models-ext/ (UserHandler.php, AliasHandler.php) - changed scripts/common.php to include the files from ../model/ Modified Paths: -------------- trunk/scripts/common.php Added Paths: ----------- trunk/model/DomainHandler.php Removed Paths: ------------- trunk/scripts/models-ext/AliasHandler.php trunk/scripts/models-ext/DomainHandler.php trunk/scripts/models-ext/UserHandler.php Copied: trunk/model/DomainHandler.php (from rev 922, trunk/scripts/models-ext/DomainHandler.php) =================================================================== --- trunk/model/DomainHandler.php (rev 0) +++ trunk/model/DomainHandler.php 2010-12-30 22:34:59 UTC (rev 925) @@ -0,0 +1,90 @@ +<?php + +/** + * Handlers User level alias actions - e.g. add alias, get aliases, update etc. + */ +class DomainHandler { + + private $username = null; + + + public $errormsg = array(); + /** + * @param string $username + */ + public function __construct($username) { + $this->username = $username; + } + + public function getTransports() { + return Config::read('transport_options'); + } + + public function getTransport($id) { + $transports = Config::read('transport_options'); + return $transports[$id-1]; + } + + public function add($domain, $desc, $a, $m, $t, $q, $default, $backup){ + + ($backup == true) ? $backup = db_get_boolean(true) : $backup = db_get_boolean(false); + + $arr = array( + 'domain' => $domain, + 'description' => $desc, + 'aliases' => $a, + 'mailboxes' => $m, + 'maxquota' => $q, + 'transport' => $this->getTransport($t), + 'backupmx' => $backup, + ); + + $result = db_insert('domain', $arr, array('created', 'modified') ); + if ($result != 1) + { + $this->errormsg[] = Lang::read('pAdminCreate_domain_result_error') . "\n($domain)\n"; + return 1; + } + else + { + if ($default) + { + foreach (Config::read('default_aliases') as $address=>$goto) + { + $address = $address . "@" . $domain; + $arr = array( + 'address' => $address, + 'goto' => $goto, + 'domain' => $domain, + ); + $result = db_insert ('alias', $arr, array('created', 'modified') ); + } + } + $tMessage = Lang::read('pAdminCreate_domain_result_success') . "<br />($domain)</br />"; + } + if (!domain_postcreation($domain)) + { + $tMessage = Lang::read('pAdminCreate_domain_error'); + } + db_log($this->username, $domain, 'create_domain', ""); + return 0; + } + + public function view ($domain) { + global $config; + + + + $table_domain = table_by_key('domain'); + + $result = db_query("SELECT domain, description, aliases, mailboxes, maxquota, quota, transport, backupmx, DATE_FORMAT(created, '%d.%m.%y') AS created, DATE_FORMAT(modified, '%d.%m.%y') AS modified, active FROM $table_domain WHERE domain='$domain'"); + if ($result['rows'] != 0) { + $this->return = db_array($result['result']); + return 0; + } + $this->errormsg = $result['error']; + return 1; + } +} + +/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ Modified: trunk/scripts/common.php =================================================================== --- trunk/scripts/common.php 2010-12-30 22:26:17 UTC (rev 924) +++ trunk/scripts/common.php 2010-12-30 22:34:59 UTC (rev 925) @@ -49,7 +49,7 @@ * __autoload implementation, for use with spl_autoload_register(). */ function postfixadmin_autoload2($class) { - $PATH = CORE_INCLUDE_PATH.'/models-ext/' . $class . '.php'; + $PATH = CORE_INCLUDE_PATH.'/../model/' . $class . '.php'; if(is_file($PATH)) { require_once($PATH); Deleted: trunk/scripts/models-ext/AliasHandler.php =================================================================== --- trunk/scripts/models-ext/AliasHandler.php 2010-12-30 22:26:17 UTC (rev 924) +++ trunk/scripts/models-ext/AliasHandler.php 2010-12-30 22:34:59 UTC (rev 925) @@ -1,2 +0,0 @@ -<?php -require('../model/AliasHandler.php'); Deleted: trunk/scripts/models-ext/DomainHandler.php =================================================================== --- trunk/scripts/models-ext/DomainHandler.php 2010-12-30 22:26:17 UTC (rev 924) +++ trunk/scripts/models-ext/DomainHandler.php 2010-12-30 22:34:59 UTC (rev 925) @@ -1,90 +0,0 @@ -<?php - -/** - * Handlers User level alias actions - e.g. add alias, get aliases, update etc. - */ -class DomainHandler { - - private $username = null; - - - public $errormsg = array(); - /** - * @param string $username - */ - public function __construct($username) { - $this->username = $username; - } - - public function getTransports() { - return Config::read('transport_options'); - } - - public function getTransport($id) { - $transports = Config::read('transport_options'); - return $transports[$id-1]; - } - - public function add($domain, $desc, $a, $m, $t, $q, $default, $backup){ - - ($backup == true) ? $backup = db_get_boolean(true) : $backup = db_get_boolean(false); - - $arr = array( - 'domain' => $domain, - 'description' => $desc, - 'aliases' => $a, - 'mailboxes' => $m, - 'maxquota' => $q, - 'transport' => $this->getTransport($t), - 'backupmx' => $backup, - ); - - $result = db_insert('domain', $arr, array('created', 'modified') ); - if ($result != 1) - { - $this->errormsg[] = Lang::read('pAdminCreate_domain_result_error') . "\n($domain)\n"; - return 1; - } - else - { - if ($default) - { - foreach (Config::read('default_aliases') as $address=>$goto) - { - $address = $address . "@" . $domain; - $arr = array( - 'address' => $address, - 'goto' => $goto, - 'domain' => $domain, - ); - $result = db_insert ('alias', $arr, array('created', 'modified') ); - } - } - $tMessage = Lang::read('pAdminCreate_domain_result_success') . "<br />($domain)</br />"; - } - if (!domain_postcreation($domain)) - { - $tMessage = Lang::read('pAdminCreate_domain_error'); - } - db_log($this->username, $domain, 'create_domain', ""); - return 0; - } - - public function view ($domain) { - global $config; - - - - $table_domain = table_by_key('domain'); - - $result = db_query("SELECT domain, description, aliases, mailboxes, maxquota, quota, transport, backupmx, DATE_FORMAT(created, '%d.%m.%y') AS created, DATE_FORMAT(modified, '%d.%m.%y') AS modified, active FROM $table_domain WHERE domain='$domain'"); - if ($result['rows'] != 0) { - $this->return = db_array($result['result']); - return 0; - } - $this->errormsg = $result['error']; - return 1; - } -} - -/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ Deleted: trunk/scripts/models-ext/UserHandler.php =================================================================== --- trunk/scripts/models-ext/UserHandler.php 2010-12-30 22:26:17 UTC (rev 924) +++ trunk/scripts/models-ext/UserHandler.php 2010-12-30 22:34:59 UTC (rev 925) @@ -1,2 +0,0 @@ -<?php -require('../model/UserHandler.php'); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2010-12-31 19:23:38
|
Revision: 930 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=930&view=rev Author: christian_boltz Date: 2010-12-31 19:23:31 +0000 (Fri, 31 Dec 2010) Log Message: ----------- (mostly) make CLI "alias delete" working shells/alias.php: - execute still called help() instead of __handle() model/AliasHandler.php - delete(): - remove useless $address parameter from delete() (we have $this->username) - added error messages - fixed variable names for db_log Reason for the "mostly": The $this->is_mailbox_alias() in delete() always returns true and therefore forbids deletion. Modified Paths: -------------- trunk/model/AliasHandler.php trunk/scripts/shells/alias.php Modified: trunk/model/AliasHandler.php =================================================================== --- trunk/model/AliasHandler.php 2010-12-31 17:39:22 UTC (rev 929) +++ trunk/model/AliasHandler.php 2010-12-31 19:23:31 UTC (rev 930) @@ -207,21 +207,22 @@ * @param alias address * @return true on success false on failure */ - public function delete($address){ -# TODO: use $this->username instead of $address function parameter? - if( ! $this->get($address) ) { - # TODO: error message "no such alias" + public function delete(){ + if( ! $this->get($this->username) ) { + $this->errormsg[] = 'An alias with that address does not exist.'; # TODO: make translatable return false; } - if (is_mailbox_alias($address) ) { - # TODO: error message "alias belongs to a mailbox and can't be deleted" + if ($this->is_mailbox_alias($this->username) ) { ### FIXME use different check, this one always returns true :-( + ### FIXME best solution might be to lookup the mailbox table (via UserHandler) + $this->errormsg[] = 'This alias belongs to a mailbox and can\'t be deleted.'; # TODO: make translatable return false; } - $result = db_delete('alias', 'address', $address); + $result = db_delete('alias', 'address', $this->username); if( $result == 1 ) { - db_log ($SESSID_USERNAME, $fDomain, 'delete_alias', $fDelete); + list(/*NULL*/,$domain) = explode('@', $this->username); + db_log ('CLI', $domain, 'delete_alias', $this->username); # TODO: replace hardcoded CLI return true; } } Modified: trunk/scripts/shells/alias.php =================================================================== --- trunk/scripts/shells/alias.php 2010-12-31 17:39:22 UTC (rev 929) +++ trunk/scripts/shells/alias.php 2010-12-31 19:23:31 UTC (rev 930) @@ -189,10 +189,7 @@ } if (!empty($this->args[0])) { - $this->help(); - // $output = $this->__handle($this->args[0]); - // $this->out($output); - + $this->__handle($this->args[0]); } } /** @@ -259,7 +256,6 @@ } } -### PasswordTask was a rest of Copy Paste :D Deleted. Check it! class ViewTask extends Shell { /** * Execution method always used for tasks This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2010-12-31 20:13:59
|
Revision: 931 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=931&view=rev Author: christian_boltz Date: 2010-12-31 20:13:53 +0000 (Fri, 31 Dec 2010) Log Message: ----------- changed db_update parameters for the most common usecase "WHERE col=value" - column and value are separate parameters now functions.inc.php: - changed function db_update() parameters - column name and value for the WHERE condition are now two separate parameters. This means we don't need to escape_string(), add quotes etc. for most UPDATE queries. Example call: db_update('alias', 'address', $this->username, $values_array) - the previous db_update() is now called db_update_q() model/UserHandler.php: - changed db_update call to the new parameters - removed now unused variables - renamed $username to $E_username - call pacrypt directly when setting the $set array, no need for $new_db_password model/AliasHandler.php - changed db_update call to the new parameters edit-mailbox.php - switched to db_update_q() Modified Paths: -------------- trunk/edit-mailbox.php trunk/functions.inc.php trunk/model/AliasHandler.php trunk/model/UserHandler.php Modified: trunk/edit-mailbox.php =================================================================== --- trunk/edit-mailbox.php 2010-12-31 19:23:31 UTC (rev 930) +++ trunk/edit-mailbox.php 2010-12-31 20:13:53 UTC (rev 931) @@ -154,7 +154,7 @@ if(preg_match('/^(.*)@/', $fUsername, $matches)) { $formvars['local_part'] = $matches[1]; } - $result = db_update('mailbox', "username='$fUsername' AND domain='$fDomain'", $formvars, array('modified')); + $result = db_update_q('mailbox', "username='$fUsername' AND domain='$fDomain'", $formvars, array('modified')); # TODO: check if we need the AND domain=... clause, if not, switch to db_update() $maildir = $user_details['maildir']; if ($result != 1 || !mailbox_postedit($fUsername,$fDomain,$maildir, $quota)) { $tMessage = $PALANG['pEdit_mailbox_result_error']; Modified: trunk/functions.inc.php =================================================================== --- trunk/functions.inc.php 2010-12-31 19:23:31 UTC (rev 930) +++ trunk/functions.inc.php 2010-12-31 20:13:53 UTC (rev 931) @@ -1728,15 +1728,30 @@ /** * db_update * Action: Updates a specified table - * Call: db_update (string table, string where, array values [, array timestamp]) + * Call: db_update (string table, string where_col, string where_value, array values [, array timestamp]) * @param String - table name - * @param String - WHERE condition + * @param String - column of WHERE condition + * @param String - value of WHERE condition * @param array - key/value map of data to insert into the table. * @param array (optional) - array of fields to set to now() - default: array('modified') * @return int - number of updated rows */ -function db_update ($table, $where, $values, $timestamp = array('modified') ) -{ +function db_update ($table, $where_col, $where_value, $values, $timestamp = array('modified') ) { + $where = $where_col . " = '" . escape_string($where_value) . "'"; + return db_update_q ($table, $where, $values, $timestamp = array('modified') ); +} + +/** + * db_update_q + * Action: Updates a specified table + * Call: db_update_q (string table, string where, array values [, array timestamp]) + * @param String - table name + * @param String - WHERE condition (as SQL) + * @param array - key/value map of data to insert into the table. + * @param array (optional) - array of fields to set to now() - default: array('modified') + * @return int - number of updated rows + */ +function db_update_q ($table, $where, $values, $timestamp = array('modified') ) { $table = table_by_key ($table); foreach(array_keys($values) as $key) { Modified: trunk/model/AliasHandler.php =================================================================== --- trunk/model/AliasHandler.php 2010-12-31 19:23:31 UTC (rev 930) +++ trunk/model/AliasHandler.php 2010-12-31 20:13:53 UTC (rev 931) @@ -167,7 +167,7 @@ $alias_data = array( 'goto' => $goto, ); - $result = db_update('alias', "address = '$E_username'", $alias_data); + $result = db_update('alias', 'address', $this->username, $alias_data); } if($result != 1) { return false; Modified: trunk/model/UserHandler.php =================================================================== --- trunk/model/UserHandler.php 2010-12-31 19:23:31 UTC (rev 930) +++ trunk/model/UserHandler.php 2010-12-31 20:13:53 UTC (rev 931) @@ -28,17 +28,14 @@ * as per the configuration in config.inc.php */ public function change_pw($new_password, $old_password, $match = true) { - $username = $this->username; list(/*NULL*/,$domain) = explode('@', $username); - $username = escape_string($username); + $E_username = escape_string($this->username); $table_mailbox = table_by_key('mailbox'); - $new_db_password = pacrypt($new_password); - if ($match == true) { $active = db_get_boolean(True); - $result = db_query("SELECT password FROM $table_mailbox WHERE username='$username' AND active='$active'"); + $result = db_query("SELECT password FROM $table_mailbox WHERE username='$E_username' AND active='$active'"); $result = db_assoc($result['result']); if (pacrypt($old_password, $result['password']) != $result['password']) { @@ -49,10 +46,10 @@ } $set = array( - 'password' => $new_db_password + 'password' => pacrypt($new_password) , ); - $result = db_update('mailbox', 'username=\''.$username.'\'', $set ); + $result = db_update('mailbox', 'username', $this->username, $set ); if ($result != 1) { db_log ('CONSOLE', $domain, 'edit_password', "FAILURE: " . $this->username); # TODO: replace hardcoded CONSOLE - class is used by XMLRPC and users/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2011-01-06 20:01:27
|
Revision: 937 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=937&view=rev Author: christian_boltz Date: 2011-01-06 20:01:21 +0000 (Thu, 06 Jan 2011) Log Message: ----------- various documentation updates: INSTALL.TXT: - added a note to read the official PostfixAdmin documentation first, and that "external" HOWTOs on the web are often outdated or incomplete. That might sound selfish, but would already have saved several users some time. - updated some links - added link to the wiki - added hint about config.local.php - added note about write access for templates_c directory for www-data UPGRADE.txt - added note about setup.php?debug=1 - added note about postfix config update (alias domains) - added note about templates_c permissions Modified Paths: -------------- trunk/DOCUMENTS/UPGRADE.txt trunk/INSTALL.TXT Modified: trunk/DOCUMENTS/UPGRADE.txt =================================================================== --- trunk/DOCUMENTS/UPGRADE.txt 2011-01-05 20:57:53 UTC (rev 936) +++ trunk/DOCUMENTS/UPGRADE.txt 2011-01-06 20:01:21 UTC (rev 937) @@ -57,7 +57,14 @@ (the last command assumes your Apache is running with group "www") +Since version 2.4 we use smarty templates. That means the templates_c directory +needs to be writeable for your webserver. + $ chown -R www-data templates_c/ + +(if your Apache runs as user "www-data") + + 4. Configure ------------ Check the config.inc.php file. There you can specify settings that are @@ -66,8 +73,8 @@ Comparing config.inc.php with your previous using "diff" might save you some time. -You can use a config.local.php file to contain your local settings - these will override any -defined in config.inc.php +You can use a config.local.php file to contain your local settings. These will override any +defined in config.inc.php - and save some time when upgrading to a new version of PostfixAdmin ;-) 5. Run setup.php ---------------------------------------- @@ -75,6 +82,7 @@ Access setup.php through a web browser. It will attempt to upgrade your database, and also allow you to create a superadmin user. +(In case the database upgrade fails, you can run setup.php?debug=1 to see the last executed query.) From version 2.3, you need to specify a setup_password in config.inc.php - setup.php should guide you through this process. If you do not have a setup_password, type one @@ -89,8 +97,14 @@ Note that admin/ has been merged into the main directory. Login with the superadmin account to setup domains and domain admins. +5. Upgrade your postfix config +------------------------------ +Since version 2.3, PostfixAdmin supports alias domains ($CONF['alias_domain']). +If you want to use them, you have to add some queries to your postfix config - +see POSTFIX_CONF for details. + 6. Done ------- This is all that is needed. Fire up your browser and go to the site that you Modified: trunk/INSTALL.TXT =================================================================== --- trunk/INSTALL.TXT 2011-01-05 20:57:53 UTC (rev 936) +++ trunk/INSTALL.TXT 2011-01-06 20:01:21 UTC (rev 937) @@ -15,15 +15,23 @@ READ THIS FIRST! ---------------- -When this is an upgrade from Postfix Admin 1.5.4 please read DOCUMENTS/UPGRADE.TXT!! +When this is an upgrade from a previous version of Postfix Admin, please read +DOCUMENTS/UPGRADE.TXT also! If you need to setup Postfix to be able to handle Virtual Domains and Virtual -Users check out : +Users check out: - - http://high5.net/howto/ + - the PostfixAdmin documentation in the DOCUMENTS/ directory + - our wiki at http://sourceforge.net/apps/mediawiki/postfixadmin/ + +There are also lots of HOWTOs around the web. Be warned that many of them +(even those listed below) may be outdated or incomplete. +Please stick to the PostfixAdmin documentation, and use those HOWTOs only if +you need some additional information that is missing in the PostfixAdmin +DOCUMENTS/ folder. - http://codepoets.co.uk/postfixadmin-postgresql-courier-squirrelmail-debian-etch-howto-tutorial (Debian+Courier+PostgreSQL+Postfix+Postfixadmin) - http://bliki.rimuhosting.com/space/knowledgebase/linux/mail/postfixadmin+on+debian+sarge (Postfix+MySQL+Postfixadmin+Dovecot) - - http://gentoo-wiki.com/HOWTO_Setup_a_Virtual_Postfix/Courier_Mail_System_with_PostfixAdmin (Postfix+MySQL+Postfixadmin+Courier) + - http://en.gentoo-wiki.com/wiki/Virtual_mail_server_using_Postfix,_Courier_and_PostfixAdmin (Postfix+MySQL+Postfixadmin+Courier) 1. Unarchive new Postfix Admin @@ -61,7 +69,7 @@ 3. Configure PostfixAdmin so it can find the database ----------------------------------------------------- -Edit the config.inc.php file. +Edit the config.inc.php file - or - create config.local.php and add your settings there. The most important settings are those for your database server. @@ -74,9 +82,12 @@ $CONF['configured'] = true; -PostfixAdmin does not require write access to any files. You can therefore -leave the files owned as root (or a.n.other user); as long as the web server -user (e.g. www-data) can read them, it will be fine. +PostfixAdmin does not require write access to any files except the tempates_c +directory (smarty cache). You can therefore leave the files owned as root (or +another user); as long as the web server user (e.g. www-data) can read them, it +will be fine. +For templates_c/, allow write access (only) for the web server user (e. g. www-data). +The easiest way to do this is chown -R www-data templates_c The next 'step', is optional. Only do it, if other non-trusted users have access to your user: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2011-02-15 21:59:09
|
Revision: 965 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=965&view=rev Author: christian_boltz Date: 2011-02-15 21:59:03 +0000 (Tue, 15 Feb 2011) Log Message: ----------- Preparation for removing the $username parameter from db_log() (will be detected by authentication_get_username() instead) scripts/postfixadmin-cli.php: - define ("POSTFIXADMIN_CLI", 1) (we have no session running and need a way to tell authentication_get_username() that this is a CLI access) functions.inc.php: - authentication_get_username(): check for POSTFIXADMIN_CLI constant, return 'CLI' if set (hmmm, do we need a similar thing for XMLRPC?) - db_log(): override $username parameter with authentication_get_username() (removing it from function parameters will be my next big commit) Modified Paths: -------------- trunk/functions.inc.php trunk/scripts/postfixadmin-cli.php Modified: trunk/functions.inc.php =================================================================== --- trunk/functions.inc.php 2011-02-14 18:32:36 UTC (rev 964) +++ trunk/functions.inc.php 2011-02-15 21:59:03 UTC (rev 965) @@ -27,6 +27,11 @@ function authentication_get_username() { global $CONF; + + if (defined('POSTFIXADMIN_CLI')) { + return 'CLI'; + } + if (!isset($_SESSION['sessid'])) { header ("Location: " . $CONF['postfix_admin_url'] . "/login.php"); exit(0); @@ -1828,6 +1833,8 @@ global $table_log; $REMOTE_ADDR = getRemoteAddr(); + $username = authentication_get_username(); + $action_list = array( 'create_alias', 'edit_alias', 'edit_alias_state', 'delete_alias', 'create_mailbox', 'edit_mailbox', 'edit_mailbox_state', 'delete_mailbox', Modified: trunk/scripts/postfixadmin-cli.php =================================================================== --- trunk/scripts/postfixadmin-cli.php 2011-02-14 18:32:36 UTC (rev 964) +++ trunk/scripts/postfixadmin-cli.php 2011-02-15 21:59:03 UTC (rev 965) @@ -557,6 +557,7 @@ } +define ("POSTFIXADMIN_CLI", 1); $dispatcher = new PostfixAdmin($argv); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2011-02-15 22:20:33
|
Revision: 966 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=966&view=rev Author: christian_boltz Date: 2011-02-15 22:20:27 +0000 (Tue, 15 Feb 2011) Log Message: ----------- Remove $username parameter from db_log() functions.inc.php: - remove $username parameter from function db_log() (now auto-detected with authentication_get_username()) various files: - remove hardcoded username ('CONSOLE', $username etc.) in db_log() calls Modified Paths: -------------- trunk/create-alias-domain.php trunk/create-alias.php trunk/create-mailbox.php trunk/delete.php trunk/edit-active.php trunk/edit-alias.php trunk/edit-mailbox.php trunk/functions.inc.php trunk/model/AliasHandler.php trunk/model/DomainHandler.php trunk/model/UserHandler.php Modified: trunk/create-alias-domain.php =================================================================== --- trunk/create-alias-domain.php 2011-02-15 21:59:03 UTC (rev 965) +++ trunk/create-alias-domain.php 2011-02-15 22:20:27 UTC (rev 966) @@ -124,7 +124,7 @@ $tMessage = $PALANG['pCreate_alias_domain_error3']; } else { - db_log ($SESSID_USERNAME, $fAliasDomain, 'create_alias_domain', "$fAliasDomain -> $fTargetDomain"); + db_log ($fAliasDomain, 'create_alias_domain', "$fAliasDomain -> $fTargetDomain"); flash_info($PALANG['pCreate_alias_domain_success']); # we would have to update the list of domains available for aliasing. Doing a redirect is easier. Modified: trunk/create-alias.php =================================================================== --- trunk/create-alias.php 2011-02-15 21:59:03 UTC (rev 965) +++ trunk/create-alias.php 2011-02-15 22:20:27 UTC (rev 966) @@ -181,7 +181,7 @@ $tMessage = $PALANG['pCreate_alias_result_error'] . "<br />($fAddress -> $fGoto)<br />\n"; } else { - db_log ($SESSID_USERNAME, $fDomain, 'create_alias', "$fAddress -> $fGoto"); + db_log ($fDomain, 'create_alias', "$fAddress -> $fGoto"); $tDomain = $fDomain; $tMessage = $PALANG['pCreate_alias_result_success'] . "<br />($fAddress -> $fGoto)<br />\n"; Modified: trunk/create-mailbox.php =================================================================== --- trunk/create-mailbox.php 2011-02-15 21:59:03 UTC (rev 965) +++ trunk/create-mailbox.php 2011-02-15 22:20:27 UTC (rev 966) @@ -224,7 +224,7 @@ else { db_query('COMMIT'); - db_log ($SESSID_USERNAME, $fDomain, 'create_mailbox', "$fUsername"); + db_log ($fDomain, 'create_mailbox', "$fUsername"); $tDomain = $fDomain; $tQuota = $CONF['maxquota']; Modified: trunk/delete.php =================================================================== --- trunk/delete.php 2011-02-15 21:59:03 UTC (rev 965) +++ trunk/delete.php 2011-02-15 22:20:27 UTC (rev 966) @@ -119,7 +119,7 @@ $result = db_query("SELECT * FROM $table_alias WHERE address = '$fDelete' AND domain = '$fDomain'"); if($result['rows'] == 1) { $result = db_query ("DELETE FROM $table_alias WHERE address='$fDelete' AND domain='$fDomain'"); - db_log ($SESSID_USERNAME, $fDomain, 'delete_alias', $fDelete); + db_log ($fDomain, 'delete_alias', $fDelete); } /* is there a mailbox? if do delete it from orbit; it's the only way to be sure */ $result = db_query ("SELECT * FROM $table_mailbox WHERE username='$fDelete' AND domain='$fDomain'"); @@ -142,7 +142,7 @@ } $tMessage.=')</span>'; } - db_log ($SESSID_USERNAME, $fDomain, 'delete_mailbox', $fDelete); + db_log ($fDomain, 'delete_mailbox', $fDelete); } $result = db_query("SELECT * FROM $table_vacation WHERE email = '$fDelete' AND domain = '$fDomain'"); if($result['rows'] == 1) { Modified: trunk/edit-active.php =================================================================== --- trunk/edit-active.php 2011-02-15 21:59:03 UTC (rev 965) +++ trunk/edit-active.php 2011-02-15 22:20:27 UTC (rev 966) @@ -65,7 +65,7 @@ } else { - db_log ($SESSID_USERNAME, $fDomain, 'edit_mailbox_state', $fUsername); + db_log ($fDomain, 'edit_mailbox_state', $fUsername); } } if ($fAlias != '') @@ -78,7 +78,7 @@ } else { - db_log ($SESSID_USERNAME, $fDomain, 'edit_alias_state', $fAlias); + db_log ($fDomain, 'edit_alias_state', $fAlias); } } if ($fAliasDomain != '') @@ -91,7 +91,7 @@ } else { - db_log ($SESSID_USERNAME, $fDomain, 'edit_alias_domain_state', $fDomain); + db_log ($fDomain, 'edit_alias_domain_state', $fDomain); } } } Modified: trunk/edit-alias.php =================================================================== --- trunk/edit-alias.php 2011-02-15 21:59:03 UTC (rev 965) +++ trunk/edit-alias.php 2011-02-15 22:20:27 UTC (rev 966) @@ -161,7 +161,7 @@ } else { - db_log ($SESSID_USERNAME, $fDomain, 'edit_alias', "$fAddress -> $goto"); + db_log ($fDomain, 'edit_alias', "$fAddress -> $goto"); header ("Location: list-virtual.php?domain=$fDomain"); exit; Modified: trunk/edit-mailbox.php =================================================================== --- trunk/edit-mailbox.php 2011-02-15 21:59:03 UTC (rev 965) +++ trunk/edit-mailbox.php 2011-02-15 22:20:27 UTC (rev 966) @@ -160,7 +160,7 @@ $tMessage = $PALANG['pEdit_mailbox_result_error']; } else { - db_log ($SESSID_USERNAME, $fDomain, 'edit_mailbox', $fUsername); + db_log ($fDomain, 'edit_mailbox', $fUsername); header ("Location: list-virtual.php?domain=$fDomain"); exit(0); Modified: trunk/functions.inc.php =================================================================== --- trunk/functions.inc.php 2011-02-15 21:59:03 UTC (rev 965) +++ trunk/functions.inc.php 2011-02-15 22:20:27 UTC (rev 966) @@ -1809,7 +1809,7 @@ /** * db_log * Action: Logs actions from admin - * Call: db_log (string username, string domain, string action, string data) + * Call: db_log (string domain, string action, string data) * Possible actions are: * 'create_domain' * 'create_alias' @@ -1827,7 +1827,7 @@ * 'edit_mailbox_state' * 'edit_password' */ -function db_log ($username,$domain,$action,$data) +function db_log ($domain,$action,$data) { global $CONF; global $table_log; @@ -2428,7 +2428,7 @@ # TODO: should we log creation, editing and deletion of admins? # Note: needs special handling in viewlog, because domain is empty - # db_log ($SESSID_USERNAME, '', 'create_admin', "$fUsername"); + # db_log ('', 'create_admin', "$fUsername"); return array( $error, Modified: trunk/model/AliasHandler.php =================================================================== --- trunk/model/AliasHandler.php 2011-02-15 21:59:03 UTC (rev 965) +++ trunk/model/AliasHandler.php 2011-02-15 22:20:27 UTC (rev 966) @@ -177,7 +177,7 @@ if($result != 1) { return false; } - db_log($this->username, $domain, 'edit_alias', "$E_username -> $goto"); + db_log ($domain, 'edit_alias', "$E_username -> $goto"); return true; } @@ -226,7 +226,7 @@ $result = db_delete('alias', 'address', $this->username); if( $result == 1 ) { list(/*NULL*/,$domain) = explode('@', $this->username); - db_log ('CLI', $domain, 'delete_alias', $this->username); # TODO: replace hardcoded CLI + db_log ($domain, 'delete_alias', $this->username); return true; } } Modified: trunk/model/DomainHandler.php =================================================================== --- trunk/model/DomainHandler.php 2011-02-15 21:59:03 UTC (rev 965) +++ trunk/model/DomainHandler.php 2011-02-15 22:20:27 UTC (rev 966) @@ -61,7 +61,7 @@ if (!domain_postcreation($domain)) { $tMessage = Lang::read('pAdminCreate_domain_error'); } - db_log('CONSOLE', $domain, 'create_domain', ""); + db_log ($domain, 'create_domain', ""); return true; } @@ -94,7 +94,7 @@ $result = db_delete('domain', 'domain', $this->username); if( $result == 1 ) { list(/*NULL*/,$domain) = explode('@', $this->username); - db_log ('CLI', $domain, 'delete_domain', $this->username); # TODO: replace hardcoded CLI # TODO delete_domain is not a valid db_log keyword yet because we don't yet log add/delete domain + db_log ($domain, 'delete_domain', $this->username); # TODO delete_domain is not a valid db_log keyword yet because we don't yet log add/delete domain return true; } } Modified: trunk/model/UserHandler.php =================================================================== --- trunk/model/UserHandler.php 2011-02-15 21:59:03 UTC (rev 965) +++ trunk/model/UserHandler.php 2011-02-15 22:20:27 UTC (rev 966) @@ -39,7 +39,7 @@ $result = db_assoc($result['result']); if (pacrypt($old_password, $result['password']) != $result['password']) { - db_log ('CONSOLE', $domain, 'edit_password', "MATCH FAILURE: " . $this->username); # TODO: replace hardcoded CONSOLE - class is used by XMLRPC and users/ + db_log ($domain, 'edit_password', "MATCH FAILURE: " . $this->username); $this->errormsg[] = 'Passwords do not match'; # TODO: make translatable return false; } @@ -52,12 +52,12 @@ $result = db_update('mailbox', 'username', $this->username, $set ); if ($result != 1) { - db_log ('CONSOLE', $domain, 'edit_password', "FAILURE: " . $this->username); # TODO: replace hardcoded CONSOLE - class is used by XMLRPC and users/ + db_log ($domain, 'edit_password', "FAILURE: " . $this->username); $this->errormsg[] = Lang::read('pEdit_mailbox_result_error'); return false; } - db_log ('CONSOLE', $domain, 'edit_password', $this->username); # TODO: replace hardcoded CONSOLE - class is used by XMLRPC and users/ + db_log ($domain, 'edit_password', $this->username); return true; } @@ -190,7 +190,7 @@ return false; } else { db_commit(); - db_log ('CONSOLE', $domain, 'create_mailbox', $username); # TODO: remove hardcoded CONSOLE + db_log ($domain, 'create_mailbox', $username); if ($mail == true) @@ -259,7 +259,7 @@ $result = db_query("SELECT * FROM $table_alias WHERE address = '$E_username' AND domain = '$domain'"); if($result['rows'] == 1) { $result = db_delete('alias', 'address', $username); - db_log ('CONSOLE', $domain, 'delete_alias', $username); # TODO: remove hardcoded CONSOLE + db_log ($domain, 'delete_alias', $username); } else { $this->errormsg[] = "no alias $username"; # todo: better message, make translatable $error = 1; @@ -294,7 +294,7 @@ $error = 1; # return false; # TODO: does this make sense? Or should we still cleanup vacation and vacation_notification? } - db_log ('CONSOLE', $domain, 'delete_mailbox', $username); + db_log ($domain, 'delete_mailbox', $username); } else { $this->errormsg[] = "no mailbox $username"; # TODO: better message, make translatable $error = 1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2011-02-27 22:24:57
|
Revision: 971 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=971&view=rev Author: christian_boltz Date: 2011-02-27 22:24:51 +0000 (Sun, 27 Feb 2011) Log Message: ----------- Legal stuff: add notes about the licenses of the libraries we use to LICENSE.TXT Also added smarty/COPYING.lib (contains the smarty license - LGPL3) Modified Paths: -------------- trunk/LICENSE.TXT Added Paths: ----------- trunk/smarty/COPYING.lib Modified: trunk/LICENSE.TXT =================================================================== --- trunk/LICENSE.TXT 2011-02-27 21:35:21 UTC (rev 970) +++ trunk/LICENSE.TXT 2011-02-27 22:24:51 UTC (rev 971) @@ -18,7 +18,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - Postfix Admin verion 2.1.1, Copyright (c) 2005 High5! (Mischa Peters & Contributors) + Postfix Admin version 2.1.1, Copyright (c) 2005 High5! (Mischa Peters & Contributors) Postfix Admin comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. @@ -29,4 +29,14 @@ Contributors: Mihau, Tarvin, SteveB, DJTremors, WhiteFox, David Osborn, David Goodwin (GingerDog), Christian Boltz (cboltz) and GregC and others. - + + +Postfix Admin uses some libraries that come with a different license: +- the Smarty templating engine is licensed under the GNU LESSER GENERAL PUBLIC + LICENSE Version 3 (see smarty/COPYING.lib) +- the CLI (commandline interface) is based on CakePHP which is licensed under + the MIT license. +- simpletest is licensed under the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1 + (see tests/simpletest/LICENSE) +- the squirrelmail plugin uses Zend Framework which is licensed under the + New BSD License (3-clause), see http://framework.zend.com/license Added: trunk/smarty/COPYING.lib =================================================================== --- trunk/smarty/COPYING.lib (rev 0) +++ trunk/smarty/COPYING.lib 2011-02-27 22:24:51 UTC (rev 971) @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2011-02-27 22:56:11
|
Revision: 973 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=973&view=rev Author: christian_boltz Date: 2011-02-27 22:56:05 +0000 (Sun, 27 Feb 2011) Log Message: ----------- smarty.inc.php: - set $this->template->allow_php_tag = true instead of editing smarty/libs/Smarty.class.php after every smarty upgrade added smarty/smarty_version with: - a note about the current smarty version - a note about additional files not part of the smarty package Modified Paths: -------------- trunk/smarty.inc.php Added Paths: ----------- trunk/smarty/smarty_version Added: trunk/smarty/smarty_version =================================================================== --- trunk/smarty/smarty_version (rev 0) +++ trunk/smarty/smarty_version 2011-02-27 22:56:05 UTC (rev 973) @@ -0,0 +1,6 @@ +$Id$ + +Smarty version: 3.0.7 + +Additional files (not part of the official Smarty release): +- libs/plugins/modifier.needle.php Property changes on: trunk/smarty/smarty_version ___________________________________________________________________ Added: svn:keywords + svn:keywords Modified: trunk/smarty.inc.php =================================================================== --- trunk/smarty.inc.php 2011-02-27 22:43:46 UTC (rev 972) +++ trunk/smarty.inc.php 2011-02-27 22:56:05 UTC (rev 973) @@ -14,6 +14,7 @@ $this->template->template_dir = $incpath.'/templates'; $this->template->compile_dir = $incpath.'/templates_c'; $this->template->config_dir = $incpath.'/'.$this->template->config_dir; + $this->template->allow_php_tag = true; } public function assign($key, $value, $sanitise = true) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2011-03-02 22:37:28
|
Revision: 978 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=978&view=rev Author: christian_boltz Date: 2011-03-02 22:37:22 +0000 (Wed, 02 Mar 2011) Log Message: ----------- DomainHander: on the way to a common interface for all classes and easy-to-edit field lists. With lots of inspiration from fetchmail.php and a base class I started 2.5 years ago. model/DomainHandler.php - base on PFAHandler (see below) - new protected variables - $id_field (column that contains $username) - $struct (field list) - $defaults (default values, option lists) - $new (switch between new and edit mode) - change $username to protected (preparation for move to PFAHandler) - add optional $new parameter to __construct. Targets (not yet implemented): - early validation of $username (domain name in this case) - if $new == 1, check that item does NOT exist and is a valid domain - else: check if item exists. error out if not. - new function initStruct to fill $id_field, $struct, $defaults - add(): - use an array as parameter instead of single parameters Advantage: this makes it easy to add another field - use _inp_* base validation - create default aliases only in create mode, not in edit mode - view(): fix error message - added various TODO notes. Some affect design questions - feedback welcome ;-) scripts/shells/domain.php: - change $handler->add call to array usage - add some TODO notes - some whitespace fixes in execute() model/PFAHandler.php: - new base class for *Handler classes - contains only some generic input validation for now - more code will be moved from DomainHandler to PFAHandler later Modified Paths: -------------- trunk/model/DomainHandler.php trunk/scripts/shells/domain.php Added Paths: ----------- trunk/model/PFAHandler.php Modified: trunk/model/DomainHandler.php =================================================================== --- trunk/model/DomainHandler.php 2011-03-02 21:36:41 UTC (rev 977) +++ trunk/model/DomainHandler.php 2011-03-02 22:37:22 UTC (rev 978) @@ -4,48 +4,111 @@ /** * Handlers User level alias actions - e.g. add alias, get aliases, update etc. */ -class DomainHandler { +class DomainHandler extends PFAHandler { - private $username = null; # actually it's the domain - variable name kept for consistence with the other classes + protected $username = null; # actually it's the domain - variable name kept for consistence with the other classes + protected $id_field = null; + protected $struct = array(); + protected $defaults = array(); + protected $new = 0; # 1 on create, otherwise 0 - public $errormsg = array(); /** * @param string $username */ - public function __construct($username) { + public function __construct($username, $new = 0) { $this->username = $username; + if ($new) $this->new = 1; + # TODO: if $new == 1, check that item does NOT exist and is a valid (in this case) domain + # TODO: else: check if item exists. error out if not. + # TODO: target: if construct succeeds, $this->username is valid + $this->initStruct(); } + private function initStruct() { + $this->id_field = 'domain'; + + # TODO: merge $struct and $defaults to one array? + # TODO: use a helper function to fill $struct with named keys instead of [0], [1], ... + # TODO: find a way to handle field labels - not sure if the fetchmail way (construct $LANG keys from field name) is perfect + + $this->struct=array( // list($editible,$view,$type) + # field name allow display field? type + # editing? form list + "domain" => array( $this->new, 1, 1, 'text' ), + "description" => array( 1, 1, 1, 'text' ), + "aliases" => array( 1, 1, 1, 'num' ), + "mailboxes" => array( 1, 1, 1, 'num' ), + "maxquota" => array( 1, 1, 1, 'num' ), + "quota" => array( 0, 0, 0, 'num' ), # currently unused, reserved for domain total quota + "transport" => array( 1, 1, 1, 'enum' ), + "backupmx" => array( 1, 1, 1, 'bool' ), + "active" => array( 1, 1, 1, 'bool' ), + "created" => array( 0, 0, 1, 'text' ), + "modified" => array( 0, 0, 1, 'text' ), + ); + # labels and descriptions are taken from $PALANG['pFetchmail_field_xxx'] and $PALANG['pFetchmail_desc_xxx'] + + $this->defaults=array( + 'aliases' => Config::read('aliases'), + 'mailboxes' => Config::read('mailboxes'), + 'maxquota' => Config::read('maxquota'), + 'quota' => 0, # TODO: Config::read(''), - config option does not exist yet + 'transport' => $this->getTransports(), + 'backupmx' => 0, + 'active' => 1, + ); + } + public function getTransports() { return Config::read('transport_options'); } - + + # TODO: specific for CLI? If yes, move to CLI code public function getTransport($id) { $transports = Config::read('transport_options'); return $transports[$id-1]; } - public function add($desc, $a, $m, $t, $q, $default, $backup) { + public function add($values) { +# ($desc, $a, $m, $t, $q, $default, $backup) + + # TODO: make this a generic function for add and edit + # TODO: move DB writes etc. to separate save() function + + ($values['backupmx'] == true) ? $values['backupmx'] = db_get_boolean(true) : $values['backupmx'] = db_get_boolean(false); - ($backup == true) ? $backup = db_get_boolean(true) : $backup = db_get_boolean(false); - - $arr = array( - 'domain' => $this->username, - 'description' => $desc, - 'aliases' => $a, - 'mailboxes' => $m, - 'maxquota' => $q, - 'transport' => $this->getTransport($t), - 'backupmx' => $backup, - ); - - $result = db_insert('domain', $arr); + $values['domain'] = $this->username; + + # base validation + $checked = array(); + foreach($this->struct as $key=>$row) { + list($editable, $displayform, $displaylist, $type) = $row; + if ($editable != 0){ + $func="_inp_".$type; + $val=safepost($key); + if ($type!="password" || strlen($values[$key]) > 0 || $this->new == 1) { # skip on empty (aka unchanged) password on edit + if (method_exists($this, $func) ) { + $checked[$key] = $this->{$func}($values[$key]); + } else { + # TODO: warning if no validation function exists? + $checked[$key] = $values[$key]; + } + } + } + } + + # TODO: more validation + + $domain = $this->username; # TODO fix variable names below + + $checked['domain'] = $this->username; + $result = db_insert('domain', $checked); if ($result != 1) { $this->errormsg[] = Lang::read('pAdminCreate_domain_result_error') . "\n($domain)\n"; return false; } else { - if ($default) { + if ($this->new && $values['default_aliases']) { foreach (Config::read('default_aliases') as $address=>$goto) { $address = $address . "@" . $domain; # TODO: use AliasHandler->add instead of writing directly to the alias table @@ -75,7 +138,8 @@ $this->return = db_array($result['result']); return true; } - $this->errormsg = $result['error']; + $this->errormsg[] = "Domain " . $this->username . " does not exist."; +# $this->errormsg[] = $result['error']; return false; } /** Added: trunk/model/PFAHandler.php =================================================================== --- trunk/model/PFAHandler.php (rev 0) +++ trunk/model/PFAHandler.php 2011-03-02 22:37:22 UTC (rev 978) @@ -0,0 +1,16 @@ +<?php +class PFAHandler { + function _inp_num($val) { + return (int)($val); + } + + function _inp_bool($val) { + return $val ? db_get_boolean(true): db_get_boolean(false); + } + + function _inp_password($val){ + # TODO: fetchmail specific. Not suited for mailbox/admin passwords. + return base64_encode($val); + } +} +/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ Property changes on: trunk/model/PFAHandler.php ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + native Modified: trunk/scripts/shells/domain.php =================================================================== --- trunk/scripts/shells/domain.php 2011-03-02 21:36:41 UTC (rev 977) +++ trunk/scripts/shells/domain.php 2011-03-02 22:37:22 UTC (rev 978) @@ -136,8 +136,20 @@ function __handle($domain, $desc, $a, $m, $t, $q, $default, $backup) { - $handler = new DomainHandler($domain); - $return = $handler->add($desc, $a, $m, $t, $q, $default, $backup); + $handler = new DomainHandler($domain, 1); + $values = array( + 'domain' => $domain, + 'description' => $desc, + 'aliases' => $a, + 'mailboxes' => $m, + 'maxquota' => $q, + # 'quota' => + 'transport' => $handler->getTransport($t), + 'backupmx' => $backup, + 'active' => $a, + 'default_aliases' => $default, + ); + $return = $handler->add($values); if(!$return) { $this->error("Error:", join("\n", $handler->errormsg)); @@ -154,6 +166,7 @@ * @access public */ function help() { +# TODO: this is the DOMAIN shell... $this->hr(); $this->out("Usage: postfixadmin-cli user add <address> [<password>] <name> <quota> [-g]"); $this->hr(); @@ -216,12 +229,12 @@ function execute() { if (empty($this->args)) { - $this->__interactive(); + $this->__interactive(); } if (!empty($this->args[0])) { - $output = $this->__handle($this->args[0]); - $this->out($output); + $output = $this->__handle($this->args[0]); + $this->out($output); } } /** @@ -342,6 +355,7 @@ * @access public */ function help() { +# TODO: this is the DOMAIN shell... $this->out(""); $this->hr(); $this->out("Usage: postfixadmin-cli user view <address>"); @@ -354,3 +368,4 @@ } } +/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <va...@us...> - 2011-03-06 02:14:16
|
Revision: 981 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=981&view=rev Author: valkum Date: 2011-03-06 02:14:10 +0000 (Sun, 06 Mar 2011) Log Message: ----------- *fixed db_insert - duplicate $timestamp *fixed VacationHandler.php *changed edit-vacation to us VacationHandler *added todopoint to upgrade.php *fixed problem in AliasHandler Modified Paths: -------------- trunk/edit-vacation.php trunk/functions.inc.php trunk/model/AliasHandler.php trunk/model/VacationHandler.php trunk/upgrade.php Modified: trunk/edit-vacation.php =================================================================== --- trunk/edit-vacation.php 2011-03-03 20:57:08 UTC (rev 980) +++ trunk/edit-vacation.php 2011-03-06 02:14:10 UTC (rev 981) @@ -55,7 +55,7 @@ $fUsername = $SESSID_USERNAME; $fDomain = $USERID_DOMAIN; } - +$vh = new VacationHandler($fUsername); $vacation_domain = $CONF['vacation_domain']; $vacation_goto = preg_replace('/@/', '#', $fUsername); $vacation_goto = $vacation_goto . '@' . $vacation_domain; @@ -85,7 +85,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") { - + $tSubject = safepost('fSubject'); $fSubject = escape_string ($tSubject); $tBody = safepost('fBody'); @@ -114,38 +114,10 @@ if ($tBody == '') { $tBody = html_entity_decode($PALANG['pUsersVacation_body_text'], ENT_QUOTES, 'UTF-8'); } //if change, remove old one, then perhaps set new one - if (!empty ($fBack) || !empty ($fChange)) + if (!empty ($fBack)) { - //if we find an existing vacation entry, disable it - $result = db_query("SELECT * FROM $table_vacation WHERE email='$fUsername'"); - if ($result['rows'] == 1) - { - $db_false = db_get_boolean(false); - // retain vacation message if possible - i.e disable vacation away-ness. - $result = db_query ("UPDATE $table_vacation SET active = '$db_false' WHERE email='$fUsername'"); - $result = db_query("DELETE FROM $table_vacation_notification WHERE on_vacation='$fUsername'"); - - $result = db_query ("SELECT * FROM $table_alias WHERE address='$fUsername'"); - if ($result['rows'] == 1) - { - $row = db_array ($result['result']); - $goto = $row['goto']; - //only one of these will do something, first handles address at beginning and middle, second at end - $goto= preg_replace ( "/$vacation_goto,/", '', $goto); - $goto= preg_replace ( "/,$vacation_goto/", '', $goto); - $goto= preg_replace ( "/$vacation_goto/", '', $goto); - if($goto == '') { - $sql = "DELETE FROM $table_alias WHERE address = '$fUsername'"; - } - else { - $sql = "UPDATE $table_alias SET goto='$goto',modified=NOW() WHERE address='$fUsername'"; - } - $result = db_query($sql); - if ($result['rows'] != 1) - { - $error = 1; - } - } + if(!$vh->remove()) { + $error = 1; } } @@ -153,42 +125,10 @@ //Set the vacation data for $fUsername if (!empty ($fChange)) { - $goto = ''; - $result = db_query ("SELECT * FROM $table_alias WHERE address='$fUsername'"); - if ($result['rows'] == 1) - { - $row = db_array ($result['result']); - $goto = $row['goto']; - } - $Active = db_get_boolean(True); - $notActive = db_get_boolean(False); - // I don't think we need to care if the vacation entry is inactive or active.. as long as we don't try and - // insert a duplicate - $result = db_query("SELECT * FROM $table_vacation WHERE email = '$fUsername'"); - if($result['rows'] == 1) { - $result = db_query("UPDATE $table_vacation SET active = '$Active', subject = '$fSubject', body = '$fBody', created = NOW(), activefrom = '$tActiveFrom', activeuntil = '$tActiveUntil' WHERE email = '$fUsername'"); - } - else { - $result = db_query ("INSERT INTO $table_vacation (email,subject,body,domain,created,active, activefrom, activeuntil) VALUES ('$fUsername','$fSubject','$fBody','$fDomain',NOW(),$Active, '$tActiveFrom', '$tActiveUntil')"); - } - - if ($result['rows'] != 1) - { - $error = 1; - } - if($goto == '') { - $goto = $vacation_goto; - $sql = "INSERT INTO $table_alias (goto, address, domain, modified, activefrom, activeuntil) VALUES ('$goto', '$fUsername', '$fDomain', NOW(), '$tActiveFrom', '$tActiveUntil')"; - } - else { - $goto = $goto . "," . $vacation_goto; - $sql = "UPDATE $table_alias SET goto='$goto',modified=NOW() WHERE address='$fUsername'"; - } - $result = db_query ($sql); - if ($result['rows'] != 1) - { - $error = 1; - } + if(!$vh->set_away($fSubject, $fBody, $tActiveFrom, $tActiveUntil)) { + $error = 1; + } + } } Modified: trunk/functions.inc.php =================================================================== --- trunk/functions.inc.php 2011-03-03 20:57:08 UTC (rev 980) +++ trunk/functions.inc.php 2011-03-06 02:14:10 UTC (rev 981) @@ -1743,7 +1743,7 @@ */ function db_update ($table, $where_col, $where_value, $values, $timestamp = array('modified') ) { $where = $where_col . " = '" . escape_string($where_value) . "'"; - return db_update_q ($table, $where, $values, $timestamp = array('modified') ); + return db_update_q ($table, $where, $values, $timestamp ); } /** Modified: trunk/model/AliasHandler.php =================================================================== --- trunk/model/AliasHandler.php 2011-03-03 20:57:08 UTC (rev 980) +++ trunk/model/AliasHandler.php 2011-03-06 02:14:10 UTC (rev 981) @@ -3,13 +3,19 @@ /** * Handlers User level alias actions - e.g. add alias, get aliases, update etc. + * @property $username name of alias + * @property $return return of methods */ class AliasHandler { private $username = null; + + /** + * + * @public + */ + public $return = null; - - /** * @param string $username */ @@ -18,15 +24,15 @@ } /** - * @return array - list of email addresses the user's mail is forwarded to. + * @return bool true if succeed * (may be an empty list, especially if $CONF['alias_control'] is turned off...) * @param boolean - by default we don't return special addresses (e.g. vacation and mailbox alias); pass in true here if you wish to. */ public function get($all=false) { - $username = escape_string($this->username); + $E_username = escape_string($this->username); $table_alias = table_by_key('alias'); - $sql = "SELECT * FROM $table_alias WHERE address='$username'"; + $sql = "SELECT * FROM $table_alias WHERE address='$E_username'"; $result = db_query($sql); if($result['rows'] != 1) { return false; Modified: trunk/model/VacationHandler.php =================================================================== --- trunk/model/VacationHandler.php 2011-03-03 20:57:08 UTC (rev 980) +++ trunk/model/VacationHandler.php 2011-03-06 02:14:10 UTC (rev 981) @@ -14,27 +14,29 @@ */ function remove() { $ah = new AliasHandler($this->username); - $result = $ah->get(true); // fetch all # TODO check $result, error handling - $aliases = $ah->result; - $new_aliases = array(); - + $result = $ah->get(true); + if($result === true) { // fetch all # TODO check $result, error handling + $aliases = $ah->return; + $new_aliases = array(); /* go through the user's aliases and remove any that look like a vacation address */ - foreach($aliases as $alias) { # TODO replace with (to be written) array_remove() + foreach($aliases as $alias) { # TODO replace with (to be written) array_remove() if(!$ah->is_vacation_address($alias)) { $new_aliases[] = $alias; } - } - $ah->update($new_aliases, '', false); + } + $ah->update($new_aliases, '', false); - // tidy up vacation table. - $vacation_data = array( + // tidy up vacation table. + $vacation_data = array( 'active' => db_get_boolean(false), - ); - $result = db_update('vacation', 'email', $this->username, $vacation_data); - $result = db_delete('vacation_notification', 'on_vacation', $this->username); + ); + $result = db_update('vacation', 'email', $this->username, $vacation_data, array()); + $result = db_delete('vacation_notification', 'on_vacation', $this->username, array()); # TODO db_log() call (maybe except if called from set_away?) - /* crap error handling; oh for exceptions... */ - return true; + /* crap error handling; oh for exceptions... */ + return true; + } + return false; } /** @@ -115,14 +117,14 @@ $table_vacation = table_by_key('vacation'); $result = db_query("SELECT * FROM $table_vacation WHERE email = '$E_username'"); if($result['rows'] == 1) { - $result = db_update('vacation', 'email', $this->username, $vacation_data); + $result = db_update('vacation', 'email', $this->username, $vacation_data, array()); } else { - $result = db_insert('vacation', $vacation_data); + $result = db_insert('vacation', $vacation_data, array()); } # TODO error check # TODO wrap whole function in db_begin / db_commit (or rollback)? $ah = new AliasHandler($this->username); - $aliases = $ah->get(true); + $alias = $ah->get(true); $vacation_address = $this->getVacationAlias(); $aliases[] = $vacation_address; return $ah->update($aliases, '', false); Modified: trunk/upgrade.php =================================================================== --- trunk/upgrade.php 2011-03-03 20:57:08 UTC (rev 980) +++ trunk/upgrade.php 2011-03-06 02:14:10 UTC (rev 981) @@ -1305,3 +1305,4 @@ # including vacation.activefrom/activeuntil (might have a different default as leftover from upgrade_727_mysql) # including vacation.modified - should be {DATE}, not {DATECURRENT} # https://sourceforge.net/tracker/?func=detail&aid=1699218&group_id=191583&atid=937964 +@todo vacation.email has 2 indizes \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2011-03-14 20:21:20
|
Revision: 1004 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=1004&view=rev Author: christian_boltz Date: 2011-03-14 20:21:13 +0000 (Mon, 14 Mar 2011) Log Message: ----------- variables.inc.php: - cleanup: move some vars to password.php and users/password.php - drop $pPassword_admin_text - was always empty password.php, users/password.php: - init $pPassword_password_text and $pPassword_password_current_text (previously in variables.inc.php) templates/password.tpl, templates/users_password.tpl: - drop $pPassword_admin_text - was always empty These changes should also fix some undefined variable warnings reported by makomi on IRC. Modified Paths: -------------- trunk/password.php trunk/templates/password.tpl trunk/templates/users_password.tpl trunk/users/password.php trunk/variables.inc.php Modified: trunk/password.php =================================================================== --- trunk/password.php 2011-03-14 19:31:10 UTC (rev 1003) +++ trunk/password.php 2011-03-14 20:21:13 UTC (rev 1004) @@ -36,6 +36,9 @@ $smarty->assign ('SESSID_USERNAME', $SESSID_USERNAME); $smarty->assign ('smarty_template', 'password'); +$pPassword_password_current_text = ""; +$pPassword_password_text = ""; + if ($_SERVER['REQUEST_METHOD'] == "GET") { $smarty->display ('index.tpl'); Modified: trunk/templates/password.tpl =================================================================== --- trunk/templates/password.tpl 2011-03-14 19:31:10 UTC (rev 1003) +++ trunk/templates/password.tpl 2011-03-14 20:21:13 UTC (rev 1004) @@ -1,4 +1,3 @@ -{* pPassword_admin_text nicht gesetzt *} <div id="edit_form"> <form name="mailbox" method="post" action=""> <table> @@ -8,7 +7,7 @@ <tr> <td>{$PALANG.pPassword_admin}:</td> <td>{$SESSID_USERNAME}</td> - <td>{$pPassword_admin_text}</td> + <td> </td> </tr> <tr> <td>{$PALANG.pPassword_password_current}</td> Modified: trunk/templates/users_password.tpl =================================================================== --- trunk/templates/users_password.tpl 2011-03-14 19:31:10 UTC (rev 1003) +++ trunk/templates/users_password.tpl 2011-03-14 20:21:13 UTC (rev 1004) @@ -1,4 +1,3 @@ -{* pPassword_admin_text nicht gesetzt *} <div id="edit_form"> <form name="alias" method="post" action=""> <table> @@ -8,7 +7,7 @@ <tr> <td>{$PALANG.pPassword_admin}:</td> <td>{$USERID_USERNAME}</td> - <td>{$pPassword_admin_text}</td> + <td> </td> </tr> <tr> <td>{$PALANG.pPassword_password_current}:</td> Modified: trunk/users/password.php =================================================================== --- trunk/users/password.php 2011-03-14 19:31:10 UTC (rev 1003) +++ trunk/users/password.php 2011-03-14 20:21:13 UTC (rev 1004) @@ -32,6 +32,9 @@ authentication_require_role('user'); $username = authentication_get_username(); +$pPassword_password_text = ""; +$pPassword_password_current_text = ""; + if ($_SERVER['REQUEST_METHOD'] == "POST") { if(isset($_POST['fCancel'])) { @@ -74,7 +77,6 @@ } $smarty->assign ('USERID_USERNAME', $username); -//$smarty->assign ('pPassword_admin_text', $pPassword_admin_text); $smarty->assign ('pPassword_password_current_text', $pPassword_password_current_text, false); $smarty->assign ('pPassword_password_text', $pPassword_password_text, false); $smarty->assign ('tMessage', $tMessage, false); Modified: trunk/variables.inc.php =================================================================== --- trunk/variables.inc.php 2011-03-14 19:31:10 UTC (rev 1003) +++ trunk/variables.inc.php 2011-03-14 20:21:13 UTC (rev 1004) @@ -91,9 +91,6 @@ $pEdit_mailbox_password_text = " "; $pEdit_mailbox_quota_text = " "; $pEdit_mailbox_username_text = " "; -$pPassword_admin_text = " "; -$pPassword_password_current_text = " "; -$pPassword_password_text = " "; /* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ ?> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2011-03-28 23:15:18
|
Revision: 1019 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=1019&view=rev Author: christian_boltz Date: 2011-03-28 23:15:11 +0000 (Mon, 28 Mar 2011) Log Message: ----------- Renamed UserHandler to MailboxHandler to make clear it's about mailboxes (as discussed with GingerDog on IRC yesterday). Also renamed user to mailbox in the CLI. - renamed model/UserHandler.php to MailboxHandler.php - renamed scripts/shells/user.php to mailbox.php - replaced UserHandler / user with MailboxHandler / mailbox in various files - unrelated cleanup: deleted obsolete scripts/models-ext directory Modified Paths: -------------- trunk/scripts/postfixadmin-cli.php trunk/scripts/shells/alias.php trunk/users/login.php trunk/users/password.php trunk/xmlrpc.php Added Paths: ----------- trunk/model/MailboxHandler.php trunk/scripts/shells/mailbox.php Removed Paths: ------------- trunk/model/UserHandler.php trunk/scripts/models-ext/ trunk/scripts/shells/user.php Copied: trunk/model/MailboxHandler.php (from rev 1018, trunk/model/UserHandler.php) =================================================================== --- trunk/model/MailboxHandler.php (rev 0) +++ trunk/model/MailboxHandler.php 2011-03-28 23:15:11 UTC (rev 1019) @@ -0,0 +1,315 @@ +<?php +# $Id$ + +/** + * Simple class to represent a user. + */ +class MailboxHandler { + + protected $username = null; + + public $errormsg = array(); + + public function __construct($username) { + $this->username = strtolower($username); + } + + public function change_pass($old_password, $new_password) { + error_log('MailboxHandler->change_pass is deprecated. Please use MailboxHandler->change_pw!'); + return $this->change_pw($new_password, $old_password); + } + + /** + * @return boolean true on success; false on failure + * @param string $old_password + * @param string $new_passwords + * @param bool $match = true + * + * All passwords need to be plain text; they'll be hashed appropriately + * as per the configuration in config.inc.php + */ + public function change_pw($new_password, $old_password, $match = true) { + list(/*NULL*/,$domain) = explode('@', $username); + + $E_username = escape_string($this->username); + $table_mailbox = table_by_key('mailbox'); + + if ($match == true) { + $active = db_get_boolean(True); + $result = db_query("SELECT password FROM $table_mailbox WHERE username='$E_username' AND active='$active'"); + $result = db_assoc($result['result']); + + if (pacrypt($old_password, $result['password']) != $result['password']) { + db_log ($domain, 'edit_password', "MATCH FAILURE: " . $this->username); + $this->errormsg[] = 'Passwords do not match'; # TODO: make translatable + return false; + } + } + + $set = array( + 'password' => pacrypt($new_password) , + ); + + $result = db_update('mailbox', 'username', $this->username, $set ); + + if ($result != 1) { + db_log ($domain, 'edit_password', "FAILURE: " . $this->username); + $this->errormsg[] = Lang::read('pEdit_mailbox_result_error'); + return false; + } + + db_log ($domain, 'edit_password', $this->username); + return true; + } + + /** + * Attempt to log a user in. + * @param string $username + * @param string $password + * @return boolean true on successful login (i.e. password matches etc) + */ + public static function login($username, $password) { + $username = escape_string($username); + + $table_mailbox = table_by_key('mailbox'); + $active = db_get_boolean(True); + $query = "SELECT password FROM $table_mailbox WHERE username='$username' AND active='$active'"; + + $result = db_query ($query); + if ($result['rows'] == 1) + { + $row = db_array ($result['result']); + $crypt_password = pacrypt ($password, $row['password']); + + if($row['password'] == $crypt_password) { + return true; + } + } + return false; + } +/** + * Add mailbox + * @param password string password of account + * @param gen boolean + * @param name string + * + */ + public function add($password, $name = '', $quota = -999, $active = true, $mail = true ) { +# FIXME: default value of $quota (-999) is intentionally invalid. Add fallback to default quota. +# Solution: Invent an sub config class with additional informations about domain based configs like default qouta. +# FIXME: Should the parameters be optional at all? +# TODO: check if parameters are valid/allowed (quota?). +# TODO: most code should live in a separate function that can be used by add and edit. +# TODO: On the longer term, the web interface should also use this class. + +# TODO: copy/move all checks and validations from create-mailbox.php here + + $username = $this->username; + list($local_part,$domain) = explode ('@', $username); + + +#TODO: more self explaining language strings! + if(!check_mailbox ($domain)) { + $this->errormsg[] = Lang::read('pCreate_mailbox_username_text_error3'); + return false; + } + + # check if an alias with this name already exists + $result = db_query ("SELECT * FROM " . table_by_key('alias') . " WHERE address='" . escape_string($username) . "'"); + if ($result['rows'] == 1){ + $this->errormsg[] = Lang::read('pCreate_mailbox_username_text_error2'); + return false; + } + + $plain = $password; + $password = pacrypt ($password); + +# TODO: if we want to have the encryption method in the encrypted password string, it should be done in pacrypt(). No special handling here! +# if ( preg_match("/^dovecot:/", Config::read('encrypt')) ) { +# $split_method = preg_split ('/:/', Config::read('encrypt')); +# $method = strtoupper($split_method[1]); +# $password = '{' . $method . '}' . $password; +# } + +#TODO: 2nd clause should be the first for self explaining code. +#TODO: When calling config::Read with parameter we sould be right that read return false if the parameter isn't in our config file. + if(Config::read('maildir_name_hook') != 'NO' && function_exists(Config::read('maildir_name_hook')) ) { + $hook_func = $CONF['maildir_name_hook']; + $maildir = $hook_func ($fDomain, $fUsername); + } + elseif (Config::read('domain_path') == "YES") + { + if (Config::read('domain_in_mailbox') == "YES") + { + $maildir = $domain . "/" . $username . "/"; + } + else + { + $maildir = $domain . "/" . $local_part . "/"; + } + } + else + { + $maildir = $username . "/"; + } + + db_begin(); + + $active = db_get_boolean($active); + $quota = multiply_quota ($quota); + + $alias_data = array( + 'address' => $username, + 'goto' => $username, + 'domain' => $domain, + 'active' => $active, + ); + + $result = db_insert('alias', $alias_data); +#MARK: db_insert returns true/false?? + if ($result != 1) + { + $this->errormsg[] = Lang::read('pAlias_result_error') . "\n($username -> $username)\n"; + return false; + } + + $mailbox_data = array( + 'username' => $username, + 'password' => $password, + 'name' => $name, + 'maildir' => $maildir, + 'local_part' => $local_part, + 'quota' => $quota, + 'domain' => $domain, + 'active' => $active, + ); + $result = db_insert('mailbox', $mailbox_data); +#MARK: Same here! + if ($result != 1 || !mailbox_postcreation($username,$domain,$maildir, $quota)) { + $this->errormsg[] = Lang::read('pCreate_mailbox_result_error') . "\n($username)\n"; + db_rollback(); + return false; + } else { + db_commit(); + db_log ($domain, 'create_mailbox', $username); + + + if ($mail == true) + { + # TODO: move "send the mail" to a function + $fTo = $username; + $fFrom = Config::read('admin_email'); + $fSubject = Lang::read('pSendmail_subject_text'); + $fBody = Config::read('welcome_text'); + + if (!smtp_mail ($fTo, $fFrom, $fSubject, $fBody)) + { + $this->errormsg[] = Lang::read('pSendmail_result_error'); + return false; + } + } + + create_mailbox_subfolders($username,$plain); + + } + return true; + } + + + + + public function view() { + + $username = $this->username; + $table_mailbox = table_by_key('mailbox'); + +# TODO: check if DATE_FORMAT works in MySQL and PostgreSQL +# TODO: maybe a more fine-grained date format would be better for non-CLI usage + $result = db_query("SELECT username, name, maildir, quota, local_part, domain, DATE_FORMAT(created, '%d.%m.%y') AS created, DATE_FORMAT(modified, '%d.%m.%y') AS modified, active FROM $table_mailbox WHERE username='$username'"); + if ($result['rows'] != 0) { + $this->return = db_array($result['result']); + return true; + } + $this->errormsg = $result['error']; + return false; + } + + public function delete() { + $username = $this->username; + list(/*$local_part*/,$domain) = explode ('@', $username); + + $E_username = escape_string($username); + $E_domain = escape_string($domain); + +#TODO: At this level of table by key calls we should think about a solution in our query function and drupal like {mailbox} {alias}. +# Pseudocode for db_query etc. +# if {} in query then +# table_by_key( content between { and } ) +# else error + + $table_mailbox = table_by_key('mailbox'); + $table_alias = table_by_key('alias'); + $table_vacation = table_by_key('vacation'); + $table_vacation_notification = table_by_key('vacation_notification'); + + db_begin(); + +#TODO: ture/false replacement! + $error = 0; + + $result = db_query("SELECT * FROM $table_alias WHERE address = '$E_username' AND domain = '$domain'"); + if($result['rows'] == 1) { + $result = db_delete('alias', 'address', $username); + db_log ($domain, 'delete_alias', $username); + } else { + $this->errormsg[] = "no alias $username"; # todo: better message, make translatable + $error = 1; + } + + /* is there a mailbox? if do delete it from orbit; it's the only way to be sure */ + $result = db_query ("SELECT * FROM $table_mailbox WHERE username='$E_username' AND domain='$domain'"); + if ($result['rows'] == 1) + { + $result = db_delete('mailbox', 'username', $username); + $postdel_res=mailbox_postdeletion($username,$domain); + if ($result != 1 || !$postdel_res) + { + + $tMessage = Lang::read('pDelete_delete_error') . "$username ("; + if ($result['rows']!=1) # TODO: invalid test, $result is from db_delete and only contains the number of deleted rows + { + $tMessage.='mailbox'; + if (!$postdel_res) $tMessage.=', '; + $this->errormsg[] = "no mailbox $username"; # todo: better message, make translatable + $error = 1; + } + if (!$postdel_res) + { + $tMessage.='post-deletion'; + $this->errormsg[] = "post-deletion script failed"; # todo: better message, make translatable + $error = 1; + } + $this->errormsg[] = $tMessage.')'; + # TODO: does db_rollback(); make sense? Not sure because mailbox_postdeletion was already called (move the call checking the db_delete result?) + # TODO: maybe mailbox_postdeletion should be run after all queries, just before commit/rollback + $error = 1; +# return false; # TODO: does this make sense? Or should we still cleanup vacation and vacation_notification? + } + db_log ($domain, 'delete_mailbox', $username); + } else { + $this->errormsg[] = "no mailbox $username"; # TODO: better message, make translatable + $error = 1; + } + $result = db_query("SELECT * FROM $table_vacation WHERE email = '$E_username' AND domain = '$domain'"); + if($result['rows'] == 1) { + db_delete('vacation', 'email', $username); + db_delete('vacation_notification', 'on_vacation', $username); # TODO: delete vacation_notification independent of vacation? (in case of "forgotten" vacation_notification entries) + } + db_commit(); + if ($error != 0) return false; + return true; + } + +} + +/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ Deleted: trunk/model/UserHandler.php =================================================================== --- trunk/model/UserHandler.php 2011-03-24 13:00:23 UTC (rev 1018) +++ trunk/model/UserHandler.php 2011-03-28 23:15:11 UTC (rev 1019) @@ -1,315 +0,0 @@ -<?php -# $Id$ - -/** - * Simple class to represent a user. - */ -class UserHandler { - - protected $username = null; - - public $errormsg = array(); - - public function __construct($username) { - $this->username = strtolower($username); - } - - public function change_pass($old_password, $new_password) { - error_log('UserHandler->change_pass is deprecated. Please use UserHandler->change_pw!'); - return $this->change_pw($new_password, $old_password); - } - - /** - * @return boolean true on success; false on failure - * @param string $old_password - * @param string $new_passwords - * @param bool $match = true - * - * All passwords need to be plain text; they'll be hashed appropriately - * as per the configuration in config.inc.php - */ - public function change_pw($new_password, $old_password, $match = true) { - list(/*NULL*/,$domain) = explode('@', $username); - - $E_username = escape_string($this->username); - $table_mailbox = table_by_key('mailbox'); - - if ($match == true) { - $active = db_get_boolean(True); - $result = db_query("SELECT password FROM $table_mailbox WHERE username='$E_username' AND active='$active'"); - $result = db_assoc($result['result']); - - if (pacrypt($old_password, $result['password']) != $result['password']) { - db_log ($domain, 'edit_password', "MATCH FAILURE: " . $this->username); - $this->errormsg[] = 'Passwords do not match'; # TODO: make translatable - return false; - } - } - - $set = array( - 'password' => pacrypt($new_password) , - ); - - $result = db_update('mailbox', 'username', $this->username, $set ); - - if ($result != 1) { - db_log ($domain, 'edit_password', "FAILURE: " . $this->username); - $this->errormsg[] = Lang::read('pEdit_mailbox_result_error'); - return false; - } - - db_log ($domain, 'edit_password', $this->username); - return true; - } - - /** - * Attempt to log a user in. - * @param string $username - * @param string $password - * @return boolean true on successful login (i.e. password matches etc) - */ - public static function login($username, $password) { - $username = escape_string($username); - - $table_mailbox = table_by_key('mailbox'); - $active = db_get_boolean(True); - $query = "SELECT password FROM $table_mailbox WHERE username='$username' AND active='$active'"; - - $result = db_query ($query); - if ($result['rows'] == 1) - { - $row = db_array ($result['result']); - $crypt_password = pacrypt ($password, $row['password']); - - if($row['password'] == $crypt_password) { - return true; - } - } - return false; - } -/** - * Add mailbox - * @param password string password of account - * @param gen boolean - * @param name string - * - */ - public function add($password, $name = '', $quota = -999, $active = true, $mail = true ) { -# FIXME: default value of $quota (-999) is intentionally invalid. Add fallback to default quota. -# Solution: Invent an sub config class with additional informations about domain based configs like default qouta. -# FIXME: Should the parameters be optional at all? -# TODO: check if parameters are valid/allowed (quota?). -# TODO: most code should live in a separate function that can be used by add and edit. -# TODO: On the longer term, the web interface should also use this class. - -# TODO: copy/move all checks and validations from create-mailbox.php here - - $username = $this->username; - list($local_part,$domain) = explode ('@', $username); - - -#TODO: more self explaining language strings! - if(!check_mailbox ($domain)) { - $this->errormsg[] = Lang::read('pCreate_mailbox_username_text_error3'); - return false; - } - - # check if an alias with this name already exists - $result = db_query ("SELECT * FROM " . table_by_key('alias') . " WHERE address='" . escape_string($username) . "'"); - if ($result['rows'] == 1){ - $this->errormsg[] = Lang::read('pCreate_mailbox_username_text_error2'); - return false; - } - - $plain = $password; - $password = pacrypt ($password); - -# TODO: if we want to have the encryption method in the encrypted password string, it should be done in pacrypt(). No special handling here! -# if ( preg_match("/^dovecot:/", Config::read('encrypt')) ) { -# $split_method = preg_split ('/:/', Config::read('encrypt')); -# $method = strtoupper($split_method[1]); -# $password = '{' . $method . '}' . $password; -# } - -#TODO: 2nd clause should be the first for self explaining code. -#TODO: When calling config::Read with parameter we sould be right that read return false if the parameter isn't in our config file. - if(Config::read('maildir_name_hook') != 'NO' && function_exists(Config::read('maildir_name_hook')) ) { - $hook_func = $CONF['maildir_name_hook']; - $maildir = $hook_func ($fDomain, $fUsername); - } - elseif (Config::read('domain_path') == "YES") - { - if (Config::read('domain_in_mailbox') == "YES") - { - $maildir = $domain . "/" . $username . "/"; - } - else - { - $maildir = $domain . "/" . $local_part . "/"; - } - } - else - { - $maildir = $username . "/"; - } - - db_begin(); - - $active = db_get_boolean($active); - $quota = multiply_quota ($quota); - - $alias_data = array( - 'address' => $username, - 'goto' => $username, - 'domain' => $domain, - 'active' => $active, - ); - - $result = db_insert('alias', $alias_data); -#MARK: db_insert returns true/false?? - if ($result != 1) - { - $this->errormsg[] = Lang::read('pAlias_result_error') . "\n($username -> $username)\n"; - return false; - } - - $mailbox_data = array( - 'username' => $username, - 'password' => $password, - 'name' => $name, - 'maildir' => $maildir, - 'local_part' => $local_part, - 'quota' => $quota, - 'domain' => $domain, - 'active' => $active, - ); - $result = db_insert('mailbox', $mailbox_data); -#MARK: Same here! - if ($result != 1 || !mailbox_postcreation($username,$domain,$maildir, $quota)) { - $this->errormsg[] = Lang::read('pCreate_mailbox_result_error') . "\n($username)\n"; - db_rollback(); - return false; - } else { - db_commit(); - db_log ($domain, 'create_mailbox', $username); - - - if ($mail == true) - { - # TODO: move "send the mail" to a function - $fTo = $username; - $fFrom = Config::read('admin_email'); - $fSubject = Lang::read('pSendmail_subject_text'); - $fBody = Config::read('welcome_text'); - - if (!smtp_mail ($fTo, $fFrom, $fSubject, $fBody)) - { - $this->errormsg[] = Lang::read('pSendmail_result_error'); - return false; - } - } - - create_mailbox_subfolders($username,$plain); - - } - return true; - } - - - - - public function view() { - - $username = $this->username; - $table_mailbox = table_by_key('mailbox'); - -# TODO: check if DATE_FORMAT works in MySQL and PostgreSQL -# TODO: maybe a more fine-grained date format would be better for non-CLI usage - $result = db_query("SELECT username, name, maildir, quota, local_part, domain, DATE_FORMAT(created, '%d.%m.%y') AS created, DATE_FORMAT(modified, '%d.%m.%y') AS modified, active FROM $table_mailbox WHERE username='$username'"); - if ($result['rows'] != 0) { - $this->return = db_array($result['result']); - return true; - } - $this->errormsg = $result['error']; - return false; - } - - public function delete() { - $username = $this->username; - list(/*$local_part*/,$domain) = explode ('@', $username); - - $E_username = escape_string($username); - $E_domain = escape_string($domain); - -#TODO: At this level of table by key calls we should think about a solution in our query function and drupal like {mailbox} {alias}. -# Pseudocode for db_query etc. -# if {} in query then -# table_by_key( content between { and } ) -# else error - - $table_mailbox = table_by_key('mailbox'); - $table_alias = table_by_key('alias'); - $table_vacation = table_by_key('vacation'); - $table_vacation_notification = table_by_key('vacation_notification'); - - db_begin(); - -#TODO: ture/false replacement! - $error = 0; - - $result = db_query("SELECT * FROM $table_alias WHERE address = '$E_username' AND domain = '$domain'"); - if($result['rows'] == 1) { - $result = db_delete('alias', 'address', $username); - db_log ($domain, 'delete_alias', $username); - } else { - $this->errormsg[] = "no alias $username"; # todo: better message, make translatable - $error = 1; - } - - /* is there a mailbox? if do delete it from orbit; it's the only way to be sure */ - $result = db_query ("SELECT * FROM $table_mailbox WHERE username='$E_username' AND domain='$domain'"); - if ($result['rows'] == 1) - { - $result = db_delete('mailbox', 'username', $username); - $postdel_res=mailbox_postdeletion($username,$domain); - if ($result != 1 || !$postdel_res) - { - - $tMessage = Lang::read('pDelete_delete_error') . "$username ("; - if ($result['rows']!=1) # TODO: invalid test, $result is from db_delete and only contains the number of deleted rows - { - $tMessage.='mailbox'; - if (!$postdel_res) $tMessage.=', '; - $this->errormsg[] = "no mailbox $username"; # todo: better message, make translatable - $error = 1; - } - if (!$postdel_res) - { - $tMessage.='post-deletion'; - $this->errormsg[] = "post-deletion script failed"; # todo: better message, make translatable - $error = 1; - } - $this->errormsg[] = $tMessage.')'; - # TODO: does db_rollback(); make sense? Not sure because mailbox_postdeletion was already called (move the call checking the db_delete result?) - # TODO: maybe mailbox_postdeletion should be run after all queries, just before commit/rollback - $error = 1; -# return false; # TODO: does this make sense? Or should we still cleanup vacation and vacation_notification? - } - db_log ($domain, 'delete_mailbox', $username); - } else { - $this->errormsg[] = "no mailbox $username"; # TODO: better message, make translatable - $error = 1; - } - $result = db_query("SELECT * FROM $table_vacation WHERE email = '$E_username' AND domain = '$domain'"); - if($result['rows'] == 1) { - db_delete('vacation', 'email', $username); - db_delete('vacation_notification', 'on_vacation', $username); # TODO: delete vacation_notification independent of vacation? (in case of "forgotten" vacation_notification entries) - } - db_commit(); - if ($error != 0) return false; - return true; - } - -} - -/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ Modified: trunk/scripts/postfixadmin-cli.php =================================================================== --- trunk/scripts/postfixadmin-cli.php 2011-03-24 13:00:23 UTC (rev 1018) +++ trunk/scripts/postfixadmin-cli.php 2011-03-28 23:15:11 UTC (rev 1019) @@ -533,11 +533,11 @@ return array( - 'user' => array( - 'add'=> 'Adds a new user with mailbox.', - 'update'=> 'Updates a user.', - 'delete' => 'Deletes a user.', - 'pw' => 'Changes the PW for a user.', + 'mailbox' => array( + 'add'=> 'Adds a new mailbox.', + 'update'=> 'Updates a mailbox.', + 'delete' => 'Deletes a mailbox.', + 'pw' => 'Changes the PW for a mailbox.', ), 'alias' => array( 'add' => 'Adds a new alias.', Modified: trunk/scripts/shells/alias.php =================================================================== --- trunk/scripts/shells/alias.php 2011-03-24 13:00:23 UTC (rev 1018) +++ trunk/scripts/shells/alias.php 2011-03-28 23:15:11 UTC (rev 1019) @@ -222,8 +222,8 @@ */ function __handle($address) { -### TODO: don't use UserHandler, instead add delete function to AliasHandler (if not already there) -### using UserHandler for deleting aliases is like taking a sledgehammer to crack a nut +### TODO: don't use MailboxHandler, instead add delete function to AliasHandler (if not already there) +### using MailboxHandler for deleting aliases is like taking a sledgehammer to crack a nut ### (and will probably cause some error messages that I added today ;-) ### Implemented check it please! Copied: trunk/scripts/shells/mailbox.php (from rev 1018, trunk/scripts/shells/user.php) =================================================================== --- trunk/scripts/shells/mailbox.php (rev 0) +++ trunk/scripts/shells/mailbox.php 2011-03-28 23:15:11 UTC (rev 1019) @@ -0,0 +1,504 @@ +<?php + + +class PostfixAdminMailbox extends Shell { + +/** + * Contains tasks to load and instantiate + * + * @var array + * @access public + */ + var $tasks = array('Add', 'Update', 'Delete', 'Password', 'View'); + + + + +/** + * Show help for this shell. + * + * @access public + */ + function help() { + $head = "Usage: postfixadmin-cli mailbox <task> [<address>] [] [-m <method>]\n"; + $head .= "-----------------------------------------------\n"; + $head .= "Parameters:\n\n"; + + $commands = array( + 'task' => "\t<task>\n" . + "\t\tAvailable values:\n\n". + "\t\t".sprintf("%-20s %s", "view: ", "View an existing mailbox.")."\n". + "\t\t".sprintf("%-20s %s", "add: ", "Adds a new mailbox.")."\n". + "\t\t".sprintf("%-20s %s", "update: ", "Updates a mailbox.")."\n". + "\t\t".sprintf("%-20s %s", "delete: ", "Deletes a mailbox")."\n". + "\t\t".sprintf("%-20s %s", "password: ", "Changes the PW for a mailbox.")."\n", + 'address' => "\t[<address>]\n" . + "\t\tA CakePHP core class name (e.g: Component, HtmlHelper).\n", + ); + + $this->out($head); + if (!isset($this->args[1])) { + foreach ($commands as $cmd) { + $this->out("{$cmd}\n\n"); + } + } elseif (isset($commands[low($this->args[1])])) { + $this->out($commands[low($this->args[1])] . "\n\n"); + } else { + $this->out("Command '" . $this->args[1] . "' not found"); + } + } + + +} + +class AddTask extends Shell { +/** + * Execution method always used for tasks + * + * @access public + */ + + # Find one function that matches all executes in shell childclasses. + # Eventually getopts like call in __handle?? + + + function execute() { + if (empty($this->args)) { + $this->__interactive(); + } + + if (!empty($this->args[0])) { + if (!empty($this->params['g'])) { + $this->__handle($this->args[0], NULL, true, $this->args[1], $this->args[2]); + } else { + $this->__handle($this->args[0], $this->args[1], false, $this->args[2], $this->args[3]); + } + } + } +/** + * Interactive + * + * @access private + */ + function __interactive() { + while(0==0) { + $question = "Enter address:"; + $address = $this->in($question); + + if(preg_match("/^((?:(?:(?:[a-zA-Z0-9][\.\-\+_]?)*)[a-zA-Z0-9])+)\@((?:(?:(?:[a-zA-Z0-9][\.\-_]?){0,62})[a-zA-Z0-9])+)\.([a-zA-Z0-9]{2,6})$/", $address) == 1) + break; + + $this->err("Invalid emailaddress"); + + } + $question = "Do you want to generate a random password?"; + $random = $this->in($question, array('y','n')); + + $random == 'y' ? $random = true : $random = false; + + + $password = NULL; + if ($random == false) { + $question = "Enter the password:"; + $password = $this->in($question); + } + + $question = "Enter name:"; + $name = $this->in($question); + + $question = "Enter quota (MB):"; + $quota = $this->in($question); + + $question1[] = "Do you reallywant to add mailbox with this options?"; + $question1[] = "Address: \t$address"; + if($random) + $question1[] = "Random Password."; + else + $question1[] = "Password: \t$password"; + $question1[] = "Name: \t$name"; + $question1[] = "Quota: \t$quota MB"; + $create = $this->in(join("\n", $question1), array('y','n')); + + $create == 'y' ? $random = true : $random = false; + + if ($create) + $this->__handle($address, $password, $random, $name, $quota); + } + +/** + * Interactive + * + * @access private + */ + function __handle($address, $password, $gen = false, $name = '', $quota = 0) { + $pw = NULL; + if ($gen) { + $pw = generate_password(); + } elseif ($password != NULL) { + $pw = $password; + } + + $handler = new MailboxHandler($address); + $return = $handler->add($pw, $name, $quota, true, true ); +#CHECK! +if ( !empty($this->params['q']) ) { + + if( $return == false ) { + $this->_stop(1); + } +} else { + if( $return == false ) { +### When $this->error is used, $this->_stop is useless. +### Changed $this->error to stop with level 1. +### Eventually param q check in $this->error is better!! !Important! + $this->error("Error:", $handler->errormsg); + } else { + $this->out(""); + if ($name != '') + $this->out("Mailbox for $name generated."); + else + $this->out("Mailbox generated."); + $this->hr(); + $this->out(sprintf('Mailaddress: %-20s', $address)); + $this->out(sprintf('Password: %-20s',$pw)); + $this->out(sprintf('Quota: %-20sMB',$quota)); + $this->hr(); + } +#CHECK! +} + return; + } +/** + * Displays help contents + * + * @access public + */ + function help() { + $this->hr(); + $this->out("Usage: postfixadmin-cli mailbox add <address> [<password>] <name> <quota> [-g]"); + $this->hr(); + $this->out('Commands:'); + $this->out("\n\tadd\n\t\tAdds mailbox in interactive mode."); + $this->out("\n\tadd <address> [<password>] [-g] <name> <quota>\n\t\tAdds mailbox for <address> with password <password> of if -g with rand pw. <quota> in MB."); + $this->out(""); + $this->_stop(); + } + +} +class UpdateTask extends Shell { +/** + * Execution method always used for tasks + * + * @access public + */ + function execute() { + if (empty($this->args)) { + $this->help(); + //$this->__interactive(); + } + + if (!empty($this->args[0])) { + $this->help(); + } + } +/** + * Interactive + * + * @access private + */ + function __interactive() { + + } +/** + * Displays help contents + * + * @access public + */ + function help() { + $this->hr(); + $this->out("Not Implemented yet! If you want to change a password use the password command."); + /*$this->out("Usage: postfixadmin-cli mailbox update <args>"); + $this->hr(); + $this->out('Commands:'); + $this->out("\n\tmodel\n\t\tbakes model in interactive mode."); + $this->out("\n\tmodel <name>\n\t\tbakes model file with no associations or validation"); + $this->out("");*/ + $this->_stop(); + } + +} +class DeleteTask extends Shell { +/** + * Execution method always used for tasks + * + * @access public + */ + function execute() { + + if (empty($this->args)) { + $this->__interactive(); + } + + if (!empty($this->args[0])) { + $output = $this->__handle($this->args[0]); + $this->out($output); + + } + } +/** + * Interactive + * + * @access private + */ + function __interactive() { + $question[] = "Which Address do you want to delete?"; + + $address = $this->in(join("\n", $question)); + + + $question = "Do you really want to delete mailbox of '$address'?"; + + $create = $this->in($question, array('y','n')); + + $create == 'y' ? $random = true : $random = false; + + if ($create) + $this->__handle($address); + + } + /** + * Interactive + * + * @access private + */ + function __handle($address) { + + + $handler = new MailboxHandler($address); + $status = $handler->delete(); + if ( ! $status ) { + $this->error("Error:", join("\n", $handler->errormsg)); + + } else { + $this->out("Mailbox of '$address' was deleted."); + } + return; + + } +/** + * Displays help contents + * + * @access public + */ + function help() { + $this->hr(); + $this->out("Usage: postfixadmin-cli mailbox model <arg1>"); + $this->hr(); + $this->out('Commands:'); + $this->out("\n\tdelete\n\t\tdeletes mailbox in interactive mode."); + $this->out("\n\tdelete <address>\n\t\tdeletes mailbox with address <address>"); + $this->out(""); + $this->_stop(); + } + +} +class PasswordTask extends Shell { +/** + * Execution method always used for tasks + * + * @access public + */ + function execute() { + $random = false; + if (empty($this->args)) { + $this->__interactive(); + } + + if (!empty($this->args[0])) { + + $address = $this->args[0]; + + if (isset($this->params['g']) && $this->params['g'] == true ) { + $random = true; + $password = NULL; + } elseif (isset($this->args[1]) && strlen($this->args[1]) > 8) { # TODO use $CONF['min_password_length'] + $password = $this->args[1]; + } else { + + $this->Dispatch->stderr('Missing <newpw> or -g. Falling back to interactive mode.'); + $this->__interactive(); + } + $this->__handle($address, $password, $random); + + + } + } +/** + * Interactive + * + * @access private + */ + function __interactive() { + + while(0==0) { + $question = "Which address' password do you want to change?"; + $address = $this->in($question); + + if(preg_match("/^((?:(?:(?:[a-zA-Z0-9][\.\-\+_]?)*)[a-zA-Z0-9])+)\@((?:(?:(?:[a-zA-Z0-9][\.\-_]?){0,62})[a-zA-Z0-9])+)\.([a-zA-Z0-9]{2,6})$/", $address) == 1) + break; + + $this->err("Invalid emailaddress"); + + } + + + $question2[] = "Do you want to change the password?"; + $question2[] = "Are you really sure?"; + $sure = $this->in(join("\n", $question2), array('y','n')); + + + if ($sure == 'n' ) { + $this->out('You\'re not sure.'); + $this->_stop(); + } + + $question = "Do you want to generate a random password?"; + $random = $this->in($question, array('y','n')); + + $random == 'y' ? $random = true : $random = false; + + + $password = NULL; + if ($random == false) { + $question = "Pleas enter the new password?"; + $password = $this->in($question); + } + + $this->__handle($address, $password, $random); + + + + + } + /** + * Interactive + * + * @access private + */ + function __handle($address, $password = NULL, $random = false) { + + if ($random == true) { + $password = generate_password(); + } + if ($password != NULL) { + $handler = new MailboxHandler($address); + + if ( ! $handler->change_pw($password, NULL, false) ){ + $this->error("Change Password",join("\n", $handler->errormsg)); + } + } + + $this->out(""); + $this->out("Password updated."); + $this->hr(); + $this->out(sprintf('The Mail address is %20s', $address)); + $this->out(sprintf('The new password is %20s',$password)); + $this->hr(); + + return ; + } +/** + * Displays help contents + * + * @access public + */ + function help() { + $this->out(""); + $this->hr(); + $this->out("Usage: postfixadmin-cli mailbox password <address> [<newpw>] [-g]"); + $this->hr(); + $this->out('Commands:'); + $this->out("\n\tpassword\n\t\tchanges the password in interactive mode."); + $this->out("\n\tpassword <address> [<newpw>] [-g]\n\t\tchanges the password to <newpw> or if -g genereate a new pw for <address>"); + $this->out(""); + $this->_stop(); + } + +} +class ViewTask extends Shell { +/** + * Execution method always used for tasks + * + * @access public + */ + function execute() { + + if (empty($this->args)) { + $this->__interactive(); + } + + if (!empty($this->args[0])) { + $output = $this->__handle($this->args[0]); + $this->out($output); + + } + } +/** + * Interactive + * + * @access private + */ + function __interactive() { + $question[] = "Which Address do you want to view?"; + + $address = $this->in(join("\n", $question)); + + $this->__handle($address); + + + + } + /** + * Interactive + * + * @access private + */ + function __handle($address) { + + + $handler = new MailboxHandler($address); + if ( ! $handler->view() ) { + $this->error("Not Found!", "The mailbox you have searched could not be found."); + } +# TODO: offer alternative output formats (based on parameter) +# TODO: whitespace fix - 8 lines below + $result = $handler->return; + $this->out(sprintf("Entries for: %s\n", $address)); + $this->out(""); + $this->out(sprintf("+%'-25s+%'-15s+%'-10s+%'-20s+%'-8s+%'-8s+%'-6s+",'','','','','','','')); + $this->out(sprintf('|%25s|%15s|%10s|%20s|%8s|%8s|%6s|', 'Address', 'Name', 'Quota', 'Dir', 'Created', 'Modified', 'Active')); + $this->out(sprintf("+%'-25s+%'-15s+%'-10s+%'-20s+%'-8s+%'-8s+%'-6s+",'','','','','','','')); + $this->out(sprintf('|%25s|%15s|%10s|%20s|%8s|%8s|%6s|', $result['username'], $result['name'], $result['quota'], $result['maildir'], $result['created'], $result['modified'], $result['active'])); + $this->out(sprintf("+%'-25s+%'-15s+%'-10s+%'-20s+%'-8s+%'-8s+%'-6s+",'','','','','','','')); + + return; + + } +/** + * Displays help contents + * + * @access public + */ + function help() { + $this->out(""); + $this->hr(); + $this->out("Usage: postfixadmin-cli mailbox view <address>"); + $this->hr(); + $this->out('Commands:'); + $this->out("\n\tview\n\t\tView mailbox. Select address in interactive mode."); + $this->out("\n\tview <address>\n\t\tView mailbox with address <address>"); + $this->out(""); + $this->_stop(); + } + +} Deleted: trunk/scripts/shells/user.php =================================================================== --- trunk/scripts/shells/user.php 2011-03-24 13:00:23 UTC (rev 1018) +++ trunk/scripts/shells/user.php 2011-03-28 23:15:11 UTC (rev 1019) @@ -1,504 +0,0 @@ -<?php - - -class PostfixAdminUser extends Shell { - -/** - * Contains tasks to load and instantiate - * - * @var array - * @access public - */ - var $tasks = array('Add', 'Update', 'Delete', 'Password', 'View'); - - - - -/** - * Show help for this shell. - * - * @access public - */ - function help() { - $head = "Usage: postfixadmin-cli user <task> [<address>] [] [-m <method>]\n"; - $head .= "-----------------------------------------------\n"; - $head .= "Parameters:\n\n"; - - $commands = array( - 'task' => "\t<task>\n" . - "\t\tAvailable values:\n\n". - "\t\t".sprintf("%-20s %s", "view: ", "View an existing user.")."\n". - "\t\t".sprintf("%-20s %s", "add: ", "Adds a new user with mailbox.")."\n". - "\t\t".sprintf("%-20s %s", "update: ", "Updates a user.")."\n". - "\t\t".sprintf("%-20s %s", "delete: ", "Deletes a user")."\n". - "\t\t".sprintf("%-20s %s", "password: ", "Changes the PW for a user.")."\n", - 'address' => "\t[<address>]\n" . - "\t\tA CakePHP core class name (e.g: Component, HtmlHelper).\n", - ); - - $this->out($head); - if (!isset($this->args[1])) { - foreach ($commands as $cmd) { - $this->out("{$cmd}\n\n"); - } - } elseif (isset($commands[low($this->args[1])])) { - $this->out($commands[low($this->args[1])] . "\n\n"); - } else { - $this->out("Command '" . $this->args[1] . "' not found"); - } - } - - -} - -class AddTask extends Shell { -/** - * Execution method always used for tasks - * - * @access public - */ - - # Find one function that matches all executes in shell childclasses. - # Eventually getopts like call in __handle?? - - - function execute() { - if (empty($this->args)) { - $this->__interactive(); - } - - if (!empty($this->args[0])) { - if (!empty($this->params['g'])) { - $this->__handle($this->args[0], NULL, true, $this->args[1], $this->args[2]); - } else { - $this->__handle($this->args[0], $this->args[1], false, $this->args[2], $this->args[3]); - } - } - } -/** - * Interactive - * - * @access private - */ - function __interactive() { - while(0==0) { - $question = "Enter address:"; - $address = $this->in($question); - - if(preg_match("/^((?:(?:(?:[a-zA-Z0-9][\.\-\+_]?)*)[a-zA-Z0-9])+)\@((?:(?:(?:[a-zA-Z0-9][\.\-_]?){0,62})[a-zA-Z0-9])+)\.([a-zA-Z0-9]{2,6})$/", $address) == 1) - break; - - $this->err("Invalid emailaddress"); - - } - $question = "Do you want to generate a random password?"; - $random = $this->in($question, array('y','n')); - - $random == 'y' ? $random = true : $random = false; - - - $password = NULL; - if ($random == false) { - $question = "Enter the password:"; - $password = $this->in($question); - } - - $question = "Enter name:"; - $name = $this->in($question); - - $question = "Enter quota (MB):"; - $quota = $this->in($question); - - $question1[] = "Do you reallywant to add mailbox with this options?"; - $question1[] = "Address: \t$address"; - if($random) - $question1[] = "Random Password."; - else - $question1[] = "Password: \t$password"; - $question1[] = "Name: \t$name"; - $question1[] = "Quota: \t$quota MB"; - $create = $this->in(join("\n", $question1), array('y','n')); - - $create == 'y' ? $random = true : $random = false; - - if ($create) - $this->__handle($address, $password, $random, $name, $quota); - } - -/** - * Interactive - * - * @access private - */ - function __handle($address, $password, $gen = false, $name = '', $quota = 0) { - $pw = NULL; - if ($gen) { - $pw = generate_password(); - } elseif ($password != NULL) { - $pw = $password; - } - - $handler = new UserHandler($address); - $return = $handler->add($pw, $name, $quota, true, true ); -#CHECK! -if ( !empty($this->params['q']) ) { - - if( $return == false ) { - $this->_stop(1); - } -} else { - if( $return == false ) { -### When $this->error is used, $this->_stop is useless. -### Changed $this->error to stop with level 1. -### Eventually param q check in $this->error is better!! !Important! - $this->error("Error:", $handler->errormsg); - } else { - $this->out(""); - if ($name != '') - $this->out("Mailbox for $name generated."); - else - $this->out("Mailbox generated."); - $this->hr(); - $this->out(sprintf('Mailaddress: %-20s', $address)); - $this->out(sprintf('Password: %-20s',$pw)); - $this->out(sprintf('Quota: %-20sMB',$quota)); - $this->hr(); - } -#CHECK! -} - return; - } -/** - * Displays help contents - * - * @access public - */ - function help() { - $this->hr(); - $this->out("Usage: postfixadmin-cli user add <address> [<password>] <name> <quota> [-g]"); - $this->hr(); - $this->out('Commands:'); - $this->out("\n\tadd\n\t\tAdds mailbox in interactive mode."); - $this->out("\n\tadd <address> [<password>] [-g] <name> <quota>\n\t\tAdds mailbox for <address> with password <password> of if -g with rand pw. <quota> in MB."); - $this->out(""); - $this->_stop(); - } - -} -class UpdateTask extends Shell { -/** - * Execution method always used for tasks - * - * @access public - */ - function execute() { - if (empty($this->args)) { - $this->help(); - //$this->__interactive(); - } - - if (!empty($this->args[0])) { - $this->help(); - } - } -/** - * Interactive - * - * @access private - */ - function __interactive() { - - } -/** - * Displays help contents - * - * @access public - */ - function help() { - $this->hr(); - $this->out("Not Implemented yet! If you want to change a password use the password command."); - /*$this->out("Usage: postfixadmin-cli user update <args>"); - $this->hr(); - $this->out('Commands:'); - $this->out("\n\tmodel\n\t\tbakes model in interactive mode."); - $this->out("\n\tmodel <name>\n\t\tbakes model file with no associations or validation"); - $this->out("");*/ - $this->_stop(); - } - -} -class DeleteTask extends Shell { -/** - * Execution method always used for tasks - * - * @access public - */ - function execute() { - - if (empty($this->args)) { - $this->__interactive(); - } - - if (!empty($this->args[0])) { - $output = $this->__handle($this->args[0]); - $this->out($output); - - } - } -/** - * Interactive - * - * @access private - */ - function __interactive() { - $question[] = "Which Address do you want to delete?"; - - $address = $this->in(join("\n", $question)); - - - $question = "Do you really want to delete mailbox of '$address'?"; - - $create = $this->in($question, array('y','n')); - - $create == 'y' ? $random = true : $random = false; - - if ($create) - $this->__handle($address); - - } - /** - * Interactive - * - * @access private - */ - function __handle($address) { - - - $handler = new UserHandler($address); - $status = $handler->delete(); - if ( ! $status ) { - $this->error("Error:", join("\n", $handler->errormsg)); - - } else { - $this->out("Mailbox of '$address' was deleted."); - } - return; - - } -/** - * Displays help contents - * - * @access public - */ - function help() { - $this->hr(); - $this->out("Usage: postfixadmin-cli user model <arg1>"); - $this->hr(); - $this->out('Commands:'); - $this->out("\n\tdelete\n\t\tdeletes mailbox in interactive mode."); - $this->out("\n\tdelete <address>\n\t\tdeletes mailbox with address <address>"); - $this->out(""); - $this->_stop(); - } - -} -class PasswordTask extends Shell { -/** - * Execution method always used for tasks - * - * @access public - */ - function execute() { - $random = false; - if (empty($this->args)) { - $this->__interactive(); - } - - if (!empty($this->args[0])) { - - $address = $this->args[0]; - - if (isset($this->params['g']) && $this->params['g'] == true ) { - $random = true; - $password = NULL; - } elseif (isset($this->args[1]) && strlen($this->args[1]) > 8) { # TODO use $CONF['min_password_length'] - $password = $this->args[1]; - } else { - - $this->Dispatch->stderr('Missing <newpw> or -g. Falling back to interactive mode.'); - $this->__interactive(); - } - $this->__handle($address, $password, $random); - - - } - } -/** - * Interactive - * - * @access private - */ - function __interactive() { - - while(0==0) { - $question = "Which address' password do you want to change?"; - $address = $this->in($question); - - if(preg_match("/^((?:(?:(?:[a-zA-Z0-9][\.\-\+_]?)*)[a-zA-Z0-9])+)\@((?:(?:(?:[a-zA-Z0-9][\.\-_]?){0,62})[a-zA-Z0-9])+)\.([a-zA-Z0-9]{2,6})$/", $address) == 1) - break; - - $this->err("Invalid emailaddress"); - - } - - - $question2[] = "Do you want to change the password?"; - $question2[] = "Are you really sure?"; - $sure = $this->in(join("\n", $question2), array('y','n')); - - - if ($sure == 'n' ) { - $this->out('You\'re not sure.'); - $this->_stop(); - } - - $question = "Do you want to generate a random password?"; - $random = $this->in($question, array('y','n')); - - $random == 'y' ? $random = true : $random = false; - - - $password = NULL; - if ($random == false) { - $question = "Pleas enter the new password?"; - $password = $this->in($question); - } - - $this->__handle($address, $password, $random); - - - - - } - /** - * Interactive - * - * @access private - */ - function __handle($address, $password = NULL, $random = false) { - - if ($random == true) { - $password = generate_password(); - } - if ($password != NULL) { - $handler = new UserHandler($address); - - if ( ! $handler->change_pw($password, NULL, false) ){ - $this->error("Change Password",join("\n", $handler->errormsg)); - } - } - - $this->out(""); - $this->out("Password updated."); - $this->hr(); - $this->out(sprintf('The Mail address is %20s', $address)); - $this->out(sprintf('The new password is %20s',$password)); - $this->hr(); - - return ; - } -/** - * Displays help contents - * - * @access public - */ - function help() { - $this->out(""); - $this->hr(); - $this->out("Usage: postfixadmin-cli user password <address> [<newpw>] [-g]"); - $this->hr(); - $this->out('Commands:'); - ... [truncated message content] |
From: <chr...@us...> - 2011-04-09 22:09:43
|
Revision: 1021 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=1021&view=rev Author: christian_boltz Date: 2011-04-09 22:09:37 +0000 (Sat, 09 Apr 2011) Log Message: ----------- Remove usage of $CONF['postfix_admin_url'] in various Location: headers to avoid problems with wrong values of $CONF['postfix_admin_url']. https://sourceforge.net/tracker/?func=detail&atid=937964&aid=3039042&group_id=191583 contains the technical details and reasons. Note: $CONF['postfix_admin_url'] is still used at some places that are a bit harder to change. Modified Paths: -------------- trunk/backup.php trunk/broadcast-message.php trunk/create-alias-domain.php trunk/edit-vacation.php trunk/functions.inc.php trunk/sendmail.php trunk/users/vacation.php Modified: trunk/backup.php =================================================================== --- trunk/backup.php 2011-04-03 22:14:58 UTC (rev 1020) +++ trunk/backup.php 2011-04-09 22:09:37 UTC (rev 1021) @@ -25,7 +25,7 @@ authentication_require_role('global-admin'); -(($CONF['backup'] == 'NO') ? header("Location: " . $CONF['postfix_admin_url'] . "/main.php") && exit : '1'); +(($CONF['backup'] == 'NO') ? header("Location: main.php") && exit : '1'); // TODO: make backup supported for postgres if ('pgsql'==$CONF['database_type']) Modified: trunk/broadcast-message.php =================================================================== --- trunk/broadcast-message.php 2011-04-03 22:14:58 UTC (rev 1020) +++ trunk/broadcast-message.php 2011-04-09 22:09:37 UTC (rev 1021) @@ -31,7 +31,7 @@ authentication_require_role('global-admin'); if ($CONF['sendmail'] != 'YES') { - header("Location: " . $CONF['postfix_admin_url'] . "/main.php"); + header("Location: main.php"); exit; } Modified: trunk/create-alias-domain.php =================================================================== --- trunk/create-alias-domain.php 2011-04-03 22:14:58 UTC (rev 1020) +++ trunk/create-alias-domain.php 2011-04-09 22:09:37 UTC (rev 1021) @@ -34,7 +34,7 @@ authentication_require_role('admin'); if (!boolconf('alias_domain')) { - header("Location: " . $CONF['postfix_admin_url'] . "/main.php"); + header("Location: main.php"); exit; } @@ -128,7 +128,7 @@ flash_info($PALANG['pCreate_alias_domain_success']); # we would have to update the list of domains available for aliasing. Doing a redirect is easier. - header("Location: " . $CONF['postfix_admin_url'] . "/create-alias-domain.php"); + header("Location: create-alias-domain.php"); exit; } } Modified: trunk/edit-vacation.php =================================================================== --- trunk/edit-vacation.php 2011-04-03 22:14:58 UTC (rev 1020) +++ trunk/edit-vacation.php 2011-04-09 22:09:37 UTC (rev 1021) @@ -38,7 +38,7 @@ require_once('common.php'); if($CONF['vacation'] == 'NO') { - header("Location: " . $CONF['postfix_admin_url'] . "/list-virtual.php"); + header("Location: list-virtual.php"); exit(0); } @@ -60,7 +60,7 @@ $vacation_goto = preg_replace('/@/', '#', $fUsername); $vacation_goto = $vacation_goto . '@' . $vacation_domain; -$fCanceltarget = $CONF['postfix_admin_url'] . "/list-virtual.php?domain=$fDomain"; +$fCanceltarget = "list-virtual.php?domain=$fDomain"; if ($_SERVER['REQUEST_METHOD'] == "GET") { Modified: trunk/functions.inc.php =================================================================== --- trunk/functions.inc.php 2011-04-03 22:14:58 UTC (rev 1020) +++ trunk/functions.inc.php 2011-04-09 22:09:37 UTC (rev 1021) @@ -33,7 +33,7 @@ } if (!isset($_SESSION['sessid'])) { - header ("Location: " . $CONF['postfix_admin_url'] . "/login.php"); + header ("Location: login.php"); exit(0); } $SESSID_USERNAME = $_SESSION['sessid']['username']; Modified: trunk/sendmail.php =================================================================== --- trunk/sendmail.php 2011-04-03 22:14:58 UTC (rev 1020) +++ trunk/sendmail.php 2011-04-09 22:09:37 UTC (rev 1021) @@ -34,7 +34,7 @@ authentication_require_role('admin'); -(($CONF['sendmail'] == 'NO') ? header("Location: " . $CONF['postfix_admin_url'] . "/main.php") && exit : '1'); +(($CONF['sendmail'] == 'NO') ? header("Location: main.php") && exit : '1'); $SESSID_USERNAME = authentication_get_username(); Modified: trunk/users/vacation.php =================================================================== --- trunk/users/vacation.php 2011-04-03 22:14:58 UTC (rev 1020) +++ trunk/users/vacation.php 2011-04-09 22:09:37 UTC (rev 1021) @@ -38,7 +38,7 @@ // is vacation support enabled in $CONF ? if($CONF['vacation'] == 'NO') { - header("Location: " . $CONF['postfix_admin_url'] . "/users/main.php"); + header("Location: main.php"); exit(0); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2011-04-10 18:27:01
|
Revision: 1031 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=1031&view=rev Author: christian_boltz Date: 2011-04-10 18:26:52 +0000 (Sun, 10 Apr 2011) Log Message: ----------- languages/*: several text changes to be more clear (see the en.lang diff for details) This commit implements most changes from Chris H. (dharmachris@SF) posted at https://sourceforge.net/tracker/?func=detail&aid=3186094&group_id=191583&atid=937964 Related template changes: templates/admin_edit-admin.tpl: - use PALANG.save instead of PALANG.pAdminEdit_admin_button templates/users_edit-alias.tpl, templates/edit-alias.tpl: - split PALANG.pEdit_alias_welcome - second half is now PALANG.pEdit_alias_help (this avoids the <br /> in the text) - use PALANG.save instead of PALANG.pEdit_alias_button templates/edit-mailbox.tpl: - use PALANG.save instead of $PALANG.pEdit_mailbox_button templates/admin_edit-domain.tpl: - use PALANG.save instead of $PALANG.pAdminEdit_domain_button Modified Paths: -------------- trunk/languages/bg.lang trunk/languages/ca.lang trunk/languages/cn.lang trunk/languages/cs.lang trunk/languages/da.lang trunk/languages/de.lang trunk/languages/en.lang trunk/languages/es.lang trunk/languages/et.lang trunk/languages/eu.lang trunk/languages/fi.lang trunk/languages/fo.lang trunk/languages/fr.lang trunk/languages/hr.lang trunk/languages/hu.lang trunk/languages/is.lang trunk/languages/it.lang trunk/languages/ja.lang trunk/languages/lt.lang trunk/languages/mk.lang trunk/languages/nb.lang trunk/languages/nl.lang trunk/languages/nn.lang trunk/languages/pl.lang trunk/languages/pt-br.lang trunk/languages/ru.lang trunk/languages/sk.lang trunk/languages/sl.lang trunk/languages/sv.lang trunk/languages/tr.lang trunk/languages/tw.lang trunk/templates/admin_edit-admin.tpl trunk/templates/admin_edit-domain.tpl trunk/templates/edit-alias.tpl trunk/templates/edit-mailbox.tpl trunk/templates/users_edit-alias.tpl Modified: trunk/languages/bg.lang =================================================================== --- trunk/languages/bg.lang 2011-04-10 16:30:49 UTC (rev 1030) +++ trunk/languages/bg.lang 2011-04-10 18:26:52 UTC (rev 1031) @@ -12,7 +12,7 @@ $PALANG['del'] = 'изтриване'; $PALANG['exit'] = 'Изход'; $PALANG['cancel'] = 'Отказ'; -$PALANG['save'] = 'Запази'; +$PALANG['save'] = 'Запази'; # XXX Text change: "Save" -> "Save Changes" $PALANG['confirm'] = 'Сигурни ли сте, че желаете да изтрието това?\n'; $PALANG['confirm_domain'] = 'Наистина ли искате да изтриете всички записи за този домейн? Това действие е необратимо!\n'; $PALANG['check_update'] = 'Check for update'; @@ -117,7 +117,8 @@ $PALANG['pCreate_alias_result_success'] = 'Alias-а беше добавен успешно в таблицата!'; $PALANG['pCreate_alias_catchall_text'] = 'За да създадете catch-all използвайте "*" за alias.<br />За пренасочване на домейн към домейн използвайте "*@domain.tld" в полето Към.'; -$PALANG['pEdit_alias_welcome'] = 'Редактиране на alias за вашия домейн.<br />Един запис на ред.'; +$PALANG['pEdit_alias_welcome'] = 'Редактиране на alias за вашия домейн.'; # XXX Text change to: 'Edit forwarding settings' +$PALANG['pEdit_alias_help'] = 'Един запис на ред.'; # XXX Text change to: 'Accepts multiple targets, one entry per line.' $PALANG['pEdit_alias_address'] = 'Alias'; $PALANG['pEdit_alias_address_error'] = '<span class="error_msg">Не мога да открия този alias!</span>'; $PALANG['pEdit_alias_goto'] = 'Към'; @@ -128,7 +129,7 @@ $PALANG['pEdit_alias_domain_result_error'] = '<span class="error_msg">Unable to modify the alias domain!</span>'; # XXX $PALANG['pEdit_alias_forward_and_store'] = 'Deliver to the local mailbox.'; # XXX $PALANG['pEdit_alias_forward_only'] = 'Forward to given email addresses only.'; # XXX -$PALANG['pEdit_alias_button'] = 'Редактирай Alias'; +$PALANG['pEdit_alias_button'] = 'Редактирай Alias'; # XXX text no longer used $PALANG['pEdit_alias_result_error'] = '<span class="error_msg">Не мога да модифицирам този alias!</span>'; $PALANG['pCreate_mailbox_welcome'] = 'Създаване на нова пощенска кутия за вашия домейн.'; @@ -164,7 +165,7 @@ $PALANG['pEdit_mailbox_quota_text'] = 'MB'; $PALANG['pEdit_mailbox_quota_text_error'] = 'MB<br /><span class="error_msg">Обема, който сте дали е твърде голям!</span>'; $PALANG['pEdit_mailbox_domain_error'] = '<span class="error_msg">Този домейн не е ваш: '; -$PALANG['pEdit_mailbox_button'] = 'Редакция на пощенска кутия'; +$PALANG['pEdit_mailbox_button'] = 'Редакция на пощенска кутия'; # XXX text no longer used $PALANG['pEdit_mailbox_result_error'] = '<span class="error_msg">Не мога да модифицирам пощенската кутия!</span>'; $PALANG['pPassword_welcome'] = 'Смяна на парола.'; @@ -295,7 +296,7 @@ $PALANG['pAdminEdit_domain_transport_text'] = 'Define transport'; $PALANG['pAdminEdit_domain_backupmx'] = 'Мейл сървъра е резервен MX'; $PALANG['pAdminEdit_domain_active'] = 'Активен'; -$PALANG['pAdminEdit_domain_button'] = 'Редактирай домейн'; +$PALANG['pAdminEdit_domain_button'] = 'Редактирай домейн'; # XXX text no longer used $PALANG['pAdminEdit_domain_result_error'] = '<span class="error_msg">Не мога да модифицирам домейна!</span>'; $PALANG['pAdminCreate_admin_welcome'] = 'Добави нов админ на домейна'; @@ -318,7 +319,7 @@ $PALANG['pAdminEdit_admin_password_text_error'] = '<span class="error_msg">Паролите, които сте въвели не съвпадат!<br />Или са празни!</span>'; $PALANG['pAdminEdit_admin_active'] = 'Активен'; $PALANG['pAdminEdit_admin_super_admin'] = 'Главен Администратор'; -$PALANG['pAdminEdit_admin_button'] = 'Редактирай Админ'; +$PALANG['pAdminEdit_admin_button'] = 'Редактирай Админ'; # XXX text no longer used $PALANG['pAdminEdit_admin_result_error'] = '<span class="error_msg">Не мога да модифицирам админа!</span>'; $PALANG['pAdminEdit_admin_result_success'] = 'Админ-а беше модифициран!'; Modified: trunk/languages/ca.lang =================================================================== --- trunk/languages/ca.lang 2011-04-10 16:30:49 UTC (rev 1030) +++ trunk/languages/ca.lang 2011-04-10 18:26:52 UTC (rev 1031) @@ -11,7 +11,7 @@ $PALANG['del'] = 'esborrar'; $PALANG['exit'] = 'Exit'; # XXX $PALANG['cancel'] = 'Cancel'; # XXX -$PALANG['save'] = 'Save'; # XXX +$PALANG['save'] = 'Save changes'; # XXX $PALANG['confirm'] = '¿Segur que vols esborrar-lo?\n'; $PALANG['confirm_domain'] = 'Estas segur que vols borrar tots els registres d\'aquest domini? Això no podrà ser desfet!\n'; $PALANG['check_update'] = 'Check for update'; @@ -115,7 +115,8 @@ $PALANG['pCreate_alias_result_success'] = 'L\'àlies ha estat creat correctament!'; $PALANG['pCreate_alias_catchall_text'] = 'Per crear un àlies general usi "*" com a àlies.<br />Per una redirecció de domini a domini, usi "*@domain.tld" com a Destí.'; -$PALANG['pEdit_alias_welcome'] = 'Editi un àlies pel seu domini.<br />Una entrada per línia.'; +$PALANG['pEdit_alias_welcome'] = 'Editi un àlies pel seu domini.'; # XXX Text change to: 'Edit forwarding settings' +$PALANG['pEdit_alias_help'] = 'Una entrada per línia.'; # XXX Text change to: 'Accepts multiple targets, one entry per line.' $PALANG['pEdit_alias_address'] = 'Àlies'; $PALANG['pEdit_alias_address_error'] = '<span class="error_msg">Imposible de localizar l\'àlies!</span>'; $PALANG['pEdit_alias_goto'] = 'Destí'; @@ -126,7 +127,7 @@ $PALANG['pEdit_alias_domain_result_error'] = '<span class="error_msg">Unable to modify the alias domain!</span>'; # XXX $PALANG['pEdit_alias_forward_and_store'] = 'Deliver to the local mailbox.'; # XXX $PALANG['pEdit_alias_forward_only'] = 'Forward to given email addresses only.'; # XXX -$PALANG['pEdit_alias_button'] = 'Editar àlies'; +$PALANG['pEdit_alias_button'] = 'Editar àlies'; # XXX text no longer used $PALANG['pEdit_alias_result_error'] = '<span class="error_msg">Imposible modificar l\'àlies!</span>'; $PALANG['pCreate_mailbox_welcome'] = 'Crear una nova bústia pel seu domini.'; @@ -162,7 +163,7 @@ $PALANG['pEdit_mailbox_quota_text'] = 'MB'; $PALANG['pEdit_mailbox_quota_text_error'] = 'MB<br /><span class="error_msg">La quota especificada és massa alta!</span>'; $PALANG['pEdit_mailbox_domain_error'] = '<span class="error_msg">Aquest domini no et pertany: '; -$PALANG['pEdit_mailbox_button'] = 'Editar bústia'; +$PALANG['pEdit_mailbox_button'] = 'Editar bústia'; # XXX text no longer used $PALANG['pEdit_mailbox_result_error'] = '<span class="error_msg">Imposible canviar la contrasenya!</span>'; $PALANG['pPassword_welcome'] = 'Canvia la teva contrasenya de login.'; @@ -293,7 +294,7 @@ $PALANG['pAdminEdit_domain_transport_text'] = 'Define transport'; # XXX $PALANG['pAdminEdit_domain_backupmx'] = 'Mail server is backup MX'; # XXX $PALANG['pAdminEdit_domain_active'] = 'Actiu'; -$PALANG['pAdminEdit_domain_button'] = 'Editar domini'; +$PALANG['pAdminEdit_domain_button'] = 'Editar domini'; # XXX text no longer used $PALANG['pAdminEdit_domain_result_error'] = '<span class="error_msg">Imposible modificar el domini!</span>'; $PALANG['pAdminCreate_admin_welcome'] = 'Afegir un nou administrador de domini'; @@ -317,7 +318,7 @@ $PALANG['pAdminEdit_admin_password_text_error'] = '<span class="error_msg">Les contrasenyes introduides no coincideixen<br />o estan en blanc!</span>'; $PALANG['pAdminEdit_admin_active'] = 'Actiu'; $PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX -$PALANG['pAdminEdit_admin_button'] = 'Editar administrador'; +$PALANG['pAdminEdit_admin_button'] = 'Editar administrador'; # XXX text no longer used $PALANG['pAdminEdit_admin_result_error'] = '<span class="error_msg">Imposible modificar l\'administrador!</span>'; $PALANG['pAdminEdit_admin_result_success'] = 'L\'administrador ha estat modificat!'; Modified: trunk/languages/cn.lang =================================================================== --- trunk/languages/cn.lang 2011-04-10 16:30:49 UTC (rev 1030) +++ trunk/languages/cn.lang 2011-04-10 18:26:52 UTC (rev 1031) @@ -11,7 +11,7 @@ $PALANG['del'] = '删除'; $PALANG['exit'] = 'Exit'; # XXX $PALANG['cancel'] = 'Cancel'; # XXX -$PALANG['save'] = 'Save'; # XXX +$PALANG['save'] = 'Save changes'; # XXX $PALANG['confirm'] = '是否确定删除?\n'; $PALANG['confirm_domain'] = '你是否确定要删除该域中的所有记录? 删除后不可恢复!\n'; $PALANG['check_update'] = '检查新版本'; @@ -116,7 +116,8 @@ $PALANG['pCreate_alias_result_success'] = '添加别名成功!'; $PALANG['pCreate_alias_catchall_text'] = '要将所有的邮件全部转发请使用"*"作为别名.<br />域到域的转发请使用"*@domain.tld".'; -$PALANG['pEdit_alias_welcome'] = '编辑你域名中的别名.<br />每行一条记录.'; +$PALANG['pEdit_alias_welcome'] = '编辑你域名中的别名.'; # XXX Text change to: 'Edit forwarding settings' +$PALANG['pEdit_alias_help'] = '每行一条记录.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' $PALANG['pEdit_alias_address'] = '别名'; $PALANG['pEdit_alias_address_error'] = '<span class="error_msg">不能定位别名!</span>'; $PALANG['pEdit_alias_goto'] = '转到'; @@ -127,7 +128,7 @@ $PALANG['pEdit_alias_domain_result_error'] = '<span class="error_msg">Unable to modify the alias domain!</span>'; # XXX $PALANG['pEdit_alias_forward_and_store'] = 'Deliver to the local mailbox.'; # XXX $PALANG['pEdit_alias_forward_only'] = 'Forward to given email addresses only.'; # XXX -$PALANG['pEdit_alias_button'] = '编辑别名'; +$PALANG['pEdit_alias_button'] = '编辑别名'; # XXX text no longer used $PALANG['pEdit_alias_result_error'] = '<span class="error_msg">不能修改该别名!</span>'; $PALANG['pCreate_mailbox_welcome'] = '在你的域中新建一个本地邮箱.'; @@ -163,7 +164,7 @@ $PALANG['pEdit_mailbox_quota_text'] = 'MB'; $PALANG['pEdit_mailbox_quota_text_error'] = 'MB<br /><span class="error_msg">你输入的容量限制超出范围!</span>'; $PALANG['pEdit_mailbox_domain_error'] = '<span class="error_msg">你没有该域的管理权限: '; -$PALANG['pEdit_mailbox_button'] = '编辑邮箱'; +$PALANG['pEdit_mailbox_button'] = '编辑邮箱'; # XXX text no longer used $PALANG['pEdit_mailbox_result_error'] = '<span class="error_msg">不能编辑该邮箱!</span>'; $PALANG['pPassword_welcome'] = '更改你的登录密码.'; @@ -294,7 +295,7 @@ $PALANG['pAdminEdit_domain_transport_text'] = 'Define transport'; # XXX $PALANG['pAdminEdit_domain_backupmx'] = '备份邮件服务器'; $PALANG['pAdminEdit_domain_active'] = '活动'; -$PALANG['pAdminEdit_domain_button'] = '修改'; +$PALANG['pAdminEdit_domain_button'] = '修改'; # XXX text no longer used $PALANG['pAdminEdit_domain_result_error'] = '<span class="error_msg">修改域失败!</span>'; $PALANG['pAdminCreate_admin_welcome'] = '新增域管理员'; @@ -317,7 +318,7 @@ $PALANG['pAdminEdit_admin_password_text_error'] = '<span class="error_msg">你两次输入的新密码不相同!<br />或者为空!</span>'; $PALANG['pAdminEdit_admin_active'] = '活动'; $PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX -$PALANG['pAdminEdit_admin_button'] = '修改'; +$PALANG['pAdminEdit_admin_button'] = '修改'; # XXX text no longer used $PALANG['pAdminEdit_admin_result_error'] = '<span class="error_msg">编辑域管理员失败!</span>'; $PALANG['pAdminEdit_admin_result_success'] = '编辑域管理员成功!'; Modified: trunk/languages/cs.lang =================================================================== --- trunk/languages/cs.lang 2011-04-10 16:30:49 UTC (rev 1030) +++ trunk/languages/cs.lang 2011-04-10 18:26:52 UTC (rev 1031) @@ -15,7 +15,7 @@ $PALANG['del'] = 'smazat'; $PALANG['exit'] = 'Odejít'; $PALANG['cancel'] = 'Zrušit'; -$PALANG['save'] = 'Uložit'; +$PALANG['save'] = 'Uložit'; # XXX Text change: "Save" -> "Save changes" $PALANG['confirm'] = 'Jste si jistí?\n'; $PALANG['confirm_domain'] = 'Opravdu chcete smazat všechny záznamy v této doméně Tohle nelze vrátit!\n'; $PALANG['check_update'] = 'Zkontrolovat aktualizace'; @@ -121,7 +121,8 @@ $PALANG['pCreate_alias_result_success'] = 'Přesměrování bylo uspěšně přidáno do tabulky aliasů!'; $PALANG['pCreate_alias_catchall_text'] = 'Pro vytvoření doménového koše použijte * jako alias.<br />Pro alias doména -> doména použijte *@domain.tld jako cíl.'; -$PALANG['pEdit_alias_welcome'] = 'Upravit přesměrování.<br />Jeden záznam na řádku.'; +$PALANG['pEdit_alias_welcome'] = 'Upravit přesměrování.'; # XXX Text change to: 'Edit forwarding settings' +$PALANG['pEdit_alias_help'] = 'Jeden záznam na řádku.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' $PALANG['pEdit_alias_address'] = 'Přesměrování'; $PALANG['pEdit_alias_address_error'] = '<span class="error_msg">Nelze najít alias!</span>'; $PALANG['pEdit_alias_goto'] = 'Cíl'; @@ -132,7 +133,7 @@ $PALANG['pEdit_alias_domain_result_error'] = '<span class="error_msg">Unable to modify the alias domain!</span>'; # XXX $PALANG['pEdit_alias_forward_and_store'] = 'Doručovat i do schránky.'; $PALANG['pEdit_alias_forward_only'] = 'Přesměrovat pouze na dané adresy.'; -$PALANG['pEdit_alias_button'] = 'Upravit'; +$PALANG['pEdit_alias_button'] = 'Upravit'; # XXX text no longer used $PALANG['pEdit_alias_result_error'] = '<span class="error_msg">Nepodařilo se upravit přesměrování!</span>'; $PALANG['pCreate_mailbox_welcome'] = 'Vytvořit novou lokální schránku v doméně.'; @@ -168,7 +169,7 @@ $PALANG['pEdit_mailbox_quota_text'] = 'MB'; $PALANG['pEdit_mailbox_quota_text_error'] = 'MB<br /><span class="error_msg">Zadané místo je příliš velké!</span>'; $PALANG['pEdit_mailbox_domain_error'] = '<span class="error_msg">Tato doména není vaše: '; -$PALANG['pEdit_mailbox_button'] = 'Upravit schránku'; +$PALANG['pEdit_mailbox_button'] = 'Upravit schránku'; # XXX text no longer used $PALANG['pEdit_mailbox_result_error'] = '<span class="error_msg">Nepodařilo se upravit schránku!</span>'; $PALANG['pPassword_welcome'] = 'Změnit heslo.'; @@ -303,7 +304,7 @@ $PALANG['pAdminEdit_domain_transport_text'] = 'Nastavit transport'; $PALANG['pAdminEdit_domain_backupmx'] = 'Tento server je záložní MX domény'; $PALANG['pAdminEdit_domain_active'] = 'Aktivní'; -$PALANG['pAdminEdit_domain_button'] = 'Upravit doménu'; +$PALANG['pAdminEdit_domain_button'] = 'Upravit doménu'; # XXX text no longer used $PALANG['pAdminEdit_domain_result_error'] = '<span class="error_msg">Nepodařilo se upravit doménu!</span>'; $PALANG['pAdminCreate_admin_welcome'] = 'Přidat nového doménového administrátora'; @@ -326,7 +327,7 @@ $PALANG['pAdminEdit_admin_password_text_error'] = '<span class="error_msg">Zadaná hesla jsou rozdílná nebo prázdná!</span>'; $PALANG['pAdminEdit_admin_active'] = 'Administrátorský účet povolen'; $PALANG['pAdminEdit_admin_super_admin'] = 'Superuživatel'; -$PALANG['pAdminEdit_admin_button'] = 'Upravit Administrátora'; +$PALANG['pAdminEdit_admin_button'] = 'Upravit Administrátora'; # XXX text no longer used $PALANG['pAdminEdit_admin_result_error'] = '<span class="error_msg">Nepodařilo se upravit administrátora!</span>'; $PALANG['pAdminEdit_admin_result_success'] = 'Administrátor byl upraven!'; Modified: trunk/languages/da.lang =================================================================== --- trunk/languages/da.lang 2011-04-10 16:30:49 UTC (rev 1030) +++ trunk/languages/da.lang 2011-04-10 18:26:52 UTC (rev 1031) @@ -12,7 +12,7 @@ $PALANG['del'] = 'slet'; $PALANG['exit'] = 'Log af'; $PALANG['cancel'] = 'Annuller'; -$PALANG['save'] = 'Gem'; +$PALANG['save'] = 'Gem'; # XXX Text change: "Save" -> "Save changes" $PALANG['confirm'] = 'Er du sikker på du vil slette dette?\n'; $PALANG['confirm_domain'] = 'Vil du virkelig slette alle adresser for dette domæne? Dette kan ikke fortrydes!\n'; $PALANG['check_update'] = 'Søg efter opdateringer'; @@ -119,7 +119,8 @@ $PALANG['pCreate_alias_result_success'] = 'Aliaset er blevet tilføjet til alias-tabellen!'; $PALANG['pCreate_alias_catchall_text'] = 'For at tilføje et stjerne-alias, brug en "*" som alias.<br />For domæne til domæne-videresending brug "*@domain.tld" som modtager.'; -$PALANG['pEdit_alias_welcome'] = 'Rediger alias.<br />En modtager pr. linje.'; +$PALANG['pEdit_alias_welcome'] = 'Rediger alias.'; # XXX Text change to: 'Edit forwarding settings' +$PALANG['pEdit_alias_help'] = 'En modtager pr. linje.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' $PALANG['pEdit_alias_address'] = 'Alias'; $PALANG['pEdit_alias_address_error'] = '<span class="error_msg">Kan ikke finde aliaset!</span>'; $PALANG['pEdit_alias_goto'] = 'Modtager(e)'; @@ -130,7 +131,7 @@ $PALANG['pEdit_alias_domain_result_error'] = '<span class="error_msg">Unable to modify the alias domain!</span>'; # XXX $PALANG['pEdit_alias_forward_and_store'] = 'Lever email til den lokale postboks.'; $PALANG['pEdit_alias_forward_only'] = 'Videresend til angiven emailadresse uden lokal kopi.'; -$PALANG['pEdit_alias_button'] = 'Ret alias'; +$PALANG['pEdit_alias_button'] = 'Ret alias'; # XXX text no longer used $PALANG['pEdit_alias_result_error'] = '<span class="error_msg">Kan ikke redigere aliaset!</span>'; $PALANG['pCreate_mailbox_welcome'] = 'Tilføj en ny lokal postboks til dit domæne.'; @@ -166,7 +167,7 @@ $PALANG['pEdit_mailbox_quota_text'] = 'MB'; $PALANG['pEdit_mailbox_quota_text_error'] = 'MB<br /><span class="error_msg">Den ønskede kvota er for høj!</span>'; $PALANG['pEdit_mailbox_domain_error'] = '<span class="error_msg">Dette domæne er ikke dit: '; -$PALANG['pEdit_mailbox_button'] = 'Ret postboks'; +$PALANG['pEdit_mailbox_button'] = 'Ret postboks'; # XXX text no longer used $PALANG['pEdit_mailbox_result_error'] = '<span class="error_msg">Kan ikke ændre adgangskoden!</span>'; $PALANG['pPassword_welcome'] = 'Ændre din adgangskode.'; @@ -301,7 +302,7 @@ $PALANG['pAdminEdit_domain_transport_text'] = 'Præciser transport'; $PALANG['pAdminEdit_domain_backupmx'] = 'Mailserveren er backup MX'; $PALANG['pAdminEdit_domain_active'] = 'Aktiv'; -$PALANG['pAdminEdit_domain_button'] = 'Rediger domæne'; +$PALANG['pAdminEdit_domain_button'] = 'Rediger domæne'; # XXX text no longer used $PALANG['pAdminEdit_domain_result_error'] = '<span class="error_msg">Kan ikke rette domæne!</span>'; $PALANG['pAdminCreate_admin_welcome'] = 'Tilføj ny domæneadministrator'; @@ -324,7 +325,7 @@ $PALANG['pAdminEdit_admin_password_text_error'] = '<span class="error_msg">Adgangskoderne er ikke ens!<br />Eller er tomme!</span>'; $PALANG['pAdminEdit_admin_active'] = 'Aktiv'; $PALANG['pAdminEdit_admin_super_admin'] = 'Superadministrator'; -$PALANG['pAdminEdit_admin_button'] = 'Rediger administrator'; +$PALANG['pAdminEdit_admin_button'] = 'Rediger administrator'; # XXX text no longer used $PALANG['pAdminEdit_admin_result_error'] = '<span class="error_msg">Kan ikke rette administrator!</span>'; $PALANG['pAdminEdit_admin_result_success'] = 'Administrator er rettet!'; Modified: trunk/languages/de.lang =================================================================== --- trunk/languages/de.lang 2011-04-10 16:30:49 UTC (rev 1030) +++ trunk/languages/de.lang 2011-04-10 18:26:52 UTC (rev 1031) @@ -12,7 +12,7 @@ $PALANG['del'] = 'löschen'; $PALANG['exit'] = 'Verlassen'; $PALANG['cancel'] = 'Abbrechen'; -$PALANG['save'] = 'Speichern'; +$PALANG['save'] = 'Änderungen speichern'; $PALANG['confirm'] = 'Sind Sie sicher dass Sie das löschen wollen?\n'; $PALANG['confirm_domain'] = 'Wollen Sie wirklich alle Einträge dieser Domain löschen? Dies kann NICHT rückgängig gemacht werden!\n'; $PALANG['check_update'] = 'Auf Updates überprüfen'; @@ -118,7 +118,8 @@ $PALANG['pCreate_alias_result_success'] = 'Das Alias wurde in die Alias-Tabelle hinzugefügt!'; $PALANG['pCreate_alias_catchall_text'] = 'Um alle Adressen abzudecken benutzen Sie einen "*" als Alias.<br />Um ganze Domains an andere Domains weiterzuleiten benutzen Sie "*@domain.tld" im "An"-Feld.'; -$PALANG['pEdit_alias_welcome'] = 'Ändern Sie einen Alias für Ihre Domain<br />EIN Eintrag pro Zeile!'; +$PALANG['pEdit_alias_welcome'] = 'Weiterleitungs-Einstellungen ändern'; +$PALANG['pEdit_alias_help'] = 'Angabe mehrerer Ziele möglich, ein Eintrag pro Zeile.'; $PALANG['pEdit_alias_address'] = 'Alias'; $PALANG['pEdit_alias_address_error'] = '<span class="error_msg">Auffinden des Alias schlug fehl!</span>'; $PALANG['pEdit_alias_goto'] = 'An'; @@ -129,7 +130,7 @@ $PALANG['pEdit_alias_domain_result_error'] = '<span class="error_msg">Alias-Domain kann nicht geändert werden!</span>'; $PALANG['pEdit_alias_forward_and_store'] = 'Mail in der lokalen Mailbox ablegen.'; $PALANG['pEdit_alias_forward_only'] = 'Nur zur angegebenen Adresse weiterleiten.'; -$PALANG['pEdit_alias_button'] = 'Alias ändern'; +$PALANG['pEdit_alias_button'] = 'Alias ändern'; # XXX text no longer used $PALANG['pEdit_alias_result_error'] = '<span class="error_msg">Ändern des Aliases nicht möglich!</span>'; $PALANG['pCreate_mailbox_welcome'] = 'Legen Sie eine neue Mailbox für Ihre Domain an.'; @@ -165,7 +166,7 @@ $PALANG['pEdit_mailbox_quota_text'] = 'MB'; $PALANG['pEdit_mailbox_quota_text_error'] = 'MB<br /><span class="error_msg">Das angegebene Quota ist zu hoch!</span>'; $PALANG['pEdit_mailbox_domain_error'] = '<span class="error_msg">Diese Domain gehört nicht Ihnen: '; -$PALANG['pEdit_mailbox_button'] = 'Mailbox editieren'; +$PALANG['pEdit_mailbox_button'] = 'Mailbox editieren'; # XXX text no longer used $PALANG['pEdit_mailbox_result_error'] = '<span class="error_msg">Mailbox kann nicht geändert werden!</span>'; $PALANG['pPassword_welcome'] = 'Ändern Sie Ihr Login-Passwort.'; @@ -300,7 +301,7 @@ $PALANG['pAdminEdit_domain_transport_text'] = 'Define transport'; $PALANG['pAdminEdit_domain_backupmx'] = 'Mail server is backup MX'; $PALANG['pAdminEdit_domain_active'] = 'Aktiv'; -$PALANG['pAdminEdit_domain_button'] = 'Domain editieren'; +$PALANG['pAdminEdit_domain_button'] = 'Domain editieren'; # XXX text no longer used $PALANG['pAdminEdit_domain_result_error'] = '<span class="error_msg">Konnte Domain nicht editieren!</span>'; $PALANG['pAdminCreate_admin_welcome'] = 'Neuen Domain-Admin hinzufügen'; @@ -323,7 +324,7 @@ $PALANG['pAdminEdit_admin_password_text_error'] = '<span class="error_msg">Die beiden Passwörter sind nicht identisch<br />Oder leer!</span>'; $PALANG['pAdminEdit_admin_active'] = 'Aktiv'; $PALANG['pAdminEdit_admin_super_admin'] = 'Super-Admin'; -$PALANG['pAdminEdit_admin_button'] = 'Admin editieren'; +$PALANG['pAdminEdit_admin_button'] = 'Admin editieren'; # XXX text no longer used $PALANG['pAdminEdit_admin_result_error'] = '<span class="error_msg">Konnte Admin nicht ändern</span>'; $PALANG['pAdminEdit_admin_result_success'] = 'Admin geändert!'; Modified: trunk/languages/en.lang =================================================================== --- trunk/languages/en.lang 2011-04-10 16:30:49 UTC (rev 1030) +++ trunk/languages/en.lang 2011-04-10 18:26:52 UTC (rev 1031) @@ -12,7 +12,7 @@ $PALANG['del'] = 'del'; $PALANG['exit'] = 'Exit'; $PALANG['cancel'] = 'Cancel'; -$PALANG['save'] = 'Save'; +$PALANG['save'] = 'Save changes'; $PALANG['confirm'] = 'Are you sure you want to delete this?\n'; $PALANG['confirm_domain'] = 'Do you really want to delete all records for this domain? This can not be undone!\n'; $PALANG['check_update'] = 'Check for update'; @@ -120,7 +120,8 @@ $PALANG['pCreate_alias_result_success'] = 'The alias has been added to the alias table!'; $PALANG['pCreate_alias_catchall_text'] = 'To create a catch-all use an "*" as alias.'; # XXX don't propagate usage of *@target-domain.com for domain-aliasing any longer -$PALANG['pEdit_alias_welcome'] = 'Edit an alias for your domain.<br />One entry per line.'; +$PALANG['pEdit_alias_welcome'] = 'Edit forwarding settings'; +$PALANG['pEdit_alias_help'] = 'Accepts multiple targets, one entry per line.'; $PALANG['pEdit_alias_address'] = 'Alias'; $PALANG['pEdit_alias_address_error'] = '<span class="error_msg">Unable to locate alias!</span>'; $PALANG['pEdit_alias_goto'] = 'To'; @@ -131,7 +132,7 @@ $PALANG['pEdit_alias_domain_result_error'] = '<span class="error_msg">Unable to modify the alias domain!</span>'; $PALANG['pEdit_alias_forward_and_store'] = 'Deliver to the local mailbox.'; $PALANG['pEdit_alias_forward_only'] = 'Forward to given email addresses only.'; -$PALANG['pEdit_alias_button'] = 'Edit Alias'; +$PALANG['pEdit_alias_button'] = 'Edit Alias'; # text no longer used $PALANG['pEdit_alias_result_error'] = '<span class="error_msg">Unable to modify the alias!</span>'; $PALANG['pCreate_mailbox_welcome'] = 'Create a new mailbox for your domain.'; @@ -167,7 +168,7 @@ $PALANG['pEdit_mailbox_quota_text'] = 'MB'; $PALANG['pEdit_mailbox_quota_text_error'] = 'MB<br /><span class="error_msg">The quota that you specified is to high!</span>'; $PALANG['pEdit_mailbox_domain_error'] = '<span class="error_msg">This domain is not yours: '; -$PALANG['pEdit_mailbox_button'] = 'Edit Mailbox'; +$PALANG['pEdit_mailbox_button'] = 'Edit Mailbox'; # text no longer used $PALANG['pEdit_mailbox_result_error'] = '<span class="error_msg">Unable to modify the mailbox!</span>'; $PALANG['pPassword_welcome'] = 'Change your login password.'; @@ -302,7 +303,7 @@ $PALANG['pAdminEdit_domain_transport_text'] = 'Define transport'; $PALANG['pAdminEdit_domain_backupmx'] = 'Mail server is backup MX'; $PALANG['pAdminEdit_domain_active'] = 'Active'; -$PALANG['pAdminEdit_domain_button'] = 'Edit Domain'; +$PALANG['pAdminEdit_domain_button'] = 'Edit Domain'; # text no longer used $PALANG['pAdminEdit_domain_result_error'] = '<span class="error_msg">Unable to modify domain!</span>'; $PALANG['pAdminCreate_admin_welcome'] = 'Add a new domain admin'; @@ -325,7 +326,7 @@ $PALANG['pAdminEdit_admin_password_text_error'] = '<span class="error_msg">The passwords that you supplied don\'t match!<br />Or are empty!</span>'; $PALANG['pAdminEdit_admin_active'] = 'Active'; $PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; -$PALANG['pAdminEdit_admin_button'] = 'Edit Admin'; +$PALANG['pAdminEdit_admin_button'] = 'Edit Admin'; # text no longer used $PALANG['pAdminEdit_admin_result_error'] = '<span class="error_msg">Unable to modify admin!</span>'; $PALANG['pAdminEdit_admin_result_success'] = 'Admin has been modified!'; Modified: trunk/languages/es.lang =================================================================== --- trunk/languages/es.lang 2011-04-10 16:30:49 UTC (rev 1030) +++ trunk/languages/es.lang 2011-04-10 18:26:52 UTC (rev 1031) @@ -12,7 +12,7 @@ $PALANG['del'] = 'borrar'; $PALANG['exit'] = 'Salir'; $PALANG['cancel'] = 'Cancelar'; -$PALANG['save'] = 'Salvar'; +$PALANG['save'] = 'Salvar'; # XXX Text change: "Save" -> "Save changes" $PALANG['confirm'] = '¿Está seguro de que desea borrarlo?\n'; $PALANG['confirm_domain'] = '¿Está seguro de que desea borrar todos los registros de este dominio? ¡Esto no puede ser deshecho!\n'; $PALANG['check_update'] = 'Check for update'; # XXX @@ -116,7 +116,8 @@ $PALANG['pCreate_alias_result_success'] = '¡El alias ha sido añadido a la tabla de alias!'; $PALANG['pCreate_alias_catchall_text'] = 'Para crear un alias general use "*" como alias.<br />Para una redirección de dominio a dominio, use "*@domain.tld" como Destino.'; -$PALANG['pEdit_alias_welcome'] = 'Edite un alias para su dominio.<br />Una entrada por línea.'; +$PALANG['pEdit_alias_welcome'] = 'Edite un alias para su dominio.'; # XXX Text change to: 'Edit forwarding settings' +$PALANG['pEdit_alias_help'] = 'Una entrada por línea.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' $PALANG['pEdit_alias_address'] = 'Alias'; $PALANG['pEdit_alias_address_error'] = '<span class="error_msg">¡Imposible de localizar el alias!</span>'; $PALANG['pEdit_alias_goto'] = 'Destino'; @@ -127,7 +128,7 @@ $PALANG['pEdit_alias_domain_result_error'] = '<span class="error_msg">¡No se pudo modificar el alias de dominio!</span>'; $PALANG['pEdit_alias_forward_and_store'] = 'Entregar al buzón local.'; $PALANG['pEdit_alias_forward_only'] = 'Reenviar sólo al email especificado.'; -$PALANG['pEdit_alias_button'] = 'Editar alias'; +$PALANG['pEdit_alias_button'] = 'Editar alias'; # XXX text no longer used $PALANG['pEdit_alias_result_error'] = '<span class="error_msg">¡Imposible modificar el alias!</span>'; $PALANG['pCreate_mailbox_welcome'] = 'Crear un nuevo buzón para su dominio.'; @@ -163,7 +164,7 @@ $PALANG['pEdit_mailbox_quota_text'] = 'MB'; $PALANG['pEdit_mailbox_quota_text_error'] = 'MB<br /><span class="error_msg">¡La cuota especificada es demasiado alta!</span>'; $PALANG['pEdit_mailbox_domain_error'] = '<span class="error_msg">Este dominio no le pertenece: '; -$PALANG['pEdit_mailbox_button'] = 'Editar buzón'; +$PALANG['pEdit_mailbox_button'] = 'Editar buzón'; # XXX text no longer used $PALANG['pEdit_mailbox_result_error'] = '<span class="error_msg">¡Imposible cambiar la contraseña!</span>'; $PALANG['pPassword_welcome'] = 'Cambie su contraseña de login.'; @@ -295,7 +296,7 @@ $PALANG['pAdminEdit_domain_transport_text'] = 'Definir transport'; # XXX $PALANG['pAdminEdit_domain_backupmx'] = 'El servidor de correo es backup MX'; # XXX $PALANG['pAdminEdit_domain_active'] = 'Activo'; -$PALANG['pAdminEdit_domain_button'] = 'Editar dominio'; +$PALANG['pAdminEdit_domain_button'] = 'Editar dominio'; # XXX text no longer used $PALANG['pAdminEdit_domain_result_error'] = '<span class="error_msg">¡Imposible modificar el dominio!</span>'; $PALANG['pAdminCreate_admin_welcome'] = 'Añadir un nuevo administrador de dominio'; @@ -319,7 +320,7 @@ $PALANG['pAdminEdit_admin_password_text_error'] = '<span class="error_msg">¡Las contraseñas introducidas no coinciden<br />o están en blanco!</span>'; $PALANG['pAdminEdit_admin_active'] = 'Activo'; $PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX -$PALANG['pAdminEdit_admin_button'] = 'Editar administrador'; +$PALANG['pAdminEdit_admin_button'] = 'Editar administrador'; # XXX text no longer used $PALANG['pAdminEdit_admin_result_error'] = '<span class="error_msg">¡Imposible modificar el administrador!</span>'; $PALANG['pAdminEdit_admin_result_success'] = '¡El administrador ha sido modificado!'; Modified: trunk/languages/et.lang =================================================================== --- trunk/languages/et.lang 2011-04-10 16:30:49 UTC (rev 1030) +++ trunk/languages/et.lang 2011-04-10 18:26:52 UTC (rev 1031) @@ -11,7 +11,7 @@ $PALANG['del'] = 'Kustuta'; $PALANG['exit'] = 'Exit'; # XXX $PALANG['cancel'] = 'Cancel'; # XXX -$PALANG['save'] = 'Save'; # XXX +$PALANG['save'] = 'Save changes'; # XXX $PALANG['confirm'] = 'Oled kindel, et soovid seda kustutada?\n'; $PALANG['confirm_domain'] = 'Oled tõesti kindel, et tahad kustutada kõik kirjed sellele domeenile? Seda tegevust ei saa tagasi võtta!\n'; $PALANG['check_update'] = 'Check for update'; # XXX @@ -116,7 +116,8 @@ $PALANG['pCreate_alias_result_success'] = 'Alias lisati aliaste tabelisse!'; $PALANG['pCreate_alias_catchall_text'] = 'Loomaks püüa-kõik aadressi kasuta aliasena "*".<br />Domeenilt domeenile edasisaatmiseks kasuta kellele väljal "*@domeen.xx".'; -$PALANG['pEdit_alias_welcome'] = 'Muuda aliast.<br />Üks kirje rea kohta.'; +$PALANG['pEdit_alias_welcome'] = 'Muuda aliast.'; # XXX Text change to: 'Edit forwarding settings' +$PALANG['pEdit_alias_help'] = 'Üks kirje rea kohta.'; # XXX Text change to: 'Accepts multiple targets, one entry per line.' $PALANG['pEdit_alias_address'] = 'Alias'; $PALANG['pEdit_alias_address_error'] = '<span class="error_msg">Aliase muutmine ebaõnnestus!</span>'; $PALANG['pEdit_alias_goto'] = 'Kellele'; @@ -127,7 +128,7 @@ $PALANG['pEdit_alias_domain_result_error'] = '<span class="error_msg">Unable to modify the alias domain!</span>'; # XXX $PALANG['pEdit_alias_forward_and_store'] = 'Deliver to the local mailbox.'; # XXX $PALANG['pEdit_alias_forward_only'] = 'Forward to given email addresses only.'; # XXX -$PALANG['pEdit_alias_button'] = 'Muuda alias'; +$PALANG['pEdit_alias_button'] = 'Muuda alias'; # XXX text no longer used $PALANG['pEdit_alias_result_error'] = '<span class="error_msg">Aliase muutmine ebaõnnestus!</span>'; $PALANG['pCreate_mailbox_welcome'] = 'Loo uus postkast domeenis.'; @@ -163,7 +164,7 @@ $PALANG['pEdit_mailbox_quota_text'] = 'MB'; $PALANG['pEdit_mailbox_quota_text_error'] = 'MB<br /><span class="error_msg">Sisestatud kettaruumi piirang on liiga kõrge!</span>'; $PALANG['pEdit_mailbox_domain_error'] = '<span class="error_msg">Puuduvad õigused. Domeen: '; -$PALANG['pEdit_mailbox_button'] = 'Muuda postkast'; +$PALANG['pEdit_mailbox_button'] = 'Muuda postkast'; # XXX text no longer used $PALANG['pEdit_mailbox_result_error'] = '<span class="error_msg">Postkasti muutmine ebaõnnestus!</span>'; $PALANG['pPassword_welcome'] = 'Muuda kasutajanime parool.'; @@ -294,7 +295,7 @@ $PALANG['pAdminEdit_domain_transport_text'] = 'Kirjelda transport'; $PALANG['pAdminEdit_domain_backupmx'] = 'E-posti server on varuserver (backup MX)'; $PALANG['pAdminEdit_domain_active'] = 'Aktiivne'; -$PALANG['pAdminEdit_domain_button'] = 'Muuda domeen'; +$PALANG['pAdminEdit_domain_button'] = 'Muuda domeen'; # XXX text no longer used $PALANG['pAdminEdit_domain_result_error'] = '<span class="error_msg">Domeeni muutmine ebaõnnestus!</span>'; $PALANG['pAdminCreate_admin_welcome'] = 'Lisa uus domeeni haldaja'; @@ -317,7 +318,7 @@ $PALANG['pAdminEdit_admin_password_text_error'] = '<span class="error_msg">Sisestatud paroolid ei kattu!<br />Või on tühjad!</span>'; $PALANG['pAdminEdit_admin_active'] = 'Aktiivne'; $PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX -$PALANG['pAdminEdit_admin_button'] = 'Muuda haldaja'; +$PALANG['pAdminEdit_admin_button'] = 'Muuda haldaja'; # XXX text no longer used $PALANG['pAdminEdit_admin_result_error'] = '<span class="error_msg">Haldaja muutmine ebaõnnestus!</span>'; $PALANG['pAdminEdit_admin_result_success'] = 'Haldaja on muudetud!'; Modified: trunk/languages/eu.lang =================================================================== --- trunk/languages/eu.lang 2011-04-10 16:30:49 UTC (rev 1030) +++ trunk/languages/eu.lang 2011-04-10 18:26:52 UTC (rev 1031) @@ -11,7 +11,7 @@ $PALANG['del'] = 'ezabatu'; $PALANG['exit'] = 'Exit'; # XXX $PALANG['cancel'] = 'Cancel'; # XXX -$PALANG['save'] = 'Save'; # XXX +$PALANG['save'] = 'Save changes'; # XXX $PALANG['confirm'] = 'Ziur al zaude ezabatu nahi duzula?\n'; $PALANG['confirm_domain'] = 'Ziur al zaude domeinu honetako erregistro guztiak ezbatu nahi dituzula? Hau ezin izango da desegin!\n'; $PALANG['check_update'] = 'Check for update'; @@ -114,7 +114,8 @@ $PALANG['pCreate_alias_result_success'] = 'Aliasa alias taulan gehituta!'; $PALANG['pCreate_alias_catchall_text'] = 'Alias orokor bat sortzeko "*" erabil ezazu alias gisa.<br />Domeinuz domeinurako birbideraketa baterako Norako gisa "*@domain.tld" erabil ezazu.'; -$PALANG['pEdit_alias_welcome'] = 'Domeinuarentzat aliasa aldatu.<br />Lerroko sarrera bat.'; +$PALANG['pEdit_alias_welcome'] = 'Domeinuarentzat aliasa aldatu.'; # XXX Text change to: 'Edit forwarding settings' +$PALANG['pEdit_alias_help'] = 'Lerroko sarrera bat.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' $PALANG['pEdit_alias_address'] = 'Aliasa'; $PALANG['pEdit_alias_address_error'] = '<span class="error_msg">Ezinezkoa aliasa aurkitzea!</span>'; $PALANG['pEdit_alias_goto'] = 'Norakoa'; @@ -125,7 +126,7 @@ $PALANG['pEdit_alias_domain_result_error'] = '<span class="error_msg">Unable to modify the alias domain!</span>'; # XXX $PALANG['pEdit_alias_forward_and_store'] = 'Deliver to the local mailbox.'; # XXX $PALANG['pEdit_alias_forward_only'] = 'Forward to given email addresses only.'; # XXX -$PALANG['pEdit_alias_button'] = 'Aliasa aldatu'; +$PALANG['pEdit_alias_button'] = 'Aliasa aldatu'; # XXX text no longer used $PALANG['pEdit_alias_result_error'] = '<span class="error_msg">Ezinezkoa aliasa aldatzea!</span>'; $PALANG['pCreate_mailbox_welcome'] = 'Postontzi berri bat sortu domeinuarentzat.'; @@ -161,7 +162,7 @@ $PALANG['pEdit_mailbox_quota_text'] = 'MB'; $PALANG['pEdit_mailbox_quota_text_error'] = 'MB<br /><span class="error_msg">Zehazturiko kuota altuegia da!</span>'; $PALANG['pEdit_mailbox_domain_error'] = '<span class="error_msg">Ez zara domeinu honen jabe: '; -$PALANG['pEdit_mailbox_button'] = 'Postontzia aldatu'; +$PALANG['pEdit_mailbox_button'] = 'Postontzia aldatu'; # XXX text no longer used $PALANG['pEdit_mailbox_result_error'] = '<span class="error_msg">Ezinezkoa pasahitza aldatzea!</span>'; $PALANG['pPassword_welcome'] = 'Login pasahitza aldatu.'; @@ -292,7 +293,7 @@ $PALANG['pAdminEdit_domain_transport_text'] = 'Define transport'; # XXX $PALANG['pAdminEdit_domain_backupmx'] = 'Mail server is backup MX'; # XXX $PALANG['pAdminEdit_domain_active'] = 'Aktibatua'; -$PALANG['pAdminEdit_domain_button'] = 'Domeinua aldatu'; +$PALANG['pAdminEdit_domain_button'] = 'Domeinua aldatu'; # XXX text no longer used $PALANG['pAdminEdit_domain_result_error'] = '<span class="error_msg">Ezinezkoa domeinua aldatzea!</span>'; $PALANG['pAdminCreate_admin_welcome'] = 'Domeinu kudeatzaile berri bat gehitu'; @@ -316,7 +317,7 @@ $PALANG['pAdminEdit_admin_password_text_error'] = '<span class="error_msg">Sartutako pasahitzak ez datoz bat<br />edo zuriz daude!</span>'; $PALANG['pAdminEdit_admin_active'] = 'Aktibatua'; $PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX -$PALANG['pAdminEdit_admin_button'] = 'Kudeatzailea aldatu'; +$PALANG['pAdminEdit_admin_button'] = 'Kudeatzailea aldatu'; # XXX text no longer used $PALANG['pAdminEdit_admin_result_error'] = '<span class="error_msg">Ezinezkoa kudeatzailea aldatzea!</span>'; $PALANG['pAdminEdit_admin_result_success'] = 'Kudeatzailea aldatu da!'; Modified: trunk/languages/fi.lang =================================================================== --- trunk/languages/fi.lang 2011-04-10 16:30:49 UTC (rev 1030) +++ trunk/languages/fi.lang 2011-04-10 18:26:52 UTC (rev 1031) @@ -12,7 +12,7 @@ $PALANG['del'] = 'poista'; $PALANG['exit'] = 'Poistu'; $PALANG['cancel'] = 'Peruuta'; -$PALANG['save'] = 'Tallenna'; +$PALANG['save'] = 'Tallenna'; # XXX Text change: "Save" -> "Save changes" $PALANG['confirm'] = 'Oletko varma että haluat poistaa tämän?\n'; $PALANG['confirm_domain'] = 'Oletko varma että haluat poistaa kaikki tietueet tästä domainista? Tätä komentoa ei voi perua!\n'; $PALANG['check_update'] = 'Tarkista päivitykset'; @@ -116,7 +116,8 @@ $PALANG['pCreate_alias_result_error'] = '<span class="error_msg">Aliaksen lisäys alias tauluun epäonnistui!</span>'; $PALANG['pCreate_alias_result_success'] = 'Alias on lisätty!'; $PALANG['pCreate_alias_catchall_text'] = 'Jos haluat luoda catch-all osoitteen käytä "*" merkkiä aliaksena.<br />Ohjaus domainista domainiin tapahtuu käyttämällä "*@domain.tld" Kenelle: -osoitteena.'; -$PALANG['pEdit_alias_welcome'] = 'Muokkaa aliasta.<br />Yksi kohta per rivi.'; +$PALANG['pEdit_alias_welcome'] = 'Muokkaa aliasta.'; # XXX Text change to: 'Edit forwarding settings' +$PALANG['pEdit_alias_help'] = 'Yksi kohta per rivi.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' $PALANG['pEdit_alias_address'] = 'Alias'; $PALANG['pEdit_alias_address_error'] = '<span class="error_msg">Aliasta ei löydy!</span>'; $PALANG['pEdit_alias_goto'] = 'Kenelle'; @@ -127,7 +128,7 @@ $PALANG['pEdit_alias_domain_result_error'] = '<span class="error_msg">Alias domainia ei voitu muokata!</span>'; $PALANG['pEdit_alias_forward_and_store'] = 'Toimita paikalliseen laatikkoon.'; $PALANG['pEdit_alias_forward_only'] = 'Edelleenlähetä ainoastaan annettuun sähköpostiosoitteeseen.'; -$PALANG['pEdit_alias_button'] = 'Muokkaa aliasta'; +$PALANG['pEdit_alias_button'] = 'Muokkaa aliasta'; # XXX text no longer used $PALANG['pEdit_alias_result_error'] = '<span class="error_msg">Aliasta ei voi muokata!</span>'; $PALANG['pCreate_mailbox_welcome'] = 'Luo uusi paikallinen postilaatikko.'; @@ -163,7 +164,7 @@ $PALANG['pEdit_mailbox_quota_text'] = 'MB'; $PALANG['pEdit_mailbox_quota_text_error'] = 'MB<br /><span class="error_msg">Antamasi kiintiö on liian korkea!</span>'; $PALANG['pEdit_mailbox_domain_error'] = '<span class="error_msg">Tämä domaini ei ole sinun: '; -$PALANG['pEdit_mailbox_button'] = 'Muokkaa postilaatikkoa'; +$PALANG['pEdit_mailbox_button'] = 'Muokkaa postilaatikkoa'; # XXX text no longer used $PALANG['pEdit_mailbox_result_error'] = '<span class="error_msg">Postilaatikon muokkaus ei onnistunut!</span>'; $PALANG['pPassword_welcome'] = 'Vaihda tunnuksesi salasana.'; @@ -294,7 +295,7 @@ $PALANG['pAdminEdit_domain_transport_text'] = 'Määritä transport'; $PALANG['pAdminEdit_domain_backupmx'] = 'Sähköpostipalvelin on vara MX'; $PALANG['pAdminEdit_domain_active'] = 'Aktiivinen'; -$PALANG['pAdminEdit_domain_button'] = 'Muokkaa domainia'; +$PALANG['pAdminEdit_domain_button'] = 'Muokkaa domainia'; # XXX text no longer used $PALANG['pAdminEdit_domain_result_error'] = '<span class="error_msg">Domainin muokkaus ei onnistu!</span>'; $PALANG['pAdminCreate_admin_welcome'] = 'Lisää uusi domainin ylläpitäjä'; @@ -317,7 +318,7 @@ $PALANG['pAdminEdit_admin_password_text_error'] = '<span class="error_msg">Antamasi salasanat eivät täsmää!<br />Tai ne ovat tyhjiä!</span>'; $PALANG['pAdminEdit_admin_active'] = 'Aktiivinen'; $PALANG['pAdminEdit_admin_super_admin'] = 'Pääylläpitäjä'; -$PALANG['pAdminEdit_admin_button'] = 'Muokkaa ylläpitäjää'; +$PALANG['pAdminEdit_admin_button'] = 'Muokkaa ylläpitäjää'; # XXX text no longer used $PALANG['pAdminEdit_admin_result_error'] = '<span class="error_msg">Ylläpitäjän muokkaaminen ei onnistu!</span>'; $PALANG['pAdminEdit_admin_result_success'] = 'Ylläpitäjän muokkaus onnistui!'; Modified: trunk/languages/fo.lang =================================================================== --- trunk/languages/fo.lang 2011-04-10 16:30:49 UTC (rev 1030) +++ trunk/languages/fo.lang 2011-04-10 18:26:52 UTC (rev 1031) @@ -11,7 +11,7 @@ $PALANG['del'] = 'strika'; $PALANG['exit'] = 'Exit'; # XXX $PALANG['cancel'] = 'Cancel'; # XXX -$PALANG['save'] = 'Save'; # XXX +$PALANG['save'] = 'Save changes'; # XXX $PALANG['confirm'] = 'Ert tú vís(ur) í at tú vilt strika hetta?\n'; $PALANG['confirm_domain'] = 'Vilt tú veruliga strika allar upplýsingar fyri hetta navnaøki? Her kann ikki vendast aftur!\n'; $PALANG['check_update'] = 'Check for update'; # XXX @@ -116,7 +116,8 @@ $PALANG['pCreate_alias_result_success'] = 'Dulnevni er stovnað!'; $PALANG['pCreate_alias_catchall_text'] = 'Fyri at stovna eitt ið fangar alt, brúka eina "*" sum dulnevni.<br />Fyri navnaøki til navnaøki víðarisending brúka "*@navnaøki.fo" til hetta.'; -$PALANG['pEdit_alias_welcome'] = 'Broyt eitt dulnevni á tínum navnaøki.<br />Eina adressu pr. linju.'; +$PALANG['pEdit_alias_welcome'] = 'Broyt eitt dulnevni á tínum navnaøki.'; # XXX Text change to: 'Edit forwarding settings' +$PALANG['pEdit_alias_help'] = 'Eina adressu pr. linju.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' $PALANG['pEdit_alias_address'] = 'Dulnevni'; $PALANG['pEdit_alias_address_error'] = '<span class="error_msg">Finni ikki dulnevni!</span>'; $PALANG['pEdit_alias_goto'] = 'Til'; @@ -127,7 +128,7 @@ $PALANG['pEdit_alias_domain_result_error'] = '<span class="error_msg">Unable to modify the alias domain!</span>'; # XXX $PALANG['pEdit_alias_forward_and_store'] = 'Deliver to the local mailbox.'; # XXX $PALANG['pEdit_alias_forward_only'] = 'Forward to given email addresses only.'; # XXX -$PALANG['pEdit_alias_button'] = 'Broyt Dulnevni'; +$PALANG['pEdit_alias_button'] = 'Broyt Dulnevni'; # XXX text no longer used $PALANG['pEdit_alias_result_error'] = '<span class="error_msg">Fái ikki broytt dulnevni!</span>'; $PALANG['pCreate_mailbox_welcome'] = 'Stovna ein nýggjan postkassa á tínum navnaøki.'; @@ -163,7 +164,7 @@ $PALANG['pEdit_mailbox_quota_text'] = 'MB'; $PALANG['pEdit_mailbox_quota_text_error'] = 'MB<br /><span class="error_msg">Kvotan tú skrivaði er ov høg!</span>'; $PALANG['pEdit_mailbox_domain_error'] = '<span class="error_msg">Hetta navnaøki er ikki títt: '; -$PALANG['pEdit_mailbox_button'] = 'Broyt postkassa'; +$PALANG['pEdit_mailbox_button'] = 'Broyt postkassa'; # XXX text no longer used $PALANG['pEdit_mailbox_result_error'] = '<span class="error_msg">Fái ikki broytt loyniorðið!</span>'; $PALANG['pPassword_welcome'] = 'Broyt títt login loyniorð.'; @@ -294,7 +295,7 @@ $PALANG['pAdminEdit_domain_transport_text'] = 'Define transport'; # XXX $PALANG['pAdminEdit_domain_backupmx'] = 'Post servari er "backup MX"'; $PALANG['pAdminEdit_domain_active'] = 'Virki'; -$PALANG['pAdminEdit_domain_button'] = 'Broyt navnaøki'; +$PALANG['pAdminEdit_domain_button'] = 'Broyt navnaøki'; # XXX text no longer used $PALANG['pAdminEdit_domain_result_error'] = '<span class="error_msg">Fái ikki broytt navnaøki!</span>'; $PALANG['pAdminCreate_admin_welcome'] = 'Stovna navnaøki umsitara'; @@ -317,7 +318,7 @@ $PALANG['pAdminEdit_admin_password_text_error'] = '<span class="error_msg">Loyniorðini tú skrivaði samsvara ikki!<br />Ella eru tóm!</span>'; $PALANG['pAdminEdit_admin_active'] = 'Virkin'; $PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX -$PALANG['pAdminEdit_admin_button'] = 'Broyt umsitara'; +$PALANG['pAdminEdit_admin_button'] = 'Broyt umsitara'; # XXX text no longer used $PALANG['pAdminEdit_admin_result_error'] = '<span class="error_msg">Fái ikki broytt umsitara!</span>'; $PALANG['pAdminEdit_admin_result_success'] = 'Umsitari er broyttur!'; Modified: trunk/languages/fr.lang =================================================================== --- trunk/languages/fr.lang 2011-04-10 16:30:49 UTC (rev 1030) +++ trunk/languages/fr.lang 2011-04-10 18:26:52 UTC (rev 1031) @@ -13,7 +13,7 @@ $PALANG['del'] = 'Effacer'; $PALANG['exit'] = 'Quitter'; $PALANG['cancel'] = 'Annuler'; -$PALANG['save'] = 'Enregistrer'; +$PALANG['save'] = 'Enregistrer'; # XXX Text change: "Save" -> "Save changes" $PALANG['confirm'] = 'Etes vous sur de vouloir supprimer cet enregistrement\n'; $PALANG['confirm_domain'] = 'Etes-vous sur de vouloir effacer tous les enregistrements dans ce domaine ? Cette opération ne pourra pas être annulée.\n'; $PALANG['check_update'] = 'Vérifiez les mises à jour'; @@ -117,7 +117,8 @@ $PALANG['pCreate_alias_result_success'] = 'L\'alias a été ajouté !'; $PALANG['pCreate_alias_catchall_text'] = 'Pour ajouter un alias global, utilisez "*".<br />Pour un transfert de domaine à domaine, utilisez "*@domain.tld" dans le champs A.'; -$PALANG['pEdit_alias_welcome'] = 'Modifier un alias dans votre domaine.<br>Une entrée par ligne.'; +$PALANG['pEdit_alias_welcome'] = 'Modifier un alias dans votre domaine.'; # XXX Text change to: 'Edit forwarding settings' +$PALANG['pEdit_alias_help'] = 'Une entrée par ligne.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' $PALANG['pEdit_alias_address'] = 'Alias'; $PALANG['pEdit_alias_address_error'] = '<span class="error_msg">Impossible de localiser l\'alias!</span>'; $PALANG['pEdit_alias_goto'] = 'À'; @@ -128,7 +129,7 @@ $PALANG['pEdit_alias_domain_result_error'] = '<span class="error_msg">Impossible de modifier cet alias de domaine!</span>'; $PALANG['pEdit_alias_forward_and_store'] = 'Transferer une copie.'; $PALANG['pEdit_alias_forward_only'] = 'Transferer les messages sans conserver de copie.'; -$PALANG['pEdit_alias_button'] = 'Modifier cet alias'; +$PALANG['pEdit_alias_button'] = 'Modifier cet alias'; # XXX text no longer used $PALANG['pEdit_alias_result_error'] = '<span class="error_msg">Impossible de modifier cet alias!</span>'; $PALANG['pCreate_mailbox_welcome'] = 'Ajouter un nouveau compte courriel à votre domaine.'; @@ -164,7 +165,7 @@ $PALANG['pEdit_mailbox_quota_text'] = 'MB'; $PALANG['pEdit_mailbox_quota_text_error'] = 'MB<br /><span class="error_msg">La limite fournit est trop haute!</span>'; $PALANG['pEdit_mailbox_domain_error'] = '<span class="error_msg">Ce domaine n\'est pas le votre: '; -$PALANG['pEdit_mailbox_button'] = 'Modifier un compte courriel'; +$PALANG['pEdit_mailbox_button'] = 'Modifier un compte courriel'; # XXX text no longer used $PALANG['pEdit_mailbox_result_error'] = '<span class="error_msg">Impossible de modifier le compte courriel !</span>'; $PALANG['pPassword_welcome'] = 'Changer votre mot de passe.'; @@ -296,7 +297,7 @@ $PALANG['pAdminEdit_domain_transport_text'] = 'Definir le transport'; $PALANG['pAdminEdit_domain_backupmx'] = 'Le serveur est un "backup MX"'; $PALANG['pAdminEdit_domain_active'] = 'Actif'; -$PALANG['pAdminEdit_domain_button'] = 'Modifier un domaine'; +$PALANG['pAdminEdit_domain_button'] = 'Modifier un domaine'; # XXX text no longer used $PALANG['pAdminEdit_domain_result_error'] = '<span class="error_msg">Impossible de modifier le domain!</span>'; $PALANG['pAdminCreate_admin_welcome'] = 'Ajouter un nouvel administrateur de domaine'; @@ -319,7 +320,7 @@ $PALANG['pAdminEdit_admin_password_text_error'] = '<span class="error_msg">Le mot de passe fournit ne correspond pas<br /> ou est vide!</span>'; $PALANG['pAdminEdit_admin_active'] = 'Actif'; $PALANG['pAdminEdit_admin_super_admin'] = 'Super administrateur'; -$PALANG['pAdminEdit_admin_button'] = 'Modifier l\administrateur'; +$PALANG['pAdminEdit_admin_button'] = 'Modifier l\administrateur'; # XXX text no longer used $PALANG['pAdminEdit_admin_result_error'] = '<span class="error_msg">Impossible de modifier l\'administrateur !</span>'; $PALANG['pAdminEdit_admin_result_success'] = 'L\'administrateur a été ajouté!'; Modified: trunk/languages/hr.lang =================================================================== --- trunk/languages/hr.lang 2011-04-10 16:30:49 UTC (rev 1030) +++ trunk/languages/hr.lang 2011-04-10 18:26:52 UTC (rev 1031) @@ -10,7 +10,7 @@ $PALANG['del'] = 'brii'; $PALANG['exit'] = 'Exit'; # XXX $PALANG['cancel'] = 'Cancel'; # XXX -$PALANG['save'] = 'Save'; # XXX +$PALANG['save'] = 'Save changes'; # XXX $PALANG['confirm'] = 'Da li ste sigurni da elite ovo pobrisati?\n'; $PALANG['confirm_domain'] = 'Da li ste sigurni da elite pobrisati sve zapise za tu domenu? Zapisi ce biti zauvijek pobrisani!\n'; $PALANG['check_update'] = 'Provjeri da li postoji novija inačica'; @@ -115,7 +115,8 @@ $PALANG['pCreate_alias_result_success'] = 'Alias je dodan u tablicu aliasa!'; $PALANG['pCreate_alias_catchall_text'] = 'Ukoliko elite stvoriti "sveprimajući" alias, upotrijebite "*" umjesto aliasa.<br />Za preusmjeravanje iz domene na domenu, upotrijebite "*@domena.tld" u "Za" polju.'; -$PALANG['pEdit_alias_welcome'] = 'Uredi alias za domenu.<br />Jedan unos po liniji.'; +$PALANG['pEdit_alias_welcome'] = 'Uredi alias za domenu.'; # XXX Text change to: 'Edit forwarding settings' +$PALANG['pEdit_alias_help'] = 'Jedan unos po liniji.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' $PALANG['pEdit_alias_address'] = 'Alias'; $PALANG['pEdit_alias_address_error'] = '<span class="error_msg">Alias nije bilo moguče naći!</span>'; $PALANG['pEdit_alias_goto'] = 'Za'; @@ -126,7 +127,7 @@ $PALANG['pEdit_alias_domain_result_error'] = '<span class="error_msg">Unable to modify the alias domain!</span>'; # XXX $PALANG['pEdit_alias_forward_and_store'] = 'Deliver to the local mailbox.'; # XXX $PALANG['pEdit_alias_forward_only'] = 'Forward to given email addresses only.'; # XXX -$PALANG['pEdit_alias_button'] = 'Uredi alias'; +$PALANG['pEdit_alias_button'] = 'Uredi alias'; # XXX text no longer used $PALANG['pEdit_alias_result_error'] = '<span class="error_msg">Alias nije bilo moguče promjeniti!</span>'; $PALANG['pCreate_mailbox_welcome'] = 'Stvori novi potanski ormarić za izbranu domenu.'; @@ -162,7 +163,7 @@ $PALANG['pEdit_mailbox_quota_text'] = 'MB'; $PALANG['pEdit_mailbox_quota_text_error'] = 'MB<br /><span class="error_msg">Uneena kvota je prevelika!</span>'; $PALANG['pEdit_mailbox_domain_error'] = '<span class="error_msg">Izbrana domena nije pod vaim nadzorom: '; -$PALANG['pEdit_mailbox_button'] = 'Uredi potanski ormarić'; +$PALANG['pEdit_mailbox_button'] = 'Uredi potanski ormarić'; # XXX text no longer used $PALANG['pEdit_mailbox_result_error'] = '<span class="error_msg">Potanski ormarić nije bilo moguče promjeniti!</span>'; $PALANG['pPassword_welcome'] = 'Promijeni lozinku.'; @@ -293,7 +294,7 @@ $PALANG['pAdminEdit_domain_transport_text'] = 'Definiraj prijenos'; $PALANG['pAdminEdit_domain_backupmx'] = 'Posluitelj e-pote je sekundarni MX'; $PALANG['pAdminEdit_domain_active'] = 'Aktivan'; -$PALANG['pAdminEdit_domain_button'] = 'Uredi domenu'; +$PALANG['pAdminEdit_domain_button'] = 'Uredi domenu'; # XXX text no longer used $PALANG['pAdminEdit_domain_result_error'] = '<span class="error_msg">Domenu nije bilo moguće premeniti!</span>'; $PALANG['pAdminCreate_admin_welcome'] = 'Dodaj administratora domene'; @@ -316,7 +317,7 @@ $PALANG['pAdminEdit_admin_password_text_error'] = '<span class="error_msg">Uneene lozinke se ne podudaraju<br />ili su prazne!</span>'; $PALANG['pAdminEdit_admin_active'] = 'Aktivan'; $PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX -$PALANG['pAdminEdit_admin_button'] = 'Uredi Administratora'; +$PALANG['pAdminEdit_admin_button'] = 'Uredi Administratora'; # XXX text no longer used $PALANG['pAdminEdit_admin_result_error'] = '<span class="error_msg">Administratora nije bilo moguće promjeniti!</span>'; $PALANG['pAdminEdit_admin_result_success'] = 'Admininstrator je uspjeno promjenjen!'; Modified: trunk/languages/hu.lang =================================================================== --- trunk/languages/hu.lang 2011-04-10 16:30:49 UTC (rev 1030) +++ trunk/languages/hu.lang 2011-04-10 18:26:52 UTC (rev 1031) @@ -11,7 +11,7 @@ $PALANG['del'] = 'töröl'; $PALANG['exit'] = 'Kilép'; $PALANG['cancel'] = 'Cancel'; # XXX -$PALANG['save'] = 'Save'; # XXX +$PALANG['save'] = 'Save changes'; # XXX $PALANG['confirm'] = 'Biztos vagy benne hogy törlöd ezt?\n'; $PALANG['confirm_domain'] = 'Biztos hogy törölni akarod az összes bejegyzést ez alól a domain alól? Nem lehet visszahozni késõbb!\n'; $PALANG['check_update'] = 'Check for update'; # XXX @@ -118,7 +118,8 @@ $PALANG['pCreate_alias_result_success'] = 'Az aliast felvettük az alias táblába!'; $PALANG['pCreate_alias_catchall_text'] = 'A catch-all (*@valami.hu) beállításához használj "*" -ot az alias mezõnél.<br />A domain-domain közötti átirányításhoz használd a "*@akarmi.hu" címet.'; -$PALANG['pEdit_alias_welcome'] = 'Alias szerkesztése a domainhez.<br />Soronként egy.'; +$PALANG['pEdit_alias_welcome'] = 'Alias szerkesztése a domainhez.'; # XXX Text change to: 'Edit forwarding settings' +$PALANG['pEdit_alias_help'] = 'Soronként egy.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' $PALANG['pEdit_alias_address'] = 'Alias'; $PALANG['pEdit_alias_address_error'] = '<span class="error_msg">Nemsikerült megtalálni az aliast!</span>'; $PALANG['pEdit_alias_goto'] = 'Hova'; @@ -129,7 +130,7 @@ $PALANG['pEdit_alias_domain_result_error'] = '<span class="error_msg">Unable to modify the alias domain!</span>'; # XXX $PALANG['pEdit_alias_forward_and_store'] = 'Kézbesítés helyi mailbox-ba.'; $PALANG['pEdit_alias_forward_only'] = 'Továbbítás csak az adott email címre.'; -$PALANG['pEdit_alias_button'] = 'Alias szerkesztése'; +$PALANG['pEdit_alias_button'] = 'Alias szerkesztése'; # XXX text no longer used $PALANG['pEdit_alias_result_error'] = '<span class="error_msg">Nemsikerült módosítani az Aliast!</span>'; $PALANG['pCreate_mailbox_welcome'] = 'Új postafiók létrehozása az adott domainhez.'; @@ -165,7 +166,7 @@ $PALANG['pEdit_mailbox_quota_text'] = 'MB'; $PALANG['pEdit_mailbox_quota_text_error'] = 'MB<br /><span class="error_msg">A megadott quota érték túl magas!</span>'; $PALANG['pEdit_mailbox_domain_error'] = '<span class="error_msg">Ehhez a domainhez nincs jogosultságod: '; -$PALANG['pEdit_mailbox_button'] = 'Postafiók szerkesztése'; +$PALANG['pEdit_mailbox_button'] = 'Postafiók szerkesztése'; # XXX text no longer used $PALANG['pEdit_mailbox_result_error'] = '<span class="error_msg">Nemsikerült megváltoztatni a jelszót!</span>'; $PALANG['pPassword_welcome'] = 'Bejelentkezési jelszó megváltoztatása'; @@ -300,7 +301,7 @@ $PALANG['pAdminEdit_domain_transport_text'] = 'Transport definiálása'; $PALANG['pAdminEdit_domain_backupmx'] = 'A mail szerver egy backup MX'; $PALANG['pAdminEdit_domain_active'] = 'Aktív'; -$PALANG['pAdminEdit_domain_button'] = 'Domain szerkesztése'; +$PALANG['pAdminEdit_domain_button'] = 'Domain szerkesztése'; # XXX text no longer used $PALANG['pAdminEdit_domain_result_error'] = '<span class="error_msg">A domain módosítása sikertelen!</span>'; $PALANG['pAdminCreate_admin_welcome'] = 'Új domain admin felvétele'; @@ -323,7 +324,7 @@ $PALANG['pAdminEdit_admin_password_text_error'] = '<span class="error_msg">A beírt jelszavak nem egyeznek!<br />Vagy üresek!</span>'; $PALANG['pAdminEdit_admin_active'] = 'Aktív'; $PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX -$PALANG['pAdminEdit_admin_button'] = 'Admin szerkesztése'; +$PALANG['pAdminEdit_admin_button'] = 'Admin szerkesztése'; # XXX text no longer used $PALANG['pAdminEdit_admin_result_error'] = '<span class="error_msg">Nemsikerült módosítani az admint!</span>'; $PALANG['pAdminEdit_admin_result_success'] = 'Az Admin módosítása megtörtént!'; Modified: trunk/languages/is.lang =================================================================== --- trunk/languages/is.lang 2011-04-10 16:30:49 UTC (rev 1030) +++ trunk/languages/is.lang 2011-04-10 18:26:52 UTC (rev 1031) @@ -11,7 +11,7 @@ $PALANG['del'] = 'eyða'; $PALANG['exit'] = 'Exit'; # XXX $PALANG['cancel'] = 'Cancel'; # XXX -$PALANG['save'] = 'Save'; # XXX +$PALANG['save'] = 'Save changes'; # XXX $PALANG['confirm'] = 'Ertu viss um að þú viljir eyða þessu?\n'; $PALANG['confirm_domain'] = 'Ertu viss um að þú viljir eyða öllu sem tengist þessu léni? Það er ekki hægt að bakka með aðgerðina!\n'; $PALANG['check_update'] = 'Check for update'; # XXX @@ -115,7 +115,8 @@ $PALANG['pCreate_alias_result_success'] = 'Nýr alias hefur verið bætt við alias töfluna!'; $PALANG['pCreate_alias_catchall_text'] = 'Til að útbúa alias fyrir öll netföng í léninu, þá geturðu útbúið "*" alias.<br />Til að áframsenda með alias á annað lén eða pósthólf, notaðu "*@domain.tld í til.'; -$PALANG['pEdit_alias_welcome'] = 'Breyta alias í léninu.<br />Ein færsla í einu.'; +$PALANG['pEdit_alias_welcome'] = 'Breyta alias í léninu.'; # XXX Text change to: 'Edit forwarding settings' +$PALANG['pEdit_alias_help'] = 'Ein færsla í einu.'; # XXX # XXX Text change to: 'Accepts multiple targets, one entry per line.' $PALANG['pEdit_alias_address'] = 'Alias'; $PALANG['pEdit_alias_address_error'] = '<span class="error_msg">Get ekki fundið aliasinn!</s... [truncated message content] |
From: <chr...@us...> - 2011-04-10 20:19:23
|
Revision: 1034 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=1034&view=rev Author: christian_boltz Date: 2011-04-10 20:19:17 +0000 (Sun, 10 Apr 2011) Log Message: ----------- list-virtual.php: use create_page_browser(). This will speed up pagebrowser creation by about 300 times. This fixes https://sourceforge.net/tracker/?func=detail&aid=2967410&group_id=191583&atid=937964 It also brings back the pagebrowser in search mode and therefore fixes https://sourceforge.net/tracker/?func=detail&aid=2782818&group_id=191583&atid=937964 Detailed changes: - create separate query parts for pagebrowser creation (without SELECT $fieldlist and LIMIT clause) - create pagebrowser arrays with create_page_browser() - cNav_bar class: parameter cleanup in constructor: use count() instead of relying on external counting - change cNav_bar calls accordingly functions.inc.php: - remove pagebrowser generation from get_domain_properties() (no longer needed, obsoleted by create_page_browser) Modified Paths: -------------- trunk/functions.inc.php trunk/list-virtual.php Modified: trunk/functions.inc.php =================================================================== --- trunk/functions.inc.php 2011-04-10 19:20:31 UTC (rev 1033) +++ trunk/functions.inc.php 2011-04-10 20:19:17 UTC (rev 1034) @@ -449,88 +449,6 @@ $list['quota_sum'] = $row[0]; $list['alias_count'] = $list['alias_count'] - $list['mailbox_count']; - $list['alias_pgindex']=array (); - $list['mbox_pgindex']=array (); - $list['mbox_pgindex_count'] = 0; - //while loop to figure index names. use page_size and loop of queries - $i=0; - $current=0; - $page_size = (int) $CONF['page_size']; - if ($page_size < 1) die ("\$CONF['page_size'] = '$page_size' is invalid (it may only contain digits and must be >= 1)"); - $tmpstr=""; - $idxlabel=""; - $list['alias_pgindex_count'] = 0; - - if ( $list['alias_count'] > $page_size ) - { - while ( $current < $list['alias_count'] ) - { - $limitSql=('pgsql'==$CONF['database_type']) ? "1 OFFSET $current" : "$current, 1"; - $query = "SELECT $table_alias.address - FROM $table_alias - LEFT JOIN $table_mailbox ON $table_alias.address=$table_mailbox.username - WHERE ($table_alias.domain='$domain' AND $table_mailbox.maildir IS NULL) - ORDER BY $table_alias.address LIMIT $limitSql"; - $result = db_query ("$query"); - $row = db_array ($result['result']); - $tmpstr = $row['address']; - //get first 2 chars - $idxlabel = $tmpstr[0] . $tmpstr[1] . "-"; - ($current + $page_size - 1 <= $list['alias_count']) ? $current = $current + $page_size - 1 : $current = $list['alias_count'] - 1; - $limitSql=('pgsql'==$CONF['database_type']) ? "1 OFFSET $current" : "$current, 1"; - $query = "SELECT $table_alias.address - FROM $table_alias - LEFT JOIN $table_mailbox ON $table_alias.address=$table_mailbox.username - WHERE ($table_alias.domain='$domain' AND $table_mailbox.maildir IS NULL) - ORDER BY $table_alias.address LIMIT $limitSql"; - $result = db_query ("$query"); - $row = db_array ($result['result']); - $tmpstr = $row['address']; - $idxlabel = $idxlabel . $tmpstr[0] . $tmpstr[1]; - - $current = $current + 1; - - $list['alias_pgindex'][]=$idxlabel; - $i++; - } - $list['alias_pgindex_count']=$i; - } - - $i=0; - $current=0; - $page_size = $CONF['page_size']; - $tmpstr=""; - $idxlabel=""; - - if ( $list['mailbox_count'] > $page_size ) - { - while ( $current < $list['mailbox_count'] ) - { - $limitSql=('pgsql'==$CONF['database_type']) ? "1 OFFSET $current" : "$current, 1"; - $query = "SELECT $table_mailbox.username FROM $table_mailbox WHERE $table_mailbox.domain='$domain' ORDER BY $table_mailbox.username LIMIT $limitSql"; - $result = db_query ("$query"); - $row = db_array ($result['result']); - $tmpstr = $row['username']; - //get first 2 chars - $idxlabel = $tmpstr[0] . $tmpstr[1] . "-"; - ($current + $page_size - 1 <= $list['mailbox_count']) ? $current = $current + $page_size - 1 : $current = $list['mailbox_count'] - 1; - $limitSql=('pgsql'==$CONF['database_type']) ? "1 OFFSET $current" : "$current, 1"; - $query = "SELECT $table_mailbox.username FROM $table_mailbox WHERE $table_mailbox.domain='$domain' ORDER BY $table_mailbox.username LIMIT $limitSql"; - $result = db_query ("$query"); - $row = db_array ($result['result']); - $tmpstr = $row['username']; - $idxlabel = $idxlabel . $tmpstr[0] . $tmpstr[1]; - - $current = $current + 1; - - $list['mbox_pgindex'][]=$idxlabel; - $i++; - } - $list['mbox_pgindex_count']=$i; - } - - // end mod - $query="SELECT * FROM $table_domain WHERE domain='$domain'"; if ('pgsql'==$CONF['database_type']) { Modified: trunk/list-virtual.php =================================================================== --- trunk/list-virtual.php 2011-04-10 19:20:31 UTC (rev 1033) +++ trunk/list-virtual.php 2011-04-10 20:19:17 UTC (rev 1034) @@ -155,14 +155,18 @@ $sql_where = " AND ( address LIKE '%$search%' OR goto LIKE '%$search%' ) "; } - $query = "SELECT address, - goto, - modified, - active - FROM $table_alias - WHERE $sql_domain AND NOT EXISTS(SELECT 1 FROM $table_mailbox WHERE username=$table_alias.address) $sql_where - ORDER BY address LIMIT $page_size OFFSET $fDisplay"; +$alias_pagebrowser_query = " + FROM $table_alias + WHERE $sql_domain AND NOT EXISTS(SELECT 1 FROM $table_mailbox WHERE username=$table_alias.address) $sql_where + ORDER BY address +"; +$query = " + SELECT address, goto, modified, active + $alias_pagebrowser_query + LIMIT $page_size OFFSET $fDisplay +"; + $result = db_query ($query); if ($result['rows'] > 0) { @@ -226,7 +230,8 @@ $sql_where .= " AND ( $table_quota.path='quota/storage' OR $table_quota.path IS NULL ) "; } -$query = "$sql_select\n$sql_from\n$sql_join\n$sql_where\n$sql_order\n$sql_limit"; +$mailbox_pagebrowser_query = "$sql_from\n$sql_join\n$sql_where\n$sql_order" ; +$query = "$sql_select\n$mailbox_pagebrowser_query\n$sql_limit"; $result = db_query ($query); @@ -267,17 +272,6 @@ $tCanAddAlias = false; $tCanAddMailbox = false; -# TODO: needs reworking for $search... -# TODO: (= bug: no page browser displayed in search mode!) - https://sourceforge.net/tracker/?func=detail&aid=2782818&group_id=191583&atid=937964 -# for non-search mode, get_domain_properties counts the aliases and mailboxes -# Options: -# a) -# if ($search == "") -> get_domain_properties -# else -> "manual count" -# b) -# "manual count" for all cases (not really more work, queries are similar) -# -# Note: get_domain_properties also creates the page browser (which needs performance tuning anyway...) $limit = get_domain_properties($fDomain); if (isset ($limit)) { if ($fDisplay >= $page_size) { @@ -342,9 +336,9 @@ var $url; //* manually var $fInit, $arr_prev, $arr_next, $arr_top; //* internal var $anchor; - function cNav_bar ($aCount, $aTitle, $aLimit, $aPage_size, $aPages, $aSearch) + function cNav_bar ($aTitle, $aLimit, $aPage_size, $aPages, $aSearch) { - $this->count = $aCount; + $this->count = count($aPages); $this->title = $aTitle; $this->limit = $aLimit; $this->page_size = $aPage_size; @@ -428,10 +422,12 @@ } } -$nav_bar_alias = new cNav_bar ($limit['alias_pgindex_count'], $PALANG['pOverview_alias_title'], $fDisplay, $CONF['page_size'], $limit['alias_pgindex'], $search); +$pagebrowser_alias = create_page_browser("$table_alias.address", $alias_pagebrowser_query); +$nav_bar_alias = new cNav_bar ($PALANG['pOverview_alias_title'], $fDisplay, $CONF['page_size'], $pagebrowser_alias, $search); $nav_bar_alias->url = '&domain='.$fDomain; -$nav_bar_mailbox = new cNav_bar ($limit['mbox_pgindex_count'], $PALANG['pOverview_mailbox_title'], $fDisplay, $CONF['page_size'], $limit['mbox_pgindex'], $search); +$pagebrowser_mailbox = create_page_browser("$table_mailbox.username", $mailbox_pagebrowser_query); +$nav_bar_mailbox = new cNav_bar ($PALANG['pOverview_mailbox_title'], $fDisplay, $CONF['page_size'], $pagebrowser_mailbox, $search); $nav_bar_mailbox->url = '&domain='.$fDomain; //print $nav_bar_alias->display_top (); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2011-04-10 22:16:04
|
Revision: 1036 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=1036&view=rev Author: christian_boltz Date: 2011-04-10 22:15:56 +0000 (Sun, 10 Apr 2011) Log Message: ----------- Changed delete.php to use flash_error(), removed some HTML from languages/* delete.php: - replace various $tMessage=... with flash_error() - always redirect to the relevant page, even if an error happened - fix error check in delete admin - removed HTML formatting (<b>, <span>) from some error messages - replaced check for pgsql + BEGIN/COMMIT/ROLLBACK with db_begin(), db_commit() and db_rollback() - the smarty message.tpl is most probably superfluous languages/*.lang: - removed HTML (<span>) from messages used by delete.php fetchmail.php, scripts/snippets/baseclass.php - remove superfluous </span> Modified Paths: -------------- trunk/delete.php trunk/fetchmail.php trunk/languages/bg.lang trunk/languages/ca.lang trunk/languages/cn.lang trunk/languages/cs.lang trunk/languages/da.lang trunk/languages/de.lang trunk/languages/en.lang trunk/languages/es.lang trunk/languages/et.lang trunk/languages/eu.lang trunk/languages/fi.lang trunk/languages/fo.lang trunk/languages/fr.lang trunk/languages/hr.lang trunk/languages/hu.lang trunk/languages/is.lang trunk/languages/it.lang trunk/languages/ja.lang trunk/languages/lt.lang trunk/languages/mk.lang trunk/languages/nb.lang trunk/languages/nl.lang trunk/languages/nn.lang trunk/languages/pl.lang trunk/languages/pt-br.lang trunk/languages/ru.lang trunk/languages/sk.lang trunk/languages/sl.lang trunk/languages/sv.lang trunk/languages/tr.lang trunk/languages/tw.lang trunk/scripts/snippets/baseclass.php Modified: trunk/delete.php =================================================================== --- trunk/delete.php 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/delete.php 2011-04-10 22:15:56 UTC (rev 1036) @@ -50,16 +50,11 @@ $result_admin = db_delete ('admin',$fWhere,$fDelete); $result_domain_admins = db_delete ('domain_admins',$fWhere,$fDelete); - if (!($result_admin == 1) and ($result_domain_admins >= 0)) - { - $error = 1; - $tMessage = $PALANG['pAdminDelete_admin_error']; + if ($result_admin != 1) { + flash_error($PALANG['pAdminDelete_admin_error']); } - else - { - $url = "list-admin.php"; - header ("Location: $url"); - } + header ("Location: list-admin.php"); + exit; } # ($fTable == "admin") elseif ($fTable == "domain") { @@ -78,14 +73,10 @@ if (!$result_domain || !domain_postdeletion($fDelete)) { - $error = 1; - $tMessage = $PALANG['pAdminDelete_domain_error']; + flash_error($PALANG['pAdminDelete_domain_error']); } - else - { - $url = "list-domain.php"; - header ("Location: $url"); - } + header ("Location: list-domain.php"); + exit; } # ($fTable == "domain") elseif ($fTable == "alias_domain") { @@ -93,10 +84,11 @@ $table_domain_alias = table_by_key('alias_domain'); $fWhere = 'alias_domain'; $fDelete = $fDomain; - if(db_delete('alias_domain',$fWhere,$fDelete)) { - $url = "list-domain.php"; - header ("Location: $url"); + if(db_delete('alias_domain',$fWhere,$fDelete) != 1) { + flash_error($PALANG['pAdminDelete_alias_domain_error']); } + header ("Location: list-domain.php"); + exit; } # ($fTable == "alias_domain") elseif ($fTable == "alias" or $fTable == "mailbox") @@ -105,16 +97,16 @@ if (!check_owner ($SESSID_USERNAME, $fDomain)) { $error = 1; - $tMessage = $PALANG['pDelete_domain_error'] . "<b>$fDomain</b>!</span>"; + flash_error($PALANG['pDelete_domain_error'] . "($fDomain)!"); } elseif (!check_alias_owner ($SESSID_USERNAME, $fDelete)) { $error = 1; - $tMessage = $PALANG['pDelete_alias_error'] . "<b>$fDelete</b>!</span>"; + flash_error($PALANG['pDelete_alias_error'] . "($fDelete)!"); } else { - if ($CONF['database_type'] == "pgsql") db_query('BEGIN'); + db_begin(); /* there may be no aliases to delete */ $result = db_query("SELECT * FROM $table_alias WHERE address = '$fDelete' AND domain = '$fDomain'"); if($result['rows'] == 1) { @@ -130,7 +122,7 @@ if ($result['rows'] != 1 || !$postdel_res) { $error = 1; - $tMessage = $PALANG['pDelete_delete_error'] . "<b>$fDelete</b> ("; + $tMessage = $PALANG['pDelete_delete_error'] . "$fDelete ("; if ($result['rows']!=1) { $tMessage.='mailbox'; @@ -140,7 +132,8 @@ { $tMessage.='post-deletion'; } - $tMessage.=')</span>'; + $tMessage.=')'; + flash_error($tMessage); } db_log ($fDomain, 'delete_mailbox', $fDelete); } @@ -161,21 +154,24 @@ if ($error != 1) { - if ($CONF['database_type'] == "pgsql") db_query('COMMIT'); - header ("Location: list-virtual.php?domain=$fDomain"); - exit; + db_commit(); } else { - $tMessage .= $PALANG['pDelete_delete_error'] . "<b>$fDelete</b> (physical mail)!</span>"; - if ($CONF['database_type'] == "pgsql") db_query('ROLLBACK'); + flash_error($PALANG['pDelete_delete_error'] . "$fDelete (physical mail)!"); + db_rollback(); } + header ("Location: list-virtual.php?domain=$fDomain"); + exit; } else { flash_error($PALANG['invalid_parameter']); + header("Location: main.php"); + exit; } +# we should most probably never reach this point $smarty->assign ('smarty_template', 'message'); -$smarty->assign ('tMessage', $tMessage); +$smarty->assign ('tMessage', $tMessage . " If you see this, please open a bugreport and include the exact delete.php parameters."); $smarty->display ('index.tpl'); Modified: trunk/fetchmail.php =================================================================== --- trunk/fetchmail.php 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/fetchmail.php 2011-04-10 22:15:56 UTC (rev 1036) @@ -146,7 +146,7 @@ $result = db_query ("delete from $table_fetchmail WHERE id=".$delete); if ($result['rows'] != 1) { - flash_error($PALANG['pDelete_delete_error']) . '</span>'; + flash_error($PALANG['pDelete_delete_error']); } else { flash_info(sprintf($PALANG['pDelete_delete_success'],$account)); } Modified: trunk/languages/bg.lang =================================================================== --- trunk/languages/bg.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/bg.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -84,12 +84,12 @@ $PALANG['pOverview_get_quota'] = 'Обем на пощенската кутия (MB)'; $PALANG['pOverview_get_modified'] = 'Последно модифициран'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Не мога да изтрия записа '; +$PALANG['pDelete_delete_error'] = 'Не мога да изтрия записа '; $PALANG['pDelete_delete_success'] = '%s deleted.'; # XXX $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Не мога да изтрия пощенската кутия'; -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Този домейн не е ваш! '; +$PALANG['pDelete_domain_error'] = 'Този домейн не е ваш! '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">Този домейн не е ваш '; -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Unable to delete alias '; # XXX +$PALANG['pDelete_alias_error'] = 'Unable to delete alias '; # XXX $PALANG['pCreate_alias_domain_welcome'] = 'Mirror addresses of one of your domains to another.'; # XXX $PALANG['pCreate_alias_domain_alias'] = 'Alias Domain'; # XXX $PALANG['pCreate_alias_domain_alias_text'] = 'The domain that mails come in for.'; # XXX @@ -280,8 +280,8 @@ $PALANG['pAdminCreate_domain_button'] = 'Добави домейн'; $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Не мога да добавя домейна!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Домейна бе добавен успешно!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Грешка при изтриването на домейна!</span>'; -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Unable to remove domain alias!</span>'; # XXX +$PALANG['pAdminDelete_domain_error'] = 'Грешка при изтриването на домейна!'; +$PALANG['pAdminDelete_alias_domain_error'] = 'Unable to remove domain alias!'; # XXX $PALANG['pAdminEdit_domain_welcome'] = 'Редактиране на домейн'; $PALANG['pAdminEdit_domain_domain'] = 'Домейн'; Modified: trunk/languages/ca.lang =================================================================== --- trunk/languages/ca.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/ca.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -82,12 +82,12 @@ $PALANG['pOverview_get_quota'] = 'Quota de bústia (MB)'; $PALANG['pOverview_get_modified'] = 'Última Modificació'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Imposible borrar el registre '; +$PALANG['pDelete_delete_error'] = 'Imposible borrar el registre '; $PALANG['pDelete_delete_success'] = '%s deleted.'; # XXX $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Unable to remove mailbox '; # XXX -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Aquest domini no et pertany '; +$PALANG['pDelete_domain_error'] = 'Aquest domini no et pertany '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">This domain is not yours '; # XXX -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Unable to delete alias '; # XXX +$PALANG['pDelete_alias_error'] = 'Unable to delete alias '; # XXX $PALANG['pCreate_alias_domain_welcome'] = 'Mirror addresses of one of your domains to another.'; # XXX $PALANG['pCreate_alias_domain_alias'] = 'Alias Domain'; # XXX $PALANG['pCreate_alias_domain_alias_text'] = 'The domain that mails come in for.'; # XXX @@ -278,8 +278,8 @@ $PALANG['pAdminCreate_domain_button'] = 'Afegir domini'; $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Imposible afegir el domini!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'El domini ha estat afegit!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Unable to remove domain!</span>'; # XXX -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Unable to remove domain alias!</span>'; # XXX +$PALANG['pAdminDelete_domain_error'] = 'Unable to remove domain!'; # XXX +$PALANG['pAdminDelete_alias_domain_error'] = 'Unable to remove domain alias!'; # XXX $PALANG['pAdminEdit_domain_welcome'] = 'Editar un domini'; $PALANG['pAdminEdit_domain_domain'] = 'Domini'; Modified: trunk/languages/cn.lang =================================================================== --- trunk/languages/cn.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/cn.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -83,12 +83,12 @@ $PALANG['pOverview_get_quota'] = '邮箱限制 (MB)'; $PALANG['pOverview_get_modified'] = '最后修改日期'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">不能删除本记录'; +$PALANG['pDelete_delete_error'] = '不能删除本记录'; $PALANG['pDelete_delete_success'] = '%s deleted.'; # XXX $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Unable to remove mailbox '; # XXX -$PALANG['pDelete_domain_error'] = '<span class="error_msg">你没有该域的管理权限'; +$PALANG['pDelete_domain_error'] = '你没有该域的管理权限'; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">This domain is not yours '; # XXX -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Unable to delete alias '; # XXX +$PALANG['pDelete_alias_error'] = 'Unable to delete alias '; # XXX $PALANG['pCreate_alias_domain_welcome'] = 'Mirror addresses of one of your domains to another.'; # XXX $PALANG['pCreate_alias_domain_alias'] = 'Alias Domain'; # XXX $PALANG['pCreate_alias_domain_alias_text'] = 'The domain that mails come in for.'; # XXX @@ -279,8 +279,8 @@ $PALANG['pAdminCreate_domain_button'] = '新增'; $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">新增域失败!</span>'; $PALANG['pAdminCreate_domain_result_success'] = '新增域成功!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Unable to remove domain!</span>'; # XXX -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Unable to remove domain alias!</span>'; # XXX +$PALANG['pAdminDelete_domain_error'] = 'Unable to remove domain!'; # XXX +$PALANG['pAdminDelete_alias_domain_error'] = 'Unable to remove domain alias!'; # XXX $PALANG['pAdminEdit_domain_welcome'] = '修改域'; $PALANG['pAdminEdit_domain_domain'] = '域名'; Modified: trunk/languages/cs.lang =================================================================== --- trunk/languages/cs.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/cs.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -88,12 +88,12 @@ $PALANG['pOverview_get_quota'] = 'Místo pro schránku (MB)'; $PALANG['pOverview_get_modified'] = 'Naposledy změněno'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Nelze smazat položku '; +$PALANG['pDelete_delete_error'] = 'Nelze smazat položku '; $PALANG['pDelete_delete_success'] = '%s odstraněn.'; $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Nelze odstranit schránku '; -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Tato doména není vaše '; +$PALANG['pDelete_domain_error'] = 'Tato doména není vaše '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">This domain is not yours '; # XXX -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Nelze odstranit přesměrování '; +$PALANG['pDelete_alias_error'] = 'Nelze odstranit přesměrování '; $PALANG['pCreate_alias_domain_welcome'] = 'Mirror addresses of one of your domains to another.'; # XXX $PALANG['pCreate_alias_domain_alias'] = 'Alias Domain'; # XXX $PALANG['pCreate_alias_domain_alias_text'] = 'The domain that mails come in for.'; # XXX @@ -288,8 +288,8 @@ $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Nepodařilo se přidat doménu!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Doména byla přidána!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Nepodařilo se odstranit doménu!</span>'; -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Unable to remove domain alias!</span>'; # XXX +$PALANG['pAdminDelete_domain_error'] = 'Nepodařilo se odstranit doménu!'; +$PALANG['pAdminDelete_alias_domain_error'] = 'Unable to remove domain alias!'; # XXX $PALANG['pAdminEdit_domain_welcome'] = 'Upravit doménu'; $PALANG['pAdminEdit_domain_domain'] = 'Doména'; Modified: trunk/languages/da.lang =================================================================== --- trunk/languages/da.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/da.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -86,12 +86,12 @@ $PALANG['pOverview_get_quota'] = 'Postboks Kvota (MB)'; $PALANG['pOverview_get_modified'] = 'Senest ændret'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Kan ikke slette denne post '; +$PALANG['pDelete_delete_error'] = 'Kan ikke slette denne post '; $PALANG['pDelete_delete_success'] = '%s er slettet.'; $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Kunne ikke fjerne postkassen '; -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Dette domæne er ikke dit '; +$PALANG['pDelete_domain_error'] = 'Dette domæne er ikke dit '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">This domain is not yours '; # XXX -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Kunne ikke slette aliaset '; +$PALANG['pDelete_alias_error'] = 'Kunne ikke slette aliaset '; $PALANG['pCreate_alias_domain_welcome'] = 'Mirror addresses of one of your domains to another.'; # XXX $PALANG['pCreate_alias_domain_alias'] = 'Alias Domain'; # XXX $PALANG['pCreate_alias_domain_alias_text'] = 'The domain that mails come in for.'; # XXX @@ -286,8 +286,8 @@ $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Kan ikke tilføje domæne!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Domænet er tilføjet!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Domænet kunne ikke slettes!</span>'; -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Unable to remove domain alias!</span>'; # XXX +$PALANG['pAdminDelete_domain_error'] = 'Domænet kunne ikke slettes!'; +$PALANG['pAdminDelete_alias_domain_error'] = 'Unable to remove domain alias!'; # XXX $PALANG['pAdminEdit_domain_welcome'] = 'Rediger et domæne'; $PALANG['pAdminEdit_domain_domain'] = 'Domæne'; Modified: trunk/languages/de.lang =================================================================== --- trunk/languages/de.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/de.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -85,12 +85,12 @@ $PALANG['pOverview_get_quota'] = 'Mailbox Quota (MB)'; $PALANG['pOverview_get_modified'] = 'Zuletzt verändert'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Eintrag konnte nicht gelöscht werden '; +$PALANG['pDelete_delete_error'] = 'Eintrag konnte nicht gelöscht werden '; $PALANG['pDelete_delete_success'] = '%s gelöscht.'; $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Mailbox konnte nicht gelöscht werden '; -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Diese Domain gehört nicht Ihnen '; +$PALANG['pDelete_domain_error'] = 'Diese Domain gehört nicht Ihnen '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">Diese Domain gehört nicht Ihnen '; -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Alias konnte nicht gelöscht werden '; +$PALANG['pDelete_alias_error'] = 'Alias konnte nicht gelöscht werden '; $PALANG['pCreate_alias_domain_welcome'] = 'Adressen einer Ihrer Domains auf eine andere Domain weiterleiten.'; $PALANG['pCreate_alias_domain_alias'] = 'Alias-Domain'; $PALANG['pCreate_alias_domain_alias_text'] = 'Die Domain, für die Mails hereinkommen.'; @@ -285,8 +285,8 @@ $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Konnte Domain nicht anlegen!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Domain wurde angelegt!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Domain konnte nicht gelöscht werden!</span>'; -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Alias-Domain konnte nicht gelöscht werden!</span>'; +$PALANG['pAdminDelete_domain_error'] = 'Domain konnte nicht gelöscht werden!'; +$PALANG['pAdminDelete_alias_domain_error'] = 'Alias-Domain konnte nicht gelöscht werden!'; $PALANG['pAdminEdit_domain_welcome'] = 'Domain editieren'; $PALANG['pAdminEdit_domain_domain'] = 'Domain'; Modified: trunk/languages/en.lang =================================================================== --- trunk/languages/en.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/en.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -86,12 +86,12 @@ $PALANG['pOverview_get_quota'] = 'Mailbox Quota (MB)'; $PALANG['pOverview_get_modified'] = 'Last Modified'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Unable to delete the entry '; +$PALANG['pDelete_delete_error'] = 'Unable to delete the entry '; $PALANG['pDelete_delete_success'] = '%s deleted.'; $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Unable to remove mailbox '; -$PALANG['pDelete_domain_error'] = '<span class="error_msg">This domain is not yours '; +$PALANG['pDelete_domain_error'] = 'This domain is not yours '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">This domain is not yours '; -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Unable to delete alias '; +$PALANG['pDelete_alias_error'] = 'Unable to delete alias '; $PALANG['pCreate_alias_domain_welcome'] = 'Mirror addresses of one of your domains to another.'; $PALANG['pCreate_alias_domain_alias'] = 'Alias Domain'; @@ -287,8 +287,9 @@ $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Unable to add domain!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Domain has been added!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Unable to remove domain!</span>'; -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Unable to remove domain alias!</span>'; +$PALANG['pAdminDelete_admin_error'] = 'Unable to delete admin!'; +$PALANG['pAdminDelete_domain_error'] = 'Unable to remove domain!'; +$PALANG['pAdminDelete_alias_domain_error'] = 'Unable to remove domain alias!'; $PALANG['pAdminEdit_domain_welcome'] = 'Edit a domain'; $PALANG['pAdminEdit_domain_domain'] = 'Domain'; Modified: trunk/languages/es.lang =================================================================== --- trunk/languages/es.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/es.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -83,12 +83,12 @@ $PALANG['pOverview_get_quota'] = 'Cuota de buzón (MB)'; $PALANG['pOverview_get_modified'] = 'Última Modificación'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Imposible borrar el registro '; +$PALANG['pDelete_delete_error'] = 'Imposible borrar el registro '; $PALANG['pDelete_delete_success'] = '%s borrado.'; $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">No se pudo eliminar el buzón '; -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Este dominio no le pertenece '; +$PALANG['pDelete_domain_error'] = 'Este dominio no le pertenece '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">Este dominio no te pertenece '; -$PALANG['pDelete_alias_error'] = '<span class="error_msg">No se pudo eliminar el alias '; +$PALANG['pDelete_alias_error'] = 'No se pudo eliminar el alias '; $PALANG['pCreate_alias_domain_welcome'] = 'Sincronizar direcciones de un dominio a otro.'; $PALANG['pCreate_alias_domain_alias'] = 'Alias de Dominio'; $PALANG['pCreate_alias_domain_alias_text'] = 'El dominio al que llega el email.'; @@ -280,8 +280,8 @@ $PALANG['pAdminCreate_domain_button'] = 'Añadir dominio'; $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">¡Imposible añadir el dominio!</span>'; $PALANG['pAdminCreate_domain_result_success'] = '¡El dominio ha sido añadido!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">¡No se pudo eliminar el dominio!</span>'; -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">¡No se pudo eliminar el alias de dominio!</span>'; +$PALANG['pAdminDelete_domain_error'] = '¡No se pudo eliminar el dominio!'; +$PALANG['pAdminDelete_alias_domain_error'] = '¡No se pudo eliminar el alias de dominio!'; $PALANG['pAdminEdit_domain_welcome'] = 'Editar un dominio'; $PALANG['pAdminEdit_domain_domain'] = 'Dominio'; Modified: trunk/languages/et.lang =================================================================== --- trunk/languages/et.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/et.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -83,12 +83,12 @@ $PALANG['pOverview_get_quota'] = 'Postkasti kettaruumi piirang (MB)'; $PALANG['pOverview_get_modified'] = 'Viimati muudetud'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Kustutamine ebaõnnestus. Kirje: '; +$PALANG['pDelete_delete_error'] = 'Kustutamine ebaõnnestus. Kirje: '; $PALANG['pDelete_delete_success'] = '%s deleted.'; # XXX $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Unable to remove mailbox '; # XXX -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Puuduvad õigused. Domeen: '; +$PALANG['pDelete_domain_error'] = 'Puuduvad õigused. Domeen: '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">This domain is not yours '; # XXX -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Unable to delete alias '; # XXX +$PALANG['pDelete_alias_error'] = 'Unable to delete alias '; # XXX $PALANG['pCreate_alias_domain_welcome'] = 'Mirror addresses of one of your domains to another.'; # XXX $PALANG['pCreate_alias_domain_alias'] = 'Alias Domain'; # XXX $PALANG['pCreate_alias_domain_alias_text'] = 'The domain that mails come in for.'; # XXX @@ -279,8 +279,8 @@ $PALANG['pAdminCreate_domain_button'] = 'Lisa domeen'; $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Domeeni lisamine ebaõnnestus!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Domeen on lisatud!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Unable to remove domain!</span>'; # XXX -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Unable to remove domain alias!</span>'; # XXX +$PALANG['pAdminDelete_domain_error'] = 'Unable to remove domain!'; # XXX +$PALANG['pAdminDelete_alias_domain_error'] = 'Unable to remove domain alias!'; # XXX $PALANG['pAdminEdit_domain_welcome'] = 'Redigeeri domeeni'; $PALANG['pAdminEdit_domain_domain'] = 'Domeen'; Modified: trunk/languages/eu.lang =================================================================== --- trunk/languages/eu.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/eu.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -82,12 +82,12 @@ $PALANG['pOverview_get_quota'] = 'Postontzi kuota (MB)'; $PALANG['pOverview_get_modified'] = 'Azken aldaketa'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Ezinezkoa sarrera ezabatzea '; +$PALANG['pDelete_delete_error'] = 'Ezinezkoa sarrera ezabatzea '; $PALANG['pDelete_delete_success'] = '%s deleted.'; # XXX $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Unable to remove mailbox '; # XXX -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Ez zara domeinu honen jabe'; +$PALANG['pDelete_domain_error'] = 'Ez zara domeinu honen jabe'; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">This domain is not yours '; # XXX -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Unable to delete alias '; # XXX +$PALANG['pDelete_alias_error'] = 'Unable to delete alias '; # XXX $PALANG['pCreate_alias_domain_welcome'] = 'Mirror addresses of one of your domains to another.'; # XXX $PALANG['pCreate_alias_domain_alias'] = 'Alias Domain'; # XXX $PALANG['pCreate_alias_domain_alias_text'] = 'The domain that mails come in for.'; # XXX @@ -277,8 +277,8 @@ $PALANG['pAdminCreate_domain_button'] = 'Domeinua gehitu'; $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Ezinezkoa domeinua gehitzea!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Domeinua gehituta!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Unable to remove domain!</span>'; # XXX -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Unable to remove domain alias!</span>'; # XXX +$PALANG['pAdminDelete_domain_error'] = 'Unable to remove domain!'; # XXX +$PALANG['pAdminDelete_alias_domain_error'] = 'Unable to remove domain alias!'; # XXX $PALANG['pAdminEdit_domain_welcome'] = 'Domeinu bat aldatu'; $PALANG['pAdminEdit_domain_domain'] = 'Domeinua'; Modified: trunk/languages/fi.lang =================================================================== --- trunk/languages/fi.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/fi.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -84,12 +84,12 @@ $PALANG['pOverview_get_quota'] = 'Postilaatikon kiintiö (MB)'; $PALANG['pOverview_get_modified'] = 'Viimeksi muokattu'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Tietueen poisto ei onnistu '; +$PALANG['pDelete_delete_error'] = 'Tietueen poisto ei onnistu '; $PALANG['pDelete_delete_success'] = '%s poistettu.'; $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Sähköpostilaatikkoa ei voitu poistaa '; -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Tämä ei ole sinun domainisi '; +$PALANG['pDelete_domain_error'] = 'Tämä ei ole sinun domainisi '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">Tämä ei ole sinun domainisi '; -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Aliasta ei voitu poistaa '; +$PALANG['pDelete_alias_error'] = 'Aliasta ei voitu poistaa '; $PALANG['pCreate_alias_domain_welcome'] = 'Peiliosoitteet domainistasi toiseen.'; $PALANG['pCreate_alias_domain_alias'] = 'Alias Domaini'; $PALANG['pCreate_alias_domain_alias_text'] = 'Domaini johon sähköpostit tulevat.'; @@ -279,8 +279,8 @@ $PALANG['pAdminCreate_domain_button'] = 'Lisää domain'; $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Domainin lisäys ei onnistunut!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Domain on lisätty!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Domainin voitu poistaa!</span>'; -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Domainin aliasta ei voitu poistaa!</span>'; +$PALANG['pAdminDelete_domain_error'] = 'Domainin voitu poistaa!'; +$PALANG['pAdminDelete_alias_domain_error'] = 'Domainin aliasta ei voitu poistaa!'; $PALANG['pAdminEdit_domain_welcome'] = 'Muokkaa domainia'; $PALANG['pAdminEdit_domain_domain'] = 'Domain'; Modified: trunk/languages/fo.lang =================================================================== --- trunk/languages/fo.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/fo.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -83,12 +83,12 @@ $PALANG['pOverview_get_quota'] = 'Postkassa kvota (MB)'; $PALANG['pOverview_get_modified'] = 'Síðst broytt'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Fái ikki strikað '; +$PALANG['pDelete_delete_error'] = 'Fái ikki strikað '; $PALANG['pDelete_delete_success'] = '%s deleted.'; # XXX $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Unable to remove mailbox '; # XXX -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Hetta er ikki títt navnaøki '; +$PALANG['pDelete_domain_error'] = 'Hetta er ikki títt navnaøki '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">This domain is not yours '; # XXX -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Unable to delete alias '; # XXX +$PALANG['pDelete_alias_error'] = 'Unable to delete alias '; # XXX $PALANG['pCreate_alias_domain_welcome'] = 'Mirror addresses of one of your domains to another.'; # XXX $PALANG['pCreate_alias_domain_alias'] = 'Alias Domain'; # XXX $PALANG['pCreate_alias_domain_alias_text'] = 'The domain that mails come in for.'; # XXX @@ -279,8 +279,8 @@ $PALANG['pAdminCreate_domain_button'] = 'Stovna navnaøki'; $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Fái ikki stovnað navnaøki!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Navnaøki er stovnað!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Unable to remove domain!</span>'; # XXX -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Unable to remove domain alias!</span>'; # XXX +$PALANG['pAdminDelete_domain_error'] = 'Unable to remove domain!'; # XXX +$PALANG['pAdminDelete_alias_domain_error'] = 'Unable to remove domain alias!'; # XXX $PALANG['pAdminEdit_domain_welcome'] = 'Broyt navnaøki'; $PALANG['pAdminEdit_domain_domain'] = 'Navnaøki'; Modified: trunk/languages/fr.lang =================================================================== --- trunk/languages/fr.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/fr.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -85,12 +85,12 @@ $PALANG['pOverview_get_quota'] = 'Limite compte courriels (MB)'; $PALANG['pOverview_get_modified'] = 'Dernière Modification'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Impossible d\'effacer cette entrée '; +$PALANG['pDelete_delete_error'] = 'Impossible d\'effacer cette entrée '; $PALANG['pDelete_delete_success'] = '%s supprimé.'; $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Impossible d\'effacer ce compte courriel'; -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Ce domaine n\'est pas le votre '; +$PALANG['pDelete_domain_error'] = 'Ce domaine n\'est pas le votre '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">Ce domaine n\'est pas le votre '; -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Impossible d\'effacer cet alias '; +$PALANG['pDelete_alias_error'] = 'Impossible d\'effacer cet alias '; $PALANG['pCreate_alias_domain_welcome'] = 'Les adresses mirroirs de l\'un de vos domaines vers un autre.'; $PALANG['pCreate_alias_domain_alias'] = 'Alias Domaine'; $PALANG['pCreate_alias_domain_alias_text'] = 'Le domaine dans lequel les courriels viennent.'; @@ -281,8 +281,8 @@ $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Impossible d\'ajouter le domaine!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Le domaine a été ajouté!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Impossible de supprimer le domain!</span>'; -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Impossible de supprimé cet alias de domaine!</span>'; +$PALANG['pAdminDelete_domain_error'] = 'Impossible de supprimer le domain!'; +$PALANG['pAdminDelete_alias_domain_error'] = 'Impossible de supprimé cet alias de domaine!'; $PALANG['pAdminEdit_domain_welcome'] = 'Modifier un domaine'; $PALANG['pAdminEdit_domain_domain'] = 'Domaine'; Modified: trunk/languages/hr.lang =================================================================== --- trunk/languages/hr.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/hr.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -82,12 +82,12 @@ $PALANG['pOverview_get_quota'] = 'Kvota za potanske ormariće (MB)'; $PALANG['pOverview_get_modified'] = 'Zadnja promjena'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Unos nije bilo moguče izbrisati '; +$PALANG['pDelete_delete_error'] = 'Unos nije bilo moguče izbrisati '; $PALANG['pDelete_delete_success'] = '%s deleted.'; # XXX $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Unable to remove mailbox '; # XXX -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Izabrana domena nije pod vaim nadzorom '; +$PALANG['pDelete_domain_error'] = 'Izabrana domena nije pod vaim nadzorom '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">This domain is not yours '; # XXX -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Unable to delete alias '; # XXX +$PALANG['pDelete_alias_error'] = 'Unable to delete alias '; # XXX $PALANG['pCreate_alias_domain_welcome'] = 'Mirror addresses of one of your domains to another.'; # XXX $PALANG['pCreate_alias_domain_alias'] = 'Alias Domain'; # XXX $PALANG['pCreate_alias_domain_alias_text'] = 'The domain that mails come in for.'; # XXX @@ -278,8 +278,8 @@ $PALANG['pAdminCreate_domain_button'] = 'Dodaj domenu'; $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Domenu nije bilo moguče dodati!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Domena je bila uspjeno dodana!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Unable to remove domain!</span>'; # XXX -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Unable to remove domain alias!</span>'; # XXX +$PALANG['pAdminDelete_domain_error'] = 'Unable to remove domain!'; # XXX +$PALANG['pAdminDelete_alias_domain_error'] = 'Unable to remove domain alias!'; # XXX $PALANG['pAdminEdit_domain_welcome'] = 'Uredi domenu'; $PALANG['pAdminEdit_domain_domain'] = 'Domena'; Modified: trunk/languages/hu.lang =================================================================== --- trunk/languages/hu.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/hu.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -85,12 +85,12 @@ $PALANG['pOverview_get_quota'] = 'Postafiók Quota (MB)'; $PALANG['pOverview_get_modified'] = 'Utolsó módosítás'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Nem sikerült törölni a bejegyzést '; +$PALANG['pDelete_delete_error'] = 'Nem sikerült törölni a bejegyzést '; $PALANG['pDelete_delete_success'] = '%s deleted.'; # XXX $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Nem sikerült törölni a mailbox-ot '; -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Ehhez a domainhez nincs jogosultságod '; +$PALANG['pDelete_domain_error'] = 'Ehhez a domainhez nincs jogosultságod '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">This domain is not yours '; # XXX -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Nem sikerült törölni az alias-t '; +$PALANG['pDelete_alias_error'] = 'Nem sikerült törölni az alias-t '; $PALANG['pCreate_alias_domain_welcome'] = 'Mirror addresses of one of your domains to another.'; # XXX $PALANG['pCreate_alias_domain_alias'] = 'Alias Domain'; # XXX $PALANG['pCreate_alias_domain_alias_text'] = 'The domain that mails come in for.'; # XXX @@ -285,8 +285,8 @@ $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">A domain felvétele sikertelen!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'A domain-t felvettük az adatbázisba!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">A domain törlése nem sikerült!</span>'; -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Unable to remove domain alias!</span>'; # XXX +$PALANG['pAdminDelete_domain_error'] = 'A domain törlése nem sikerült!'; +$PALANG['pAdminDelete_alias_domain_error'] = 'Unable to remove domain alias!'; # XXX $PALANG['pAdminEdit_domain_welcome'] = 'Domain szerkesztése'; $PALANG['pAdminEdit_domain_domain'] = 'Domain'; Modified: trunk/languages/is.lang =================================================================== --- trunk/languages/is.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/is.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -83,12 +83,12 @@ $PALANG['pOverview_get_quota'] = 'Pósthólfs kvóti (MB)'; $PALANG['pOverview_get_modified'] = 'Síðast breytt'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Get ekki eytt færslunni '; +$PALANG['pDelete_delete_error'] = 'Get ekki eytt færslunni '; $PALANG['pDelete_delete_success'] = '%s deleted.'; # XXX $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Unable to remove mailbox '; # XXX -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Þetta er ekki þitt lén '; +$PALANG['pDelete_domain_error'] = 'Þetta er ekki þitt lén '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">This domain is not yours '; # XXX -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Unable to delete alias '; # XXX +$PALANG['pDelete_alias_error'] = 'Unable to delete alias '; # XXX $PALANG['pCreate_alias_domain_welcome'] = 'Mirror addresses of one of your domains to another.'; # XXX $PALANG['pCreate_alias_domain_alias'] = 'Alias Domain'; # XXX $PALANG['pCreate_alias_domain_alias_text'] = 'The domain that mails come in for.'; # XXX @@ -278,8 +278,8 @@ $PALANG['pAdminCreate_domain_button'] = 'Bæta við léni'; $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Get ekki bætt við léni!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Lén hefur verið bætt inn!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Unable to remove domain!</span>'; # XXX -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Unable to remove domain alias!</span>'; # XXX +$PALANG['pAdminDelete_domain_error'] = 'Unable to remove domain!'; # XXX +$PALANG['pAdminDelete_alias_domain_error'] = 'Unable to remove domain alias!'; # XXX $PALANG['pAdminEdit_domain_welcome'] = 'Breyta léni'; $PALANG['pAdminEdit_domain_domain'] = 'Lén'; Modified: trunk/languages/it.lang =================================================================== --- trunk/languages/it.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/it.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -84,12 +84,12 @@ $PALANG['pOverview_get_quota'] = 'Quota delle caselle di posta (MB)'; $PALANG['pOverview_get_modified'] = 'Ultima modifica'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Impossibile cancellare '; +$PALANG['pDelete_delete_error'] = 'Impossibile cancellare '; $PALANG['pDelete_delete_success'] = '%s cancellati.'; $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Impossibile cancellare la casella '; -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Questo dominio non è tuo '; +$PALANG['pDelete_domain_error'] = 'Questo dominio non è tuo '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">This domain is not yours '; # XXX -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Impossibile cancellate lo alias '; +$PALANG['pDelete_alias_error'] = 'Impossibile cancellate lo alias '; $PALANG['pCreate_alias_domain_welcome'] = 'Mirror addresses of one of your domains to another.'; # XXX $PALANG['pCreate_alias_domain_alias'] = 'Alias Domain'; # XXX $PALANG['pCreate_alias_domain_alias_text'] = 'The domain that mails come in for.'; # XXX @@ -280,8 +280,8 @@ $PALANG['pAdminCreate_domain_button'] = 'Aggiungi dominio'; $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Impossibile aggiungere il dominio!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Il dominio è stato aggiunto!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Impossibile cancellare il dominio!</span>'; -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Unable to remove domain alias!</span>'; # XXX +$PALANG['pAdminDelete_domain_error'] = 'Impossibile cancellare il dominio!'; +$PALANG['pAdminDelete_alias_domain_error'] = 'Unable to remove domain alias!'; # XXX $PALANG['pAdminEdit_domain_welcome'] = 'Modifica un domain'; $PALANG['pAdminEdit_domain_domain'] = 'Dominio'; Modified: trunk/languages/ja.lang =================================================================== --- trunk/languages/ja.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/ja.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -85,12 +85,12 @@ $PALANG['pOverview_get_mailboxes'] = 'アドレス'; $PALANG['pOverview_get_quota'] = '容量制限 (MB)'; $PALANG['pOverview_get_modified'] = '最終更新日'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">エントリを削除できません。 '; +$PALANG['pDelete_delete_error'] = 'エントリを削除できません。 '; $PALANG['pDelete_delete_success'] = '%s を削除しました。'; $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">メールアドレスを削除できません。 '; -$PALANG['pDelete_domain_error'] = '<span class="error_msg">このドメインは管理外です。 '; +$PALANG['pDelete_domain_error'] = 'このドメインは管理外です。 '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">This domain is not yours '; # XXX -$PALANG['pDelete_alias_error'] = '<span class="error_msg">転送アドレスを削除できません。 '; +$PALANG['pDelete_alias_error'] = '転送アドレスを削除できません。 '; $PALANG['pCreate_alias_domain_welcome'] = 'Mirror addresses of one of your domains to another.'; # XXX $PALANG['pCreate_alias_domain_alias'] = 'Alias Domain'; # XXX $PALANG['pCreate_alias_domain_alias_text'] = 'The domain that mails come in for.'; # XXX @@ -285,8 +285,8 @@ $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">ドメインを追加できません!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'ドメインを追加しました。'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">ドメインが削除できません!</span>'; -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Unable to remove domain alias!</span>'; # XXX +$PALANG['pAdminDelete_domain_error'] = 'ドメインが削除できません!'; +$PALANG['pAdminDelete_alias_domain_error'] = 'Unable to remove domain alias!'; # XXX $PALANG['pAdminEdit_domain_welcome'] = 'ドメインの修正'; $PALANG['pAdminEdit_domain_domain'] = 'ドメイン'; Modified: trunk/languages/lt.lang =================================================================== --- trunk/languages/lt.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/lt.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -82,12 +82,12 @@ $PALANG['pOverview_get_quota'] = 'Pašto dėžutės kvota (MB)'; $PALANG['pOverview_get_modified'] = 'Paskutinis keitimas'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Įrašo pašalinti nepavyko '; +$PALANG['pDelete_delete_error'] = 'Įrašo pašalinti nepavyko '; $PALANG['pDelete_delete_success'] = '%s deleted.'; # XXX $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Unable to remove mailbox '; # XXX -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Ne jūsų sritis '; +$PALANG['pDelete_domain_error'] = 'Ne jūsų sritis '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">This domain is not yours '; # XXX -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Unable to delete alias '; # XXX +$PALANG['pDelete_alias_error'] = 'Unable to delete alias '; # XXX $PALANG['pCreate_alias_domain_welcome'] = 'Mirror addresses of one of your domains to another.'; # XXX $PALANG['pCreate_alias_domain_alias'] = 'Alias Domain'; # XXX $PALANG['pCreate_alias_domain_alias_text'] = 'The domain that mails come in for.'; # XXX @@ -278,8 +278,8 @@ $PALANG['pAdminCreate_domain_button'] = 'Registruoti sritį'; $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Srities užregistruoti nepavyko!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Sritis užregistruota!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Unable to remove domain!</span>'; # XXX -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Unable to remove domain alias!</span>'; # XXX +$PALANG['pAdminDelete_domain_error'] = 'Unable to remove domain!'; # XXX +$PALANG['pAdminDelete_alias_domain_error'] = 'Unable to remove domain alias!'; # XXX $PALANG['pAdminEdit_domain_welcome'] = 'Keisti sritį'; $PALANG['pAdminEdit_domain_domain'] = 'Sritis'; Modified: trunk/languages/mk.lang =================================================================== --- trunk/languages/mk.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/mk.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -83,12 +83,12 @@ $PALANG['pOverview_get_quota'] = 'Квота на сандаче (MB)'; $PALANG['pOverview_get_modified'] = 'Последна промена'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Не можам да го избришам записот '; +$PALANG['pDelete_delete_error'] = 'Не можам да го избришам записот '; $PALANG['pDelete_delete_success'] = '%s deleted.'; # XXX $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Unable to remove mailbox '; # XXX -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Овој домен не е ваш '; +$PALANG['pDelete_domain_error'] = 'Овој домен не е ваш '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">This domain is not yours '; # XXX -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Unable to delete alias '; # XXX +$PALANG['pDelete_alias_error'] = 'Unable to delete alias '; # XXX $PALANG['pCreate_alias_domain_welcome'] = 'Mirror addresses of one of your domains to another.'; # XXX $PALANG['pCreate_alias_domain_alias'] = 'Alias Domain'; # XXX $PALANG['pCreate_alias_domain_alias_text'] = 'The domain that mails come in for.'; # XXX @@ -280,8 +280,8 @@ $PALANG['pAdminCreate_domain_button'] = 'Додади домен'; $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Не можам да го додадам доменот!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Доменот е додаден!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Unable to remove domain!</span>'; # XXX -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Unable to remove domain alias!</span>'; # XXX +$PALANG['pAdminDelete_domain_error'] = 'Unable to remove domain!'; # XXX +$PALANG['pAdminDelete_alias_domain_error'] = 'Unable to remove domain alias!'; # XXX $PALANG['pAdminEdit_domain_welcome'] = 'Измена на домен'; $PALANG['pAdminEdit_domain_domain'] = 'Домен'; Modified: trunk/languages/nb.lang =================================================================== --- trunk/languages/nb.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/nb.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -85,12 +85,12 @@ $PALANG['pOverview_get_quota'] = 'Kvote for e-postkonto (MB)'; $PALANG['pOverview_get_modified'] = 'Sist endret'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Kan ikke slette oppføringen '; +$PALANG['pDelete_delete_error'] = 'Kan ikke slette oppføringen '; $PALANG['pDelete_delete_success'] = '%s slettet.'; $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Kan ikke slette e-postkontoen '; -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Dette domenet tilhører deg ikke '; +$PALANG['pDelete_domain_error'] = 'Dette domenet tilhører deg ikke '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">Dette domenet tilhører deg ikke '; -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Kan ikke slette alias '; +$PALANG['pDelete_alias_error'] = 'Kan ikke slette alias '; $PALANG['pCreate_alias_domain_welcome'] = 'Videresender alt som sendes til et domene til et annet domene.'; $PALANG['pCreate_alias_domain_alias'] = 'Aliasdomene'; $PALANG['pCreate_alias_domain_alias_text'] = 'Domenet de innkommende e-postmeldingene er adressert til.'; @@ -280,8 +280,8 @@ $PALANG['pAdminCreate_domain_button'] = 'Legg til domene'; $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Kunne ikke opprette domenet!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Domenet er blitt opprettet!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Kunne ikke fjerne domenet!</span>'; -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Kunne ikke fjerne domenealias!</span>'; +$PALANG['pAdminDelete_domain_error'] = 'Kunne ikke fjerne domenet!'; +$PALANG['pAdminDelete_alias_domain_error'] = 'Kunne ikke fjerne domenealias!'; $PALANG['pAdminEdit_domain_welcome'] = 'Endre et domene'; $PALANG['pAdminEdit_domain_domain'] = 'Domene'; Modified: trunk/languages/nl.lang =================================================================== --- trunk/languages/nl.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/nl.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -84,12 +84,12 @@ $PALANG['pOverview_get_quota'] = 'Mailbox Quota (MB)'; $PALANG['pOverview_get_modified'] = 'Laatst bewerkt'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Mislukt te verwijderen '; +$PALANG['pDelete_delete_error'] = 'Mislukt te verwijderen '; $PALANG['pDelete_delete_success'] = '%s verwijderd.'; $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Niet in staat mailbox te verwijderen '; -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Dit is niet uw domein '; +$PALANG['pDelete_domain_error'] = 'Dit is niet uw domein '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">Dit is niet uw domein '; -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Niet in staat alias te verwijderen '; +$PALANG['pDelete_alias_error'] = 'Niet in staat alias te verwijderen '; $PALANG['pCreate_alias_domain_welcome'] = 'Spiegel een van uw domeinen naar een ander domein.'; $PALANG['pCreate_alias_domain_alias'] = 'Alias domein'; $PALANG['pCreate_alias_domain_alias_text'] = 'Het domein waar mail voor binnen komt.'; @@ -280,8 +280,8 @@ $PALANG['pAdminCreate_domain_button'] = 'Voeg Domein toe'; $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Mislukt om het domein toe te voegen.</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Domein is toegevoegd!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Niet in staat domein te verwijderen!</span>'; -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Niet in staat domein alias te verwijderen!</span>'; +$PALANG['pAdminDelete_domain_error'] = 'Niet in staat domein te verwijderen!'; +$PALANG['pAdminDelete_alias_domain_error'] = 'Niet in staat domein alias te verwijderen!'; $PALANG['pAdminEdit_domain_welcome'] = 'Bewerk een domein'; $PALANG['pAdminEdit_domain_domain'] = 'Domein'; Modified: trunk/languages/nn.lang =================================================================== --- trunk/languages/nn.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/nn.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -83,12 +83,12 @@ $PALANG['pOverview_get_quota'] = 'Epostkonto Kvote (MB)'; $PALANG['pOverview_get_modified'] = 'Sist endret'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Kan ikke slette'; +$PALANG['pDelete_delete_error'] = 'Kan ikke slette'; $PALANG['pDelete_delete_success'] = '%s deleted.'; # XXX $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Unable to remove mailbox '; # XXX -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Dette domenet er ikke ditt'; +$PALANG['pDelete_domain_error'] = 'Dette domenet er ikke ditt'; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">This domain is not yours '; # XXX -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Unable to delete alias '; # XXX +$PALANG['pDelete_alias_error'] = 'Unable to delete alias '; # XXX $PALANG['pCreate_alias_domain_welcome'] = 'Mirror addresses of one of your domains to another.'; # XXX $PALANG['pCreate_alias_domain_alias'] = 'Alias Domain'; # XXX $PALANG['pCreate_alias_domain_alias_text'] = 'The domain that mails come in for.'; # XXX @@ -277,8 +277,8 @@ $PALANG['pAdminCreate_domain_button'] = 'Legg til domene'; $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Klarte ikke å legge til domenet!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Domenet er lagt til!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Unable to remove domain!</span>'; # XXX -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Unable to remove domain alias!</span>'; # XXX +$PALANG['pAdminDelete_domain_error'] = 'Unable to remove domain!'; # XXX +$PALANG['pAdminDelete_alias_domain_error'] = 'Unable to remove domain alias!'; # XXX $PALANG['pAdminEdit_domain_welcome'] = 'Endre domenet'; $PALANG['pAdminEdit_domain_domain'] = 'Domene'; Modified: trunk/languages/pl.lang =================================================================== --- trunk/languages/pl.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/pl.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -86,12 +86,12 @@ $PALANG['pOverview_get_quota'] = 'Udział (MB)'; $PALANG['pOverview_get_modified'] = 'Ostatnio zmodyfikowany'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Nie można usunąć tego wpisu '; +$PALANG['pDelete_delete_error'] = 'Nie można usunąć tego wpisu '; $PALANG['pDelete_delete_success'] = '%s usunięty.'; $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Nie można usunąć konta '; -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Ta domena nie należy do Ciebie '; +$PALANG['pDelete_domain_error'] = 'Ta domena nie należy do Ciebie '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">Ten alias domeny nie należy do Ciebie '; -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Nie można usunąć aliasu '; +$PALANG['pDelete_alias_error'] = 'Nie można usunąć aliasu '; $PALANG['pCreate_alias_domain_welcome'] = 'Duplikuj adresy z jednej Twojej domeny do innej.'; $PALANG['pCreate_alias_domain_alias'] = 'Domena aliasowana/źródłowa'; $PALANG['pCreate_alias_domain_alias_text'] = 'Domena do której przychodzą maile.'; @@ -282,8 +282,8 @@ $PALANG['pAdminCreate_domain_button'] = 'Dodaj domenę'; $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Nie można dodać domeny!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Domena została dodana!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Nie można usunąć domeny!</span>'; -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Nie można usunąć aliasu domeny!</span>'; +$PALANG['pAdminDelete_domain_error'] = 'Nie można usunąć domeny!'; +$PALANG['pAdminDelete_alias_domain_error'] = 'Nie można usunąć aliasu domeny!'; $PALANG['pAdminEdit_domain_welcome'] = 'Edytuj domenę'; $PALANG['pAdminEdit_domain_domain'] = 'Domena'; Modified: trunk/languages/pt-br.lang =================================================================== --- trunk/languages/pt-br.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/pt-br.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -86,12 +86,12 @@ $PALANG['pOverview_get_quota'] = 'Cota de Espaço (MB)'; $PALANG['pOverview_get_modified'] = 'Última Modificação'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Não foi possível remover o registro '; +$PALANG['pDelete_delete_error'] = 'Não foi possível remover o registro '; $PALANG['pDelete_delete_success'] = '%s removido.'; $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Não foi possível remover a conta de email '; -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Domínio não lhe pertence '; +$PALANG['pDelete_domain_error'] = 'Domínio não lhe pertence '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">Domínio não lhe pertence '; -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Não foi possível remover o alias '; +$PALANG['pDelete_alias_error'] = 'Não foi possível remover o alias '; $PALANG['pCreate_alias_domain_welcome'] = 'Configuração de espelhamento de endereços de um domínio para outro.'; $PALANG['pCreate_alias_domain_alias'] = 'Alias de Domínio'; @@ -287,8 +287,8 @@ $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Não foi possível criar o domínio!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Domínio criado!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Não foi possível remover o domínio!</span>'; -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Não foi possível remover o alias de domínio!</span>'; +$PALANG['pAdminDelete_domain_error'] = 'Não foi possível remover o domínio!'; +$PALANG['pAdminDelete_alias_domain_error'] = 'Não foi possível remover o alias de domínio!'; $PALANG['pAdminEdit_domain_welcome'] = 'Edição de domínio.'; $PALANG['pAdminEdit_domain_domain'] = 'Domínio'; Modified: trunk/languages/ru.lang =================================================================== --- trunk/languages/ru.lang 2011-04-10 22:12:56 UTC (rev 1035) +++ trunk/languages/ru.lang 2011-04-10 22:15:56 UTC (rev 1036) @@ -87,12 +87,12 @@ $PALANG['pOverview_get_quota'] = 'Квота ящика (МБ)'; $PALANG['pOverview_get_modified'] = 'Последнее изменение'; -$PALANG['pDelete_delete_error'] = '<span class="error_msg">Невозможно удалить запись '; +$PALANG['pDelete_delete_error'] = 'Невозможно удалить запись '; $PALANG['pDelete_delete_success'] = '%s удален.'; $PALANG['pDelete_postdelete_error'] = '<span class="error_msg">Невозможно удалить ящик '; -$PALANG['pDelete_domain_error'] = '<span class="error_msg">Этот домен не принадлежит вам '; +$PALANG['pDelete_domain_error'] = 'Этот домен не принадлежит вам '; $PALANG['pDelete_domain_alias_error'] = '<span class="error_msg">Этот домен не принадлежит вам '; -$PALANG['pDelete_alias_error'] = '<span class="error_msg">Невозможно удалить алиас '; +$PALANG['pDelete_alias_error'] = 'Невозможно удалить алиас '; $PALANG['pCreate_alias_domain_welcome'] = 'Отображать адреса одного вашего домена на другой.'; $PALANG['pCreate_alias_domain_alias'] = 'Домен-алиас'; $PALANG['pCreate_alias_domain_alias_text'] = 'Домен, в который приходит почта.'; @@ -287,8 +287,8 @@ $PALANG['pAdminCreate_domain_result_error'] = '<span class="error_msg">Невозможно добавить домен!</span>'; $PALANG['pAdminCreate_domain_result_success'] = 'Домен был добавлен!'; -$PALANG['pAdminDelete_domain_error'] = '<span class="error_msg">Невозможно удалить домен!</span>'; -$PALANG['pAdminDelete_alias_domain_error'] = '<span class="error_msg">Невозможно удалить домен-алиас!</span>'; +$PALANG['pAdminDelete_domain_error'] = 'Невозможно удалить домен!'; +$PALANG['pAdminDelete_alias_domain_error'] = 'Невозможно удалить домен-алиас!'; $PALANG['pAdminEdit_domain_welcome'] = 'Редактирование домена'; $PALANG['pAdminEdit_domain_domain'] = 'Домен'; Modified: trunk/languages/sk.lang ===... [truncated message content] |
From: <chr...@us...> - 2011-04-19 20:18:53
|
Revision: 1042 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=1042&view=rev Author: christian_boltz Date: 2011-04-19 20:18:46 +0000 (Tue, 19 Apr 2011) Log Message: ----------- Add support for domain-level quota (total quota for a domain) Based on a patch from W. Rossmann (W. Rossmann@SF), https://sourceforge.net/tracker/index.php?func=detail&aid=2974928&group_id=191583&atid=937966 with some modifications, cleanup and adoptions to trunk (especially templates) config.inc.php: - new config option $CONF['domain_quota'] to enable/disable domain-level quota (default: enabled) - new config option $CONF['domain_quota_default'] (default: 2 GB) functions.inc.php - check_quota(): - add code to check the quota sum on a domain - add optional parameter $username (to exclude that username from quota calculation, used by edit-mailbox) edit-domain.php, create-domain.php, admin_edit-domain.tpl, admin_create-domain.tpl: - add input field and handling for domain-level quota list-domain.php, overview-get.tpl, adminlistdomain.tpl: - display allocated and allowed domain quota - beautify quota and max_quota fields - display "unlimited" instead of "-1" edit-mailbox.php: - hand over username to check_quota() Modified Paths: -------------- trunk/config.inc.php trunk/create-domain.php trunk/edit-domain.php trunk/edit-mailbox.php trunk/functions.inc.php trunk/list-domain.php trunk/templates/admin_create-domain.tpl trunk/templates/admin_edit-domain.tpl trunk/templates/adminlistdomain.tpl trunk/templates/overview-get.tpl Modified: trunk/config.inc.php =================================================================== --- trunk/config.inc.php 2011-04-19 19:51:01 UTC (rev 1041) +++ trunk/config.inc.php 2011-04-19 20:18:46 UTC (rev 1042) @@ -182,10 +182,13 @@ $CONF['aliases'] = '10'; $CONF['mailboxes'] = '10'; $CONF['maxquota'] = '10'; +$CONF['domain_quota_default'] = '2048'; // Quota // When you want to enforce quota for your mailbox users set this to 'YES'. $CONF['quota'] = 'NO'; +// If you want to enforce domain-level quotas set this to 'YES'. +$CONF['domain_quota'] = 'YES'; // You can either use '1024000' or '1048576' $CONF['quota_multiplier'] = '1024000'; Modified: trunk/create-domain.php =================================================================== --- trunk/create-domain.php 2011-04-19 19:51:01 UTC (rev 1041) +++ trunk/create-domain.php 2011-04-19 20:18:46 UTC (rev 1042) @@ -46,7 +46,8 @@ 'fDescription' => array('type' => 'str', 'default' =>''), 'fAliases' => array('type' => 'int', 'default' => $CONF['aliases']), 'fMailboxes' => array('type' => 'int', 'default' => $CONF['mailboxes']), - 'fMaxquota' => array('type' => 'int', 'default' => $CONF['maxquota']), + 'fMaxquota' => array('type' => 'int', 'default' => $CONF['maxquota']), + 'fDomainquota' => array('type' => 'int', 'default' => $CONF['domain_quota_default']), 'fTransport' => array('type' => 'str', 'default' => $CONF['transport_default'], 'options' => $CONF['transport_options']), 'fDefaultaliases' => array('type' => 'str', 'default' => 'on', 'options' => array('on', 'off')), 'fBackupmx' => array('type' => 'str', 'default' => 'off', 'options' => array('on', 'off')) @@ -80,6 +81,7 @@ $tTransport = $fTransport; $tAliases = $fAliases; $tMaxquota = $fMaxquota; + $tDomainquota = $fDomainquota; $tMailboxes = $fMailboxes; $tDefaultaliases = $fDefaultaliases; $tBackupmx = $fBackupmx; @@ -96,6 +98,7 @@ $tAliases = $fAliases; $tMailboxes = $fMailboxes; if (isset ($_POST['fMaxquota'])) $tMaxquota = $fMaxquota; + if (isset ($_POST['fDomainquota'])) $tDomainquota = $fDomainquota; if (isset ($_POST['fTransport'])) $tTransport = $fTransport; if (isset ($_POST['fDefaultaliases'])) $tDefaultaliases = $fDefaultaliases; if (isset ($_POST['fBackupmx'])) $tBackupmx = $fBackupmx; @@ -108,6 +111,7 @@ $tAliases = $CONF['aliases']; $tMailboxes = $CONF['mailboxes']; $tMaxquota = $CONF['maxquota']; + $tDomainquota = $CONF['domain_quota_default']; if ($fBackupmx == "on") { @@ -120,7 +124,7 @@ $sqlBackupmx = db_get_boolean(false); } - $sql_query = "INSERT INTO $table_domain (domain,description,aliases,mailboxes,maxquota,transport,backupmx,created,modified) VALUES ('$fDomain','$fDescription',$fAliases,$fMailboxes,$fMaxquota,'$fTransport','$sqlBackupmx',NOW(),NOW())"; + $sql_query = "INSERT INTO $table_domain (domain,description,aliases,mailboxes,maxquota,quota,transport,backupmx,created,modified) VALUES ('$fDomain','$fDescription',$fAliases,$fMailboxes,$fMaxquota,$fDomainquota,'$fTransport','$sqlBackupmx',NOW(),NOW())"; $result = db_query($sql_query); if ($result['rows'] != 1) { @@ -150,7 +154,8 @@ $smarty->assign ('tDescription', $tDescription, false); $smarty->assign ('tAliases', $tAliases); $smarty->assign ('tMailboxes', $tMailboxes); -$smarty->assign ('tMaxquota', $tMaxquota,false); +$smarty->assign ('tDomainquota', $tDomainquota); +$smarty->assign ('tMaxquota', $tMaxquota,false); # TODO: why is sanitize disabled? Should be just integer... $smarty->assign ('select_options', select_options ($CONF ['transport_options'], array ($tTransport)),false); $smarty->assign ('tDefaultaliases', ($tDefaultaliases == 'on') ? ' checked="checked"' : ''); $smarty->assign ('tBackupmx', ($tBackupmx == 'on') ? ' checked="checked"' : ''); Modified: trunk/edit-domain.php =================================================================== --- trunk/edit-domain.php 2011-04-19 19:51:01 UTC (rev 1041) +++ trunk/edit-domain.php 2011-04-19 20:18:46 UTC (rev 1042) @@ -47,6 +47,7 @@ $tDescription = $domain_properties['description']; $tAliases = $domain_properties['aliases']; $tMailboxes = $domain_properties['mailboxes']; + $tDomainquota = $domain_properties['quota']; $tMaxquota = $domain_properties['maxquota']; $tTransport = $domain_properties['transport']; $tBackupmx = $domain_properties['backupmx']; @@ -66,6 +67,11 @@ } else { $fMaxquota = 0; } + if (isset ($_POST['fDomainquota'])) { + $fDomainquota = intval($_POST['fDomainquota']); + } else { + $fDomainquota = $CONF['domain_quota_default']; + } $fTransport = $CONF['transport_default']; if($CONF['transport'] != 'NO' && isset ($_POST['fTransport'])) { @@ -101,7 +107,7 @@ $sqltransport = "transport='$fTransport',"; } - $result = db_query ("UPDATE $table_domain SET description='$fDescription',aliases=$fAliases,mailboxes=$fMailboxes,maxquota=$fMaxquota,$sqltransport backupmx='$sqlBackupmx',active='$sqlActive',modified=NOW() WHERE domain='$domain'"); + $result = db_query ("UPDATE $table_domain SET description='$fDescription',aliases=$fAliases,mailboxes=$fMailboxes,maxquota=$fMaxquota,quota=$fDomainquota,$sqltransport backupmx='$sqlBackupmx',active='$sqlActive',modified=NOW() WHERE domain='$domain'"); if ($result['rows'] == 1) { header ("Location: list-domain.php"); @@ -118,6 +124,7 @@ $smarty->assign ('tAliases', $tAliases); $smarty->assign ('tMailboxes', $tMailboxes); $smarty->assign ('tMaxquota', $tMaxquota); +$smarty->assign ('tDomainquota', $tDomainquota); $smarty->assign ('select_options', select_options($CONF['transport_options'], array($tTransport)), false); if ($tBackupmx) $smarty->assign ('tBackupmx', ' checked="checked"'); if ($tActive) $smarty->assign ('tActive', ' checked="checked"'); Modified: trunk/edit-mailbox.php =================================================================== --- trunk/edit-mailbox.php 2011-04-19 19:51:01 UTC (rev 1041) +++ trunk/edit-mailbox.php 2011-04-19 20:18:46 UTC (rev 1042) @@ -117,7 +117,7 @@ } if ($CONF['quota'] == "YES") { - if (!check_quota ($fQuota, $fDomain)) + if (!check_quota ($fQuota, $fDomain, $fUsername)) { $error = 1; $tName = $fName; Modified: trunk/functions.inc.php =================================================================== --- trunk/functions.inc.php 2011-04-19 19:51:01 UTC (rev 1041) +++ trunk/functions.inc.php 2011-04-19 20:18:46 UTC (rev 1042) @@ -678,29 +678,53 @@ // Action: Checks if the user is creating a mailbox with the correct quota // Call: check_quota (string domain) // -function check_quota ($quota, $domain) -{ +function check_quota ($quota, $domain, $username="") { + global $CONF; + $rval = false; $limit = get_domain_properties ($domain); if ($limit['maxquota'] == 0) { - return true; + $rval = true; } if (($limit['maxquota'] < 0) and ($quota < 0)) { - return true; + $rval = true; } if (($limit['maxquota'] > 0) and ($quota == 0)) { - return false; + $rval = false; } if ($quota > $limit['maxquota']) { - return false; + $rval = false; } else { - return true; + $rval = true; } + + # TODO: detailed error message ("domain quota exceeded", "mailbox quota too big" etc.) via flash_error? Or "available quota: xxx MB"? + if (!$rval || $CONF['domain_quota'] != 'YES') { + return $rval; + } elseif ($limit['quota'] <= 0) { + $rval = true; + } else { + $table_mailbox = table_by_key('mailbox'); + $query = "SELECT SUM(quota) FROM $table_mailbox WHERE domain = '" . escape_string($domain) . "'"; + if ($username != "") { + $query .= " AND username != '" . escape_string($username) . "'"; + } + $result = db_query ($query); + $row = db_row ($result['result']); + $cur_quota_total = divide_quota($row[0]); # convert to MB + if ( ($quota + $cur_quota_total) > $limit['quota'] ) { + $rval = false; + } else { + $rval = true; + } + } + + return $rval; } Modified: trunk/list-domain.php =================================================================== --- trunk/list-domain.php 2011-04-19 19:51:01 UTC (rev 1041) +++ trunk/list-domain.php 2011-04-19 20:18:46 UTC (rev 1042) @@ -73,7 +73,7 @@ "; $query = " - SELECT $table_domain_fieldlist , COUNT( DISTINCT $table_mailbox.username ) AS mailbox_count + SELECT $table_domain_fieldlist , COUNT( DISTINCT $table_mailbox.username ) AS mailbox_count, SUM( $table_mailbox.quota ) AS total_quota FROM $table_domain LEFT JOIN $table_mailbox ON $table_domain.domain = $table_mailbox.domain $where @@ -103,6 +103,9 @@ while ($row = db_array ($result['result'])) { # add number of aliases to $domain_properties array. mailbox aliases do not count. $domain_properties [$row['domain']] ['alias_count'] = $row['alias_count'] - $domain_properties [$row['domain']] ['mailbox_count']; + $domain_properties [$row['domain']] ['total_quota'] = (int) divide_quota($domain_properties [$row['domain']] ['total_quota']); # convert to MB + if ($domain_properties [$row['domain']] ['quota'] == -1) $domain_properties [$row['domain']] ['quota'] = $PALANG['pOverview_unlimited']; + if ($domain_properties [$row['domain']] ['maxquota'] == -1) $domain_properties [$row['domain']] ['maxquota'] = $PALANG['pOverview_unlimited']; } $smarty->assign ('domain_properties', $domain_properties); Modified: trunk/templates/admin_create-domain.tpl =================================================================== --- trunk/templates/admin_create-domain.tpl 2011-04-19 19:51:01 UTC (rev 1041) +++ trunk/templates/admin_create-domain.tpl 2011-04-19 20:18:46 UTC (rev 1042) @@ -24,6 +24,13 @@ <td><input class="flat" type="text" name="fMailboxes" value="{$tMailboxes}" /></td> <td>{$PALANG.pAdminCreate_domain_mailboxes_text}</td> </tr> +{if $CONF.domain_quota===YES} + <tr> + <td>{$PALANG.pAdminEdit_domain_quota}:</td> + <td><input class="flat" type="text" name="fDomainquota" value="{$tDomainquota}" /></td> + <td>{$PALANG.pAdminCreate_domain_maxquota_text}</td> + </tr> +{/if} {if $CONF.quota===YES} <tr> <td>{$PALANG.pAdminCreate_domain_maxquota}:</td> Modified: trunk/templates/admin_edit-domain.tpl =================================================================== --- trunk/templates/admin_edit-domain.tpl 2011-04-19 19:51:01 UTC (rev 1041) +++ trunk/templates/admin_edit-domain.tpl 2011-04-19 20:18:46 UTC (rev 1042) @@ -24,6 +24,13 @@ <td><input class="flat" type="text" name="fMailboxes" value="{$tMailboxes}" /></td> <td>{$PALANG.pAdminEdit_domain_mailboxes_text}</td> </tr> +{if $CONF.domain_quota===YES} + <tr> + <td>{$PALANG.pAdminEdit_domain_quota}:</td> + <td><input class="flat" type="text" name="fDomainquota" value="{$tDomainquota}" /></td> + <td>{$PALANG.pAdminEdit_domain_maxquota_text}</td> + </tr> +{/if} {if $CONF.quota===YES} <tr> <td>{$PALANG.pAdminEdit_domain_maxquota}:</td> Modified: trunk/templates/adminlistdomain.tpl =================================================================== --- trunk/templates/adminlistdomain.tpl 2011-04-19 19:51:01 UTC (rev 1041) +++ trunk/templates/adminlistdomain.tpl 2011-04-19 20:18:46 UTC (rev 1042) @@ -14,7 +14,8 @@ <td>{$PALANG.pAdminList_domain_description}</td> <td>{$PALANG.pAdminList_domain_aliases}</td> <td>{$PALANG.pAdminList_domain_mailboxes}</td> - {if $CONF.quota==YES}<td>{$PALANG.pAdminList_domain_maxquota}</td>{/if} + {if $CONF.quota==YES}<td>{$PALANG.pOverview_get_quota}</td>{/if} + {if $CONF.domain_quota==YES}<td>{$PALANG.pAdminList_domain_quota}</td>{/if} {if $CONF.transport==YES}<td>{$PALANG.pAdminList_domain_transport}</td>{/if} <td>{$PALANG.pAdminList_domain_backupmx}</td> <td>{$PALANG.pAdminList_domain_modified}</td> @@ -28,6 +29,7 @@ <td>{$domain.alias_count} / {$domain.aliases}</td> <td>{$domain.mailbox_count} / {$domain.mailboxes}</td> {if $CONF.quota==YES}<td>{$domain.maxquota}</td>{/if} + {if $CONF.domain_quota===YES}<td>{$domain.total_quota} / {$domain.quota}</td>{/if} {if $CONF.transport==YES}<td>{$domain.transport}</td>{/if} <td>{$domain.backupmx}</td> <td>{$domain.modified}</td> Modified: trunk/templates/overview-get.tpl =================================================================== --- trunk/templates/overview-get.tpl 2011-04-19 19:51:01 UTC (rev 1041) +++ trunk/templates/overview-get.tpl 2011-04-19 20:18:46 UTC (rev 1042) @@ -16,6 +16,7 @@ <td>{$PALANG.pOverview_get_aliases}</td> <td>{$PALANG.pOverview_get_mailboxes}</td> {if $CONF.quota===YES}<td>{$PALANG.pOverview_get_quota}</td>{/if} + {if $CONF.domain_quota===YES}<td>{$PALANG.pAdminList_domain_quota}</td>{/if} </tr> {foreach from=$domain_properties item=domain} {#tr_hilightoff#} @@ -23,6 +24,7 @@ <td>{$domain.alias_count} / {$domain.aliases}</td> <td>{$domain.mailbox_count} / {$domain.mailboxes}</td> {if $CONF.quota===YES}<td>{$domain.maxquota}</td>{/if} + {if $CONF.domain_quota===YES}<td>{$domain.total_quota} / {$domain.quota}</td>{/if} </tr> {/foreach} </table> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2011-04-24 14:08:17
|
Revision: 1052 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=1052&view=rev Author: christian_boltz Date: 2011-04-24 14:08:11 +0000 (Sun, 24 Apr 2011) Log Message: ----------- display alias domains less confusing (from/to instead of "is an alias domain for ...) This fixes https://sourceforge.net/tracker/?func=detail&aid=2890375&group_id=191583&atid=937967 list-virtual.php: - merge queries for from and to side of alias domains - use a mostly common query for MySQL and PgSQL - move "can create alias domain" logic to PHP list-virtual_alias_domain.tpl: - merge "from" and "to" view to one table - add "To" column to the merged table - do not link to $fDomain (which would lead to the currently displayed page) - drop the second table / "is an alias domain for ..." Modified Paths: -------------- trunk/list-virtual.php trunk/templates/list-virtual_alias_domain.tpl Modified: trunk/list-virtual.php =================================================================== --- trunk/list-virtual.php 2011-04-23 22:22:07 UTC (rev 1051) +++ trunk/list-virtual.php 2011-04-24 14:08:11 UTC (rev 1052) @@ -99,16 +99,21 @@ # TODO: add search support for alias domains if (boolconf('alias_domain')) { - # Alias-Domains - # first try to get a list of other domains pointing - # to this currently chosen one (aka. alias domains) - $query = "SELECT $table_alias_domain.alias_domain,$table_alias_domain.target_domain,$table_alias_domain.modified,$table_alias_domain.active FROM $table_alias_domain WHERE target_domain='$fDomain' ORDER BY $table_alias_domain.alias_domain LIMIT $fDisplay, $page_size"; - if ('pgsql'==$CONF['database_type']) - { - $query = "SELECT alias_domain,target_domain,extract(epoch from modified) as modified,active FROM $table_alias_domain WHERE target_domain='$fDomain' ORDER BY alias_domain LIMIT $page_size OFFSET $fDisplay"; + $modified_field = 'modified'; + if ('pgsql'==$CONF['database_type']) { # TODO: do we really need the extract(epoch from modified) for pgsql? We ust gmstrftime anyway (see below) + $modified_field = 'extract(epoch from modified) as modified'; } + + $query = " + SELECT alias_domain,target_domain,$modified_field,active FROM $table_alias_domain + WHERE alias_domain='$fDomain' OR target_domain='$fDomain' + ORDER BY alias_domain + LIMIT $page_size OFFSET $fDisplay + "; + $result = db_query ($query); $tAliasDomains = array(); + $can_create_alias_domain = 1; if ($result['rows'] > 0) { while ($row = db_array ($result['result'])) @@ -119,29 +124,11 @@ $row['active']=('t'==$row['active']) ? 1 : 0; } $tAliasDomains[] = $row; + if ($row['target_domain'] == $fDomain) $can_create_alias_domain = 0; } } - # now let's see if the current domain itself is an alias for another domain - $query = "SELECT $table_alias_domain.alias_domain,$table_alias_domain.target_domain,$table_alias_domain.modified,$table_alias_domain.active FROM $table_alias_domain WHERE alias_domain='$fDomain'"; - if ('pgsql'==$CONF['database_type']) - { - $query = "SELECT alias_domain,target_domain,extract(epoch from modified) as modified,active FROM $table_alias_domain WHERE alias_domain='$fDomain'"; + # TODO: set $can_create_alias_domain = 0; if all domains (of this admin) are already used as alias domains } - $result = db_query ($query); - $tTargetDomain = ""; - if ($result['rows'] > 0) - { - if($row = db_array ($result['result'])) - { - if ('pgsql'==$CONF['database_type']) - { - $row['modified']=gmstrftime('%c %Z',$row['modified']); - $row['active']=('t'==$row['active']) ? 1 : 0; - } - $tTargetDomain = $row; - } - } -} # # aliases @@ -457,11 +444,7 @@ if(sizeof ($tAliasDomains) > 0) $smarty->assign ('tAliasDomains', $tAliasDomains); -if(is_array($tTargetDomain)) -{ - $smarty->assign ('tTargetDomain', $tTargetDomain); - $smarty->assign ('PALANG_pOverview_alias_domain_target', sprintf($PALANG['pOverview_alias_domain_target'], $fDomain)); -} +$smarty->assign ('can_create_alias_domain', $can_create_alias_domain); $smarty->assign ('tAlias', $tAlias); $smarty->assign ('gen_show_status', $gen_show_status, false); $smarty->assign ('check_alias_owner', $check_alias_owner); Modified: trunk/templates/list-virtual_alias_domain.tpl =================================================================== --- trunk/templates/list-virtual_alias_domain.tpl 2011-04-23 22:22:07 UTC (rev 1051) +++ trunk/templates/list-virtual_alias_domain.tpl 2011-04-24 14:08:11 UTC (rev 1052) @@ -1,54 +1,42 @@ {*** Domain Aliases ***} <table id="alias_domain_table"> <tr> - <td colspan="4"><h3>{$PALANG.pOverview_alias_domain_title}</h3></td> + <td colspan="5"><h3>{$PALANG.pOverview_alias_domain_title}</h3></td> </tr> {if $tAliasDomains|@count>0 || $tTargetDomain|@count>1} {if $tAliasDomains|@count>0} {* -> HAT alias-domains *} {#tr_header#} - <td>{$PALANG.pOverview_alias_domain_aliases}</td> + <td>{$PALANG.pOverview_alias_address}</td> + <td>{$PALANG.pOverview_alias_goto}</td> <td>{$PALANG.pOverview_alias_domain_modified}</td> <td>{$PALANG.pOverview_alias_domain_active}</td> <td> </td> </tr> {foreach from=$tAliasDomains item=item} {#tr_hilightoff#} - <td><a href="{$smarty.config.url_list_virtual}?domain={$item.alias_domain|escape:"url"}&limit={$current_limit|escape:"url"}"> + <td>{if $item.alias_domain != $fDomain}<a href="{$smarty.config.url_list_virtual}?domain={$item.alias_domain|escape:"url"}&limit={$current_limit|escape:"url"}">{/if} {if $search eq ""} {$item.alias_domain} {else} {$item.alias_domain|replace:$search:"<span class='searchresult'>$search</span>"} {/if} - </a></td> + {if $item.alias_domain != $fDomain}</a>{/if}</td> + <td>{if $item.target_domain != $fDomain}<a href="{$smarty.config.url_list_virtual}?domain={$item.target_domain|escape:"url"}&limit={$current_limit|escape:"url"}">{/if} + {if $search eq ""} + {$item.target_domain} + {else} + {$item.target_domain|replace:$search:"<span class='searchresult'>$search</span>"} + {/if} + {if $item.target_domain != $fDomain}</a>{/if}</td> <td>{$item.modified}</td> <td><a href="{#url_edit_active#}?alias_domain=true&domain={$item.alias_domain|escape:"url"}&return={$smarty.config.url_list_virtual|escape:"url"}?domain={$fDomain|escape:"url"}&limit={$current_limit|escape:"url"}">{if $item.active==1}{$PALANG.YES}{else}{$PALANG.NO}{/if}</a></td> <td><a href="{#url_delete#}?table=alias_domain&delete={$item.alias_domain|escape:"url"}&domain={$item.alias_domain|escape:"url"}" onclick="return confirm ('{$PALANG.confirm}{$PALANG.pOverview_get_alias_domains}: {$item.alias_domain}');">{$PALANG.del}</a></td> </tr> {/foreach} {/if} - {if $tTargetDomain|@count>1} {* IST alias-domain *} - <tr class="header"> - <td>{$PALANG_pOverview_alias_domain_target}</td> - <td>{$PALANG.pOverview_alias_domain_modified}</td> - <td>{$PALANG.pOverview_alias_domain_active}</td> - <td> </td> - </tr> - {#tr_hilightoff#} - <td><a href="{$smarty.config.url_list_virtual}?domain={$tTargetDomain.target_domain|escape:"url"}&limit={$current_limit|escape:"url"}">{$tTargetDomain.target_domain}</a></td> - <td>{$tTargetDomain.modified}</td> - <td><a href="{#url_edit_active#}?alias_domain=true&domain={$fDomain|escape:"url"}&return={$smarty.config.url_list_virtual|escape:"url"}?domain={$fDomain|escape:"url"}&limit={$current_limit|escape:"url"}"> - {if $tTargetDomain.active==1} - {$PALANG.YES} - {else} - {$PALANG.NO} - {/if} - </a></td> - <td><a href="{#url_delete#}?table=alias_domain&delete={$fDomain|escape:"url"}&domain={$fDomain|escape:"url"}" onclick="return confirm ('{$PALANG.confirm}{$PALANG.pOverview_get_alias_domains}: {$fDomain})');">{$PALANG.del}</a></td> - </tr> - {/if} {/if} </table> -{if $tTargetDomain|@count<2} +{if $can_create_alias_domain} <br/> <p id="mailbox_table"><a href="{#url_create_alias_domain#}?target_domain={$fDomain|escape:"url"}">{$PALANG.pMenu_create_alias_domain}</a></p> {/if} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2011-04-24 16:00:05
|
Revision: 1054 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=1054&view=rev Author: christian_boltz Date: 2011-04-24 15:59:58 +0000 (Sun, 24 Apr 2011) Log Message: ----------- list-virtual: new option 'all' to display domain aliases, mailboxes and aliases on one page (like in 2.3.x) The question is: what do we want as default? -> feedback please! (personally, I'd prefer "all") templates/list-virtual.tpl: - new submenu option "all" - changed subnav to a more lightweight design css/default.css: - new style ".subnav p" for submenu - new style "span.active" Modified Paths: -------------- trunk/css/default.css trunk/templates/list-virtual.tpl Modified: trunk/css/default.css =================================================================== --- trunk/css/default.css 2011-04-24 14:23:32 UTC (rev 1053) +++ trunk/css/default.css 2011-04-24 15:59:58 UTC (rev 1054) @@ -76,7 +76,7 @@ #login_header, #login, #main_menu, #edit_form, #overview, #admin_domains, #admin_virtual, .nav_bar, #alias_domain_table, #alias_table, #mailbox_table, #overview_table, #log_table, -#admin_table, #footer { +#admin_table, #footer, .subnav { width: 750px; margin: 0 auto; } @@ -182,6 +182,14 @@ padding: 5px 5px 5px 5px; } +.subnav p { + border-left: 4px solid #aaaaaa; + padding-left:10px; + margin-top:2em; + margin-bottom:0; + font-size:12px; +} + #edit_form table { margin: 0 auto; padding-top: 10px; @@ -322,6 +330,10 @@ background:lightgreen; } +span.active { + font-weight:bold; +} + div.nav_bar { text-align: left; } Modified: trunk/templates/list-virtual.tpl =================================================================== --- trunk/templates/list-virtual.tpl 2011-04-24 14:23:32 UTC (rev 1053) +++ trunk/templates/list-virtual.tpl 2011-04-24 15:59:58 UTC (rev 1054) @@ -12,24 +12,28 @@ <p>{$PALANG.pOverview_alias_mailbox_count}: {$limit.mailbox_count} / {$limit.mailboxes}</p> {#form_search#} </div> -<div id="tabbar"> -<ul> -<li><a href="?domain={$smarty.get.domain}&tab=mailbox{if $search != ""}&search={$search}{/if}">{$PALANG.pOverview_mailbox_title}</a></li> -<li><a href="?domain={$smarty.get.domain}&tab=alias{if $search != ""}&search={$search}{/if}">{$PALANG.pOverview_alias_title}</a></li> -{if $boolconf_alias_domain} - <li><a href="?domain={$smarty.get.domain}&tab=alias_domain{if $search != ""}&search={$search}{/if}">{$PALANG.pOverview_alias_domain_title}</a></li> -{/if} -</ul> -</div> +<div class='subnav'><p>{$PALANG.show} + {if $tab=='all'}<span class='active'>{$PALANG.all}</span> + {else}<a href="?domain={$smarty.get.domain}&tab=all{if $search != ""}&search={$search}{/if}">{$PALANG.all}</a>{/if} + {if $tab=='mailbox'}<span class='active'>{$PALANG.pOverview_mailbox_title}</span> + {else}<a href="?domain={$smarty.get.domain}&tab=mailbox{if $search != ""}&search={$search}{/if}">{$PALANG.pOverview_mailbox_title}</a>{/if} + {if $tab=='alias'}<span class='active'>{$PALANG.pOverview_alias_title}</span> + {else}<a href="?domain={$smarty.get.domain}&tab=alias{if $search != ""}&search={$search}{/if}">{$PALANG.pOverview_alias_title}</a>{/if} + {if $boolconf_alias_domain} + {if $tab=='alias_domain'}<span class='active'>{$PALANG.pOverview_alias_domain_title}</span> + {else}<a href="?domain={$smarty.get.domain}&tab=alias_domain{if $search != ""}&search={$search}{/if}">{$PALANG.pOverview_alias_domain_title}</a>{/if} + {/if} +</p></div> <br clear="all"/><br/> {*** Domain Aliases ***} {if $boolconf_alias_domain} - {if $tab=='alias_domain'} + {if $tab=='alias_domain' || $tab=='all'} {include file="list-virtual_alias_domain.tpl"} {/if} {/if} +{if $tab=='all'}<br />{/if} {*** Aliases ***} -{if $tab=='alias'} +{if $tab=='alias' || $tab=='all'} {$nav_bar_alias.top} <table id="alias_table"> <tr> @@ -45,7 +49,8 @@ <p id="mailbox_table"><a href="create-alias.php?domain={$fDomain|escape:"url"}">{$PALANG.pMenu_create_alias}</a></p> {/if} {/if} -{if $tab=='mailbox'} +{if $tab=='all'}<br />{/if} +{if $tab=='mailbox' || $tab=='all'} {$nav_bar_mailbox.top} {assign var="colspan" value=9} {if $CONF.vacation_control_admin===YES}{assign var="colspan" value="`$colspan+1`"}{/if} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2011-05-01 20:08:35
|
Revision: 1059 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=1059&view=rev Author: christian_boltz Date: 2011-05-01 20:08:29 +0000 (Sun, 01 May 2011) Log Message: ----------- The link target of the "Main" menu item in users/ was configurable in $CONF['user_footer_link']. This doesn't really make sense - it should always be a link to users/main.php. configs/menu.conf: - added url_user_main = main.php templates/users_menu.tpl: - replaced $CONF.user_footer_link with #url_user_main# config.inc.php: - removed (now unused) $CONF['user_footer_link'] Modified Paths: -------------- trunk/config.inc.php trunk/configs/menu.conf trunk/templates/users_menu.tpl Modified: trunk/config.inc.php =================================================================== --- trunk/config.inc.php 2011-04-24 20:36:27 UTC (rev 1058) +++ trunk/config.inc.php 2011-05-01 20:08:29 UTC (rev 1059) @@ -280,9 +280,6 @@ $CONF['show_header_text'] = 'NO'; $CONF['header_text'] = ':: Postfix Admin ::'; -// link to display under 'Main' menu when logged in as a user. -$CONF['user_footer_link'] = "http://change-this-to-your.domain.tld/main"; - // Footer // Below information will be on all pages. // If you don't want the footer information to appear set this to 'NO'. Modified: trunk/configs/menu.conf =================================================================== --- trunk/configs/menu.conf 2011-04-24 20:36:27 UTC (rev 1058) +++ trunk/configs/menu.conf 2011-05-01 20:08:29 UTC (rev 1059) @@ -26,6 +26,7 @@ url_logout = logout.php # user-menu +url_user_main = main.php url_user_edit_alias = edit-alias.php url_user_vacation = vacation.php url_user_password = password.php Modified: trunk/templates/users_menu.tpl =================================================================== --- trunk/templates/users_menu.tpl 2011-04-24 20:36:27 UTC (rev 1058) +++ trunk/templates/users_menu.tpl 2011-05-01 20:08:29 UTC (rev 1059) @@ -1,6 +1,6 @@ <div id="menu"> <ul> - <li><a target="_top" href="{$CONF.user_footer_link}">{$PALANG.pMenu_main}</a></li> + <li><a target="_top" href="{#url_user_main#}">{$PALANG.pMenu_main}</a></li> {if $CONF.vacation===YES} <li><a target="_top" href="{#url_user_vacation#}">{$PALANG.pUsersMenu_vacation}</a></li> {/if} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |