Thread: SF.net SVN: postfixadmin:[751] trunk (Page 3)
Brought to you by:
christian_boltz,
gingerdog
From: <chr...@us...> - 2009-11-02 00:24:49
|
Revision: 751 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=751&view=rev Author: christian_boltz Date: 2009-11-02 00:24:40 +0000 (Mon, 02 Nov 2009) Log Message: ----------- after a long weekend... list-virtual.php: - merge search functionality into list-virtual.php (even more performant for domain admins now - search.php checked domain ownership after querying all domains...) (Use list-virtual.php?search=searchterm to test searching) - allow to display mailbox alias targets in mailbox list Fields added to the mailbox list array: * goto_mailbox (mailbox (=1) or forward-only (=0)) * goto_other (array with aliases not pointing to the mailbox) * (vacation alias is skipped) open question: is $display_mailbox_aliases = boolconf('special_alias_control') correct? I'm slightly confused with alias_control, alias_control_admin and special_alias_control... - build mailbox query step by step instead of having several variants which overlap 90% (and include a high bug potential, as already demonstrated by me ;-) templates/list-virtual.php - added search result highlighting - added displaying of mailbox aliases (goto_mailbox and goto_other) - removed ?domain= parameter for edit-alias.php, other edit-*.php have to follow (otherwise we'll have to extract the domain from the address to avoid incorrect parameters in search mode) functions.inc.php - added db_in_clause() which builds a "field in(x, y)" clause for database queries Modified Paths: -------------- trunk/functions.inc.php trunk/list-virtual.php trunk/templates/list-virtual.php Modified: trunk/functions.inc.php =================================================================== --- trunk/functions.inc.php 2009-11-01 23:46:42 UTC (rev 750) +++ trunk/functions.inc.php 2009-11-02 00:24:40 UTC (rev 751) @@ -1756,8 +1756,17 @@ } } +/** + * db_in_clause + * Action: builds and returns the "field in(x, y)" clause for database queries + * Call: db_in_clause (string field, array values) + */ +function db_in_clause($field, $values) { + return " $field IN ('" + . implode("','",escape_string(array_values($values))) + . "') "; +} - // // table_by_key // Action: Return table name for given key Modified: trunk/list-virtual.php =================================================================== --- trunk/list-virtual.php 2009-11-01 23:46:42 UTC (rev 750) +++ trunk/list-virtual.php 2009-11-02 00:24:40 UTC (rev 751) @@ -53,11 +53,13 @@ { if (isset ($_GET['domain'])) $fDomain = escape_string ($_GET['domain']); if (isset ($_GET['limit'])) $fDisplay = intval ($_GET['limit']); + $search = escape_string(safeget('search')); } else { if (isset ($_POST['fDomain'])) $fDomain = escape_string ($_POST['fDomain']); if (isset ($_POST['limit'])) $fDisplay = intval ($_POST['limit']); + $search = escape_string(safepost('search')); } // store fDomain in $_SESSION so after adding/editing aliases/mailboxes we can @@ -69,6 +71,7 @@ if (count($list_domains) == 0) { # die("no domains"); header("Location: list-domain.php"); # no domains (for this admin at least) - redirect to domain list + exit; } if ((is_array ($list_domains) and sizeof ($list_domains) > 0)) if (empty ($fDomain)) $fDomain = $list_domains[0]; @@ -79,6 +82,11 @@ exit(0); } +# +# alias domain +# + +# TODO: add search support for alias domains if (boolconf('alias_domain')) { # Alias-Domains # first try to get a list of other domains pointing @@ -124,23 +132,36 @@ } } +# +# aliases +# + +if ($search == "") { + $sql_domain = " $table_alias.domain='$fDomain' "; + $sql_where = ""; +} else { + $sql_domain = db_in_clause("$table_alias.domain", $list_domains); + $sql_where = " AND ( address LIKE '%$search%' OR goto LIKE '%$search%' ) "; +} $query = "SELECT $table_alias.address, $table_alias.goto, $table_alias.modified, $table_alias.active FROM $table_alias LEFT JOIN $table_mailbox ON $table_alias.address=$table_mailbox.username - WHERE ($table_alias.domain='$fDomain' AND $table_mailbox.maildir IS NULL) + WHERE ($sql_domain AND $table_mailbox.maildir IS NULL $sql_where) ORDER BY $table_alias.address LIMIT $fDisplay, $page_size"; if ('pgsql'==$CONF['database_type']) { + # TODO: is the different query for pgsql really needed? The mailbox query below also works with both... $query = "SELECT address, goto, extract(epoch from modified) as modified, active FROM $table_alias - WHERE domain='$fDomain' AND NOT EXISTS(SELECT 1 FROM $table_mailbox WHERE username=$table_alias.address) + 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"; } + $result = db_query ($query); if ($result['rows'] > 0) { @@ -158,66 +179,75 @@ } } -# TODO: reduce number of different queries by not depending on too much config options -# (it probably won't hurt to include a field in the resultset that is not displayed later) -if ($CONF['vacation_control_admin'] == 'YES') -{ - if (boolconf('used_quotas')) - { - if (boolconf('new_quota_table')) - { - $query = "SELECT $table_mailbox.*, $table_vacation.active AS v_active, $table_quota2.bytes as current FROM $table_mailbox - LEFT JOIN $table_vacation ON $table_mailbox.username=$table_vacation.email - LEFT JOIN $table_quota2 ON $table_mailbox.username=$table_quota2.username - WHERE $table_mailbox.domain='$fDomain' - ORDER BY $table_mailbox.username LIMIT $page_size OFFSET $fDisplay"; - } - else - { - $query = "SELECT $table_mailbox.*, $table_vacation.active AS v_active, $table_quota.current FROM $table_mailbox - LEFT JOIN $table_vacation ON $table_mailbox.username=$table_vacation.email - LEFT JOIN $table_quota ON $table_mailbox.username=$table_quota.username - WHERE $table_mailbox.domain='$fDomain' AND - ( $table_quota.path='quota/storage' OR $table_quota.path IS NULL ) - ORDER BY $table_mailbox.username LIMIT $page_size OFFSET $fDisplay"; - } - } - else # $CONF[used_quotas] = NO - { - $query = "SELECT $table_mailbox.*, $table_vacation.active AS v_active FROM $table_mailbox - LEFT JOIN $table_vacation ON $table_mailbox.username=$table_vacation.email - WHERE $table_mailbox.domain='$fDomain' ORDER BY $table_mailbox.username LIMIT $page_size OFFSET $fDisplay"; - } + +# +# mailboxes +# + +$display_mailbox_aliases = boolconf('special_alias_control'); # TODO: is this condition correct? - I'm slightly confused with alias_control, alias_control_admin and special_alias_control + +# build the sql query +$sql_select = " SELECT $table_mailbox.* "; +$sql_from = " FROM $table_mailbox "; +$sql_join = ""; +$sql_where = " WHERE 1 "; +$sql_order = " ORDER BY $table_mailbox.username "; +$sql_limit = " LIMIT $page_size OFFSET $fDisplay"; + +if ($search == "") { + $sql_where .= " AND $table_mailbox.domain='$fDomain' "; +} else { + $sql_where .= " AND " . db_in_clause("$table_mailbox.domain", $list_domains) . " "; + $sql_where .= " AND ( $table_mailbox.username LIKE '%$search%' OR $table_mailbox.name LIKE '%$search%' "; + if ($display_mailbox_aliases) { + $sql_where .= " OR $table_alias.goto LIKE '%$search%' "; + } + $sql_where .= " ) "; # $search is already escaped } -else # $CONF['vacation_control_admin'] == 'NO' -{ - if (boolconf('used_quotas')) - { - if (boolconf('new_quota_table')) - { - $query = "SELECT $table_mailbox.*, $table_quota2.bytes as current FROM $table_mailbox - LEFT JOIN $table_quota2 ON $table_mailbox.username=$table_quota2.username - WHERE $table_mailbox.domain='$fDomain' ORDER BY $table_mailbox.username LIMIT $page_size OFFSET $fDisplay"; - } - else - { - $query = "SELECT $table_mailbox.*, $table_quota.current FROM $table_mailbox - LEFT JOIN $table_quota ON $table_mailbox.username=$table_quota.username - WHERE $table_mailbox.domain='$fDomain' AND - ( $table_quota.path='quota/storage' OR $table_quota.path IS NULL ) - ORDER BY $table_mailbox.username LIMIT $page_size OFFSET $fDisplay"; - } - } - else # $CONF[used_quotas] = NO - { - $query = "SELECT * FROM $table_mailbox WHERE domain='$fDomain' ORDER BY username LIMIT $page_size OFFSET $fDisplay"; - } + +if ($display_mailbox_aliases) { + $sql_select .= ", $table_alias.goto "; + $sql_join .= " LEFT JOIN $table_alias ON $table_mailbox.username=$table_alias.address "; } + +if (boolconf('vacation_control_admin')) { + $sql_select .= ", $table_vacation.active AS v_active "; + $sql_join .= " LEFT JOIN $table_vacation ON $table_mailbox.username=$table_vacation.email "; +} + +if (boolconf('used_quotas') && boolconf('new_quota_table')) { + $sql_select .= ", $table_quota2.bytes as current "; + $sql_join .= " LEFT JOIN $table_quota2 ON $table_mailbox.username=$table_quota2.username "; +} + +if (boolconf('used_quotas') && ( ! boolconf('new_quota_table') ) ) { + $sql_select .= ", $table_quota.current "; + $sql_join .= " LEFT JOIN $table_quota ON $table_mailbox.username=$table_quota.username "; + $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"; + $result = db_query ($query); if ($result['rows'] > 0) { while ($row = db_array ($result['result'])) { + if ($display_mailbox_aliases) { + $goto_split = split(",", $row['goto']); + $row['goto_mailbox'] = 0; + $row['goto_other'] = array(); + + foreach ($goto_split as $goto_single) { + if ($goto_single == $row['username']) { # delivers to mailbox + $row['goto_mailbox'] = 1; + } elseif (boolconf('vacation') && strstr($goto_single, '@' . $CONF['vacation_domain']) ) { # vacation alias - TODO: check for full vacation alias + # skip the vacation alias, vacation status is detected otherwise + } else { # forwarding to other alias + $row['goto_other'][] = $goto_single; + } + } + } if ('pgsql'==$CONF['database_type']) { // XXX @@ -236,6 +266,7 @@ $tCanAddAlias = false; $tCanAddMailbox = false; +# TODO: needs reworking for $search... $limit = get_domain_properties($fDomain); if (isset ($limit)) { if ($fDisplay >= $page_size) { Modified: trunk/templates/list-virtual.php =================================================================== --- trunk/templates/list-virtual.php 2009-11-01 23:46:42 UTC (rev 750) +++ trunk/templates/list-virtual.php 2009-11-02 00:24:40 UTC (rev 751) @@ -6,6 +6,17 @@ $file = 'list-virtual.php'; +# search highlighting +function searchhl($text) { + global $search; + if ($search == "") { + return $text; + } else { + return str_ireplace($search, "<span class='searchresult' style='background:lightgreen'>" . $search . "</span>", $text); + # TODO: find out why .searchresult class in css file doesn't work + } +} + if ($limit['aliases'] < 0) $limit['aliases'] = $PALANG['pOverview_disabled']; if ($limit['mailboxes'] < 0) $limit['mailboxes'] = $PALANG['pOverview_disabled']; if ($limit['maxquota'] < 0) $limit['maxquota'] = $PALANG['pOverview_disabled']; @@ -94,6 +105,9 @@ print " <td><a href=\"$file?domain=" . urlencode ($tAliasDomains[$i]['alias_domain']) . "&limit=" . $current_limit . "\">" . $tAliasDomains[$i]['alias_domain'] . "</a></td>\n"; print " <td>" . $tAliasDomains[$i]['modified'] . "</td>\n"; $active = ($tAliasDomains[$i]['active'] == 1) ? $PALANG['YES'] : $PALANG['NO']; + +# TODO: change all edit-*.php scripts not to require the domain parameter (and extract it from the address). This avoids superflous problems when using search. + print " <td><a href=\"edit-active.php?alias_domain=true&domain=" . urlencode ($tAliasDomains[$i]['alias_domain']) . "&return=$file" . urlencode ( "?domain=" . $fDomain . "&limit=" . $current_limit) . "\">" . $active . "</a></td>\n"; print " <td><a href=\"delete.php?table=alias_domain&delete=" . urlencode ($tAliasDomains[$i]['alias_domain']) . "&domain=$fDomain" . "\"onclick=\"return confirm ('" . $PALANG['confirm'] . $PALANG['pOverview_get_alias_domains'] . ": ". $tAliasDomains[$i]['alias_domain'] . "')\">" . $PALANG['del'] . "</a></td>\n"; print " </tr>\n"; @@ -151,10 +165,9 @@ { print " <td>" . gen_show_status($tAlias[$i]['address']) . "</td>\n"; } - - print " <td>" . $tAlias[$i]['address'] . "</td>\n"; + print " <td>" . searchhl($tAlias[$i]['address']) . "</td>\n"; if ($CONF['alias_goto_limit'] > 0) { - print " <td>" . preg_replace ( + print " <td>" . searchhl(preg_replace ( "/,/", "<br>", preg_replace( @@ -165,9 +178,9 @@ ), $tAlias[$i]['goto'] ) - ) . "</td>\n"; + )) . "</td>\n"; } else { - print " <td>" . preg_replace ("/,/", "<br>", $tAlias[$i]['goto']) . "</td>\n"; + print " <td>" . searchhl(preg_replace ("/,/", "<br>", $tAlias[$i]['goto'])) . "</td>\n"; } print " <td>" . $tAlias[$i]['modified'] . "</td>\n"; @@ -177,7 +190,7 @@ # superadmin code $active = ($tAlias[$i]['active'] == 1) ? $PALANG['YES'] : $PALANG['NO']; print " <td><a href=\"edit-active.php?alias=" . urlencode ($tAlias[$i]['address']) . "&domain=$fDomain&return=$file?domain=$fDomain" . urlencode ("&limit=" . $current_limit) . "\">" . $active . "</a></td>\n"; - print " <td><a href=\"edit-alias.php?address=" . urlencode ($tAlias[$i]['address']) . "&domain=$fDomain" . "\">" . $PALANG['edit'] . "</a></td>\n"; + print " <td><a href=\"edit-alias.php?address=" . urlencode ($tAlias[$i]['address']) . "\">" . $PALANG['edit'] . "</a></td>\n"; print " <td><a href=\"delete.php?table=alias" . "&delete=" . urlencode ($tAlias[$i]['address']) . "&domain=$fDomain" . "\"onclick=\"return confirm ('" . $PALANG['confirm'] . $PALANG['pOverview_get_aliases'] . ": ". $tAlias[$i]['address'] . "')\">" . $PALANG['del'] . "</a></td>\n"; } else { @@ -186,7 +199,7 @@ { $active = ($tAlias[$i]['active'] == 1) ? $PALANG['YES'] : $PALANG['NO']; print " <td><a href=\"edit-active.php?alias=" . urlencode ($tAlias[$i]['address']) . "&domain=$fDomain" . "\">" . $active . "</a></td>\n"; - print " <td><a href=\"edit-alias.php?address=" . urlencode ($tAlias[$i]['address']) . "&domain=$fDomain" . "\">" . $PALANG['edit'] . "</a></td>\n"; + print " <td><a href=\"edit-alias.php?address=" . urlencode ($tAlias[$i]['address']) . "\">" . $PALANG['edit'] . "</a></td>\n"; print " <td><a href=\"delete.php?table=alias&delete=" . urlencode ($tAlias[$i]['address']) . "&domain=$fDomain" . "\"onclick=\"return confirm ('" . $PALANG['confirm'] . $PALANG['pOverview_get_aliases'] . ": ". $tAlias[$i]['address'] . "')\">" . $PALANG['del'] . "</a></td>\n"; } else @@ -195,7 +208,7 @@ { $active = ($tAlias[$i]['active'] == 1) ? $PALANG['YES'] : $PALANG['NO']; print " <td><a href=\"edit-active.php?alias=" . urlencode ($tAlias[$i]['address']) . "&domain=$fDomain" . "\">" . $active . "</a></td>\n"; - print " <td><a href=\"edit-alias.php?address=" . urlencode ($tAlias[$i]['address']) . "&domain=$fDomain" . "\">" . $PALANG['edit'] . "</a></td>\n"; + print " <td><a href=\"edit-alias.php?address=" . urlencode ($tAlias[$i]['address']) . "\">" . $PALANG['edit'] . "</a></td>\n"; print " <td><a href=\"delete.php?table=alias&delete=" . urlencode ($tAlias[$i]['address']) . "&domain=$fDomain" . "\"onclick=\"return confirm ('" . $PALANG['confirm'] . $PALANG['pOverview_get_aliases'] . ": ". $tAlias[$i]['address'] . "')\">" . $PALANG['del'] . "</a></td>\n"; } else @@ -254,6 +267,8 @@ $colspan=8; if ($CONF['vacation_control_admin'] == 'YES') $colspan=$colspan+1; if ($CONF['alias_control_admin'] == 'YES') $colspan=$colspan+1; + if ($display_mailbox_aliases) $colspan=$colspan+1; + print "<table id=\"mailbox_table\">\n"; print " <tr>\n"; print " <td colspan=\"$colspan\"><h3>" . $PALANG['pOverview_mailbox_title'] . "</h3></td>"; @@ -261,6 +276,7 @@ print " <tr class=\"header\">\n"; if ($CONF['show_status'] == 'YES') { print "<td></td>\n"; } print " <td>" . $PALANG['pOverview_mailbox_username'] . "</td>\n"; + if ($display_mailbox_aliases) print " <td>" . $PALANG['pOverview_alias_goto'] . "</td>\n"; print " <td>" . $PALANG['pOverview_mailbox_name'] . "</td>\n"; if ($CONF['quota'] == 'YES') print " <td>" . $PALANG['pOverview_mailbox_quota'] . "</td>\n"; print " <td>" . $PALANG['pOverview_mailbox_modified'] . "</td>\n"; @@ -280,7 +296,22 @@ print " <td>" . gen_show_status($tMailbox[$i]['username']) . "</td>\n"; } - print " <td>" . $tMailbox[$i]['username'] . "</td>\n"; + print " <td>" . searchhl($tMailbox[$i]['username']) . "</td>\n"; + + if ($display_mailbox_aliases) { + # print " <td>" . searchhl($tMailbox[$i]['goto']) . "</td>\n"; + print " <td>"; + if ($tMailbox[$i]['goto_mailbox'] == 1) { + print "Mailbox"; # TODO: make translatable + } else { + print "Forward only"; # TODO: make translatable + } + if (count($tMailbox[$i]['goto_other']) > 0) print "<br>"; + print searchhl(join("<br>", $tMailbox[$i]['goto_other'])); # TODO: honor $CONF['alias_goto_limit'] + print "</td>\n"; + } + + print " <td>" . $tMailbox[$i]['name'] . "</td>\n"; if ($CONF['quota'] == 'YES') { @@ -328,7 +359,7 @@ if ($edit_aliases == 1) { - print " <td><a href=\"edit-alias.php?address=" . urlencode ($tMailbox[$i]['username']) . "&domain=$fDomain" . "\">" . $PALANG['pOverview_alias_edit'] . "</a></td>\n"; + print " <td><a href=\"edit-alias.php?address=" . urlencode ($tMailbox[$i]['username']) . "\">" . $PALANG['pOverview_alias_edit'] . "</a></td>\n"; } print " <td><a href=\"edit-mailbox.php?username=" . urlencode ($tMailbox[$i]['username']) . "&domain=$fDomain" . "\">" . $PALANG['edit'] . "</a></td>\n"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Seb...@us...> - 2009-11-05 14:55:51
|
Revision: 757 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=757&view=rev Author: Sebastian2009 Date: 2009-11-05 14:55:39 +0000 (Thu, 05 Nov 2009) Log Message: ----------- - big merge of Postfixadmin smarty into trunk Modified Paths: -------------- branches/postfixadmin-smarty/DOCUMENTS/DOVECOT.txt trunk/CHANGELOG.TXT trunk/INSTALL.TXT trunk/VIRTUAL_VACATION/vacation.pl trunk/backup.php trunk/broadcast-message.php trunk/common.php trunk/config.inc.php trunk/create-admin.php trunk/create-alias-domain.php trunk/create-alias.php trunk/create-domain.php trunk/create-mailbox.php trunk/css/default.css trunk/debian/changelog trunk/delete.php trunk/edit-active-admin.php trunk/edit-active-domain.php trunk/edit-active.php trunk/edit-admin.php trunk/edit-alias.php trunk/edit-domain.php trunk/edit-mailbox.php trunk/edit-vacation.php trunk/fetchmail.php trunk/functions.inc.php trunk/languages/de.lang trunk/languages/en.lang trunk/list-admin.php trunk/list-domain.php trunk/list-virtual.php trunk/login.php trunk/main.php trunk/model/AliasHandler.php trunk/model/UserHandler.php trunk/model/VacationHandler.php trunk/motd-users.txt trunk/motd.txt trunk/password.php trunk/search.php trunk/sendmail.php trunk/upgrade.php trunk/users/edit-alias.php trunk/users/login.php trunk/users/main.php trunk/users/password.php trunk/users/vacation.php trunk/variables.inc.php trunk/viewlog.php trunk/xmlrpc.php Added Paths: ----------- trunk/calendar.js trunk/configs/ trunk/configs/menu.conf trunk/css/calendar.css trunk/smarty/ trunk/smarty/libs/ trunk/smarty/libs/Config_File.class.php trunk/smarty/libs/Smarty.class.php trunk/smarty/libs/Smarty_Compiler.class.php trunk/smarty/libs/debug.tpl trunk/smarty/libs/internals/ trunk/smarty/libs/internals/core.assemble_plugin_filepath.php trunk/smarty/libs/internals/core.assign_smarty_interface.php trunk/smarty/libs/internals/core.create_dir_structure.php trunk/smarty/libs/internals/core.display_debug_console.php trunk/smarty/libs/internals/core.get_include_path.php trunk/smarty/libs/internals/core.get_microtime.php trunk/smarty/libs/internals/core.get_php_resource.php trunk/smarty/libs/internals/core.is_secure.php trunk/smarty/libs/internals/core.is_trusted.php trunk/smarty/libs/internals/core.load_plugins.php trunk/smarty/libs/internals/core.load_resource_plugin.php trunk/smarty/libs/internals/core.process_cached_inserts.php trunk/smarty/libs/internals/core.process_compiled_include.php trunk/smarty/libs/internals/core.read_cache_file.php trunk/smarty/libs/internals/core.rm_auto.php trunk/smarty/libs/internals/core.rmdir.php trunk/smarty/libs/internals/core.run_insert_handler.php trunk/smarty/libs/internals/core.smarty_include_php.php trunk/smarty/libs/internals/core.write_cache_file.php trunk/smarty/libs/internals/core.write_compiled_include.php trunk/smarty/libs/internals/core.write_compiled_resource.php trunk/smarty/libs/internals/core.write_file.php trunk/smarty/libs/plugins/ trunk/smarty/libs/plugins/block.textformat.php trunk/smarty/libs/plugins/compiler.assign.php trunk/smarty/libs/plugins/function.assign_debug_info.php trunk/smarty/libs/plugins/function.config_load.php trunk/smarty/libs/plugins/function.counter.php trunk/smarty/libs/plugins/function.cycle.php trunk/smarty/libs/plugins/function.debug.php trunk/smarty/libs/plugins/function.eval.php trunk/smarty/libs/plugins/function.fetch.php trunk/smarty/libs/plugins/function.html_checkboxes.php trunk/smarty/libs/plugins/function.html_image.php trunk/smarty/libs/plugins/function.html_options.php trunk/smarty/libs/plugins/function.html_radios.php trunk/smarty/libs/plugins/function.html_select_date.php trunk/smarty/libs/plugins/function.html_select_time.php trunk/smarty/libs/plugins/function.html_table.php trunk/smarty/libs/plugins/function.mailto.php trunk/smarty/libs/plugins/function.math.php trunk/smarty/libs/plugins/function.popup.php trunk/smarty/libs/plugins/function.popup_init.php trunk/smarty/libs/plugins/modifier.capitalize.php trunk/smarty/libs/plugins/modifier.cat.php trunk/smarty/libs/plugins/modifier.count_characters.php trunk/smarty/libs/plugins/modifier.count_paragraphs.php trunk/smarty/libs/plugins/modifier.count_sentences.php trunk/smarty/libs/plugins/modifier.count_words.php trunk/smarty/libs/plugins/modifier.date_format.php trunk/smarty/libs/plugins/modifier.debug_print_var.php trunk/smarty/libs/plugins/modifier.default.php trunk/smarty/libs/plugins/modifier.escape.php trunk/smarty/libs/plugins/modifier.indent.php trunk/smarty/libs/plugins/modifier.lower.php trunk/smarty/libs/plugins/modifier.needle.php trunk/smarty/libs/plugins/modifier.nl2br.php trunk/smarty/libs/plugins/modifier.regex_replace.php trunk/smarty/libs/plugins/modifier.replace.php trunk/smarty/libs/plugins/modifier.spacify.php trunk/smarty/libs/plugins/modifier.string_format.php trunk/smarty/libs/plugins/modifier.strip.php trunk/smarty/libs/plugins/modifier.strip_tags.php trunk/smarty/libs/plugins/modifier.truncate.php trunk/smarty/libs/plugins/modifier.upper.php trunk/smarty/libs/plugins/modifier.wordwrap.php trunk/smarty/libs/plugins/outputfilter.trimwhitespace.php trunk/smarty/libs/plugins/shared.escape_special_chars.php trunk/smarty/libs/plugins/shared.make_timestamp.php trunk/smarty.inc.php trunk/templates/admin_create-admin.tpl trunk/templates/admin_create-domain.tpl trunk/templates/admin_edit-admin.tpl trunk/templates/admin_edit-domain.tpl trunk/templates/admin_list-admin.tpl trunk/templates/admin_list-domain.tpl trunk/templates/broadcast-message.tpl trunk/templates/create-alias-domain.tpl trunk/templates/create-alias.tpl trunk/templates/create-mailbox.tpl trunk/templates/edit-alias.tpl trunk/templates/edit-mailbox.tpl trunk/templates/edit-vacation.tpl trunk/templates/fetchmail.tpl trunk/templates/footer.tpl trunk/templates/header.tpl trunk/templates/index.tpl trunk/templates/list-virtual.tpl trunk/templates/list-virtual_alias.tpl trunk/templates/list-virtual_alias_domain.tpl trunk/templates/list-virtual_mailbox.tpl trunk/templates/login.tpl trunk/templates/main.tpl trunk/templates/menu.tpl trunk/templates/message.tpl trunk/templates/motd-users.txt trunk/templates/motd.txt trunk/templates/overview-get.tpl trunk/templates/password.tpl trunk/templates/search.tpl trunk/templates/sendmail.tpl trunk/templates/users_edit-alias.tpl trunk/templates/users_login.tpl trunk/templates/users_main.tpl trunk/templates/users_menu.tpl trunk/templates/users_password.tpl trunk/templates/users_vacation.tpl trunk/templates/viewlog.tpl trunk/templates_c/ Removed Paths: ------------- trunk/templates/admin_create-admin.php trunk/templates/admin_create-domain.php trunk/templates/admin_edit-admin.php trunk/templates/admin_edit-domain.php trunk/templates/admin_list-admin.php trunk/templates/admin_list-domain.php trunk/templates/broadcast-message.php trunk/templates/create-alias-domain.php trunk/templates/create-alias.php trunk/templates/create-mailbox.php trunk/templates/edit-alias.php trunk/templates/edit-mailbox.php trunk/templates/edit-vacation.php trunk/templates/fetchmail.php trunk/templates/footer.php trunk/templates/header.php trunk/templates/index.php trunk/templates/list-virtual.php trunk/templates/login.php trunk/templates/main.php trunk/templates/menu.php trunk/templates/message.php trunk/templates/overview-get.php trunk/templates/password.php trunk/templates/search.php trunk/templates/sendmail.php trunk/templates/users_edit-alias.php trunk/templates/users_login.php trunk/templates/users_main.php trunk/templates/users_menu.php trunk/templates/users_password.php trunk/templates/users_vacation.php trunk/templates/viewlog.php Modified: branches/postfixadmin-smarty/DOCUMENTS/DOVECOT.txt =================================================================== --- branches/postfixadmin-smarty/DOCUMENTS/DOVECOT.txt 2009-11-03 21:58:40 UTC (rev 756) +++ branches/postfixadmin-smarty/DOCUMENTS/DOVECOT.txt 2009-11-05 14:55:39 UTC (rev 757) @@ -21,9 +21,10 @@ 1. Dovecot setup ----------------- -default_mail_env = maildir:/usr/local/virtual/%u/ +default_mail_env = maildir:/var/mail/vmail/%u/ auth default { + mechanisms plain userdb sql { # Path for SQL configuration file, see doc/dovecot-sql-example.conf args = /etc/dovecot-mysql.conf @@ -45,6 +46,7 @@ setup. Things you may need to change are db_password, uid and gid: connect = host=localhost dbname=postfix user=postfix password=postfix +driver = mysql # Default password scheme. # depends on your $CONF['encrypt'] setting: Modified: trunk/CHANGELOG.TXT =================================================================== --- trunk/CHANGELOG.TXT 2009-11-03 21:58:40 UTC (rev 756) +++ trunk/CHANGELOG.TXT 2009-11-05 14:55:39 UTC (rev 757) @@ -10,8 +10,8 @@ # Last update: # $Id$ -Version 2.3 - 2009/10/24 - SVN r739 ------------------------------------ +Version ***svn*** - 2009/10/24 - SVN r***** +-------------------------------------- - automatically create quota tables for dovecot (both 1.0/1.1 and >= 1.2) - list-virtual can now handle both table formats Modified: trunk/INSTALL.TXT =================================================================== --- trunk/INSTALL.TXT 2009-11-03 21:58:40 UTC (rev 756) +++ trunk/INSTALL.TXT 2009-11-05 14:55:39 UTC (rev 757) @@ -9,7 +9,7 @@ ---------- - You are using Postfix 2.0 or higher. - You are using Apache 1.3.27 / Lighttpd 1.3.15 or higher. -- You are using PHP 5.1.2 or higher. +- You are using PHP 5.X - You are using MySQL 3.23 or higher (5.x recommended) OR PostgreSQL 7.4 (or higher) Modified: trunk/VIRTUAL_VACATION/vacation.pl =================================================================== --- trunk/VIRTUAL_VACATION/vacation.pl 2009-11-03 21:58:40 UTC (rev 756) +++ trunk/VIRTUAL_VACATION/vacation.pl 2009-11-05 14:55:39 UTC (rev 757) @@ -56,13 +56,16 @@ # Use Log4Perl # Added better testing (and -t option) # -# 2009-06-29 Stevan Bajic <st...@ba...> +# 2009-06-29 Stevan Bajic <stevan at bajic.ch> # Add Mail::Sender for SMTP auth + more flexibility # -# 2009-07-07 Stevan Bajic <st...@ba...> +# 2009-07-07 Stevan Bajic <stevan at bajic.ch> # Add better alias lookups # Check for more heades from Anti-Virus/Anti-Spam solutions # +# 2009-08-10 Sebastian <reg9009 at yahoo dot de> +# Adjust SQL query for vacation timeframe. It is now possible to set from/until date for vacation message. +# # Requirements - the following perl modules are required: # DBD::Pg or DBD::mysql # Mail::Sender, Email::Valid MIME::Charset, Log::Log4perl, Log::Dispatch, MIME::EncWords and GetOpt::Std @@ -316,25 +319,26 @@ exit(1); } my $realemail = ''; - my $query = qq{SELECT email FROM vacation WHERE email=? AND active=$db_true}; + my $query = qq{SELECT email FROM vacation WHERE email=? and active=$db_true and activefrom <= NOW() and activeuntil >= NOW()}; my $stm = $dbh->prepare($query) or panic_prepare($query); $stm->execute($email) or panic_execute($query,"email='$email'"); my $rv = $stm->rows; # Recipient has vacation - if ($rv == 1) { - $realemail = $email; - $logger->debug("Found '\$email'\ has vacation active"); - } else { - my $vemail = $email; - $vemail =~ s/\@/#/g; - $vemail = $vemail . "\@" . $vacation_domain; - $logger->debug("Looking for alias records that \'$email\' resolves to with vacation turned on"); - $query = qq{SELECT goto FROM alias WHERE address=? AND (goto LIKE ? OR goto LIKE ? OR goto LIKE ? OR goto = ?)}; - $stm = $dbh->prepare($query) or panic_prepare($query); - $stm->execute($email,"$vemail,%","%,$vemail","%,$vemail,%", "$vemail") or panic_execute($query,"address='$email'"); - $rv = $stm->rows; + if ($rv == 1) { + $realemail = $email; + $logger->debug("Found '\$email'\ has vacation active"); + } else { + my $vemail = $email; + $vemail =~ s/\@/#/g; + $vemail = $vemail . "\@" . $vacation_domain; + $logger->debug("Looking for alias records that \'$email\' resolves to with vacation turned on"); + $query = qq{SELECT goto FROM alias WHERE address=? AND (goto LIKE ? OR goto LIKE ? OR goto LIKE ? OR goto = ?)}; + $stm = $dbh->prepare($query) or panic_prepare($query); + $stm->execute($email,"$vemail,%","%,$vemail","%,$vemail,%", "$vemail") or panic_execute($query,"address='$email'"); + $rv = $stm->rows; + # Recipient is an alias, check if mailbox has vacation if ($rv == 1) { my @row = $stm->fetchrow_array; Modified: trunk/backup.php =================================================================== --- trunk/backup.php 2009-11-03 21:58:40 UTC (rev 756) +++ trunk/backup.php 2009-11-05 14:55:39 UTC (rev 757) @@ -30,7 +30,11 @@ // TODO: make backup supported for postgres if ('pgsql'==$CONF['database_type']) { - print '<p>Sorry: Backup is currently not supported for your DBMS.</p>'; + $smarty->assign ('tMessage', '<p>Sorry: Backup is currently not supported for your DBMS ('.$CONF['database_type'].').</p>'); + $smarty->assign ('smarty_template', 'message'); + $smarty->display ('index.tpl'); +// print '<p>Sorry: Backup is currently not supported for your DBMS.</p>'; +die; } /* SELECT attnum,attname,typname,atttypmod-4,attnotnull,atthasdef,adsrc @@ -63,10 +67,10 @@ if (!$fh = fopen ($backup, 'w')) { $tMessage = "<div class=\"error_msg\">Cannot open file ($backup)</div>"; - include ("templates/header.php"); - include ("templates/menu.php"); - include ("templates/message.php"); - include ("templates/footer.php"); + $smarty->assign ('tMessage', $tMessage); + $smarty->assign ('smarty_template', 'message'); + $smarty->display ('index.tpl'); +// include ("templates/message.php"); } else { @@ -82,8 +86,8 @@ 'fetchmail', 'log', 'mailbox', - 'quota', - 'quota2', + 'quota', + 'quota2', 'vacation', 'vacation_notification' ); Modified: trunk/broadcast-message.php =================================================================== --- trunk/broadcast-message.php 2009-11-03 21:58:40 UTC (rev 756) +++ trunk/broadcast-message.php 2009-11-05 14:55:39 UTC (rev 757) @@ -31,69 +31,70 @@ authentication_require_role('global-admin'); if ($CONF['sendmail'] != 'YES') { - header("Location: " . $CONF['postfix_admin_url'] . "/main.php"); - exit; + header("Location: " . $CONF['postfix_admin_url'] . "/main.php"); + exit; } $SESSID_USERNAME = authentication_get_username(); if ($_SERVER['REQUEST_METHOD'] == "POST") { - if (empty($_POST['subject']) || empty($_POST['message']) || empty($_POST['name'])) - { - $error = 1; - } - else - { - $table_mailbox = table_by_key('mailbox'); - $table_alias = table_by_key('alias'); + if (empty($_POST['subject']) || empty($_POST['message']) || empty($_POST['name'])) + { + $error = 1; + } + else + { + $table_mailbox = table_by_key('mailbox'); + $table_alias = table_by_key('alias'); + + $q = "select username from $table_mailbox union select goto from $table_alias " . + "where goto not in (select username from $table_mailbox)"; - $q = "select username from $table_mailbox union select goto from $table_alias " . - "where goto not in (select username from $table_mailbox)"; + $result = db_query ($q); + if ($result['rows'] > 0) + { + mb_internal_encoding("UTF-8"); + $b_name = mb_encode_mimeheader( $_POST['name'], 'UTF-8', 'Q'); + $b_subject = mb_encode_mimeheader( $_POST['subject'], 'UTF-8', 'Q'); + $b_message = base64_encode($_POST['message']); - $result = db_query ($q); - if ($result['rows'] > 0) - { - mb_internal_encoding("UTF-8"); - $b_name = mb_encode_mimeheader( $_POST['name'], 'UTF-8', 'Q'); - $b_subject = mb_encode_mimeheader( $_POST['subject'], 'UTF-8', 'Q'); - $b_message = base64_encode($_POST['message']); + $i = 0; + while ($row = db_array ($result['result'])) { + $fTo = $row[0]; + $fHeaders = 'To: ' . $fTo . "\n"; + $fHeaders .= 'From: ' . $b_name . ' <' . $CONF['admin_email'] . ">\n"; + $fHeaders .= 'Subject: ' . $b_subject . "\n"; + $fHeaders .= 'MIME-Version: 1.0' . "\n"; + $fHeaders .= 'Content-Type: text/plain; charset=UTF-8' . "\n"; + $fHeaders .= 'Content-Transfer-Encoding: base64' . "\n"; - $i = 0; - while ($row = db_array ($result['result'])) { - $fTo = $row[0]; - $fHeaders = 'To: ' . $fTo . "\n"; - $fHeaders .= 'From: ' . $b_name . ' <' . $CONF['admin_email'] . ">\n"; - $fHeaders .= 'Subject: ' . $b_subject . "\n"; - $fHeaders .= 'MIME-Version: 1.0' . "\n"; - $fHeaders .= 'Content-Type: text/plain; charset=UTF-8' . "\n"; - $fHeaders .= 'Content-Transfer-Encoding: base64' . "\n"; + $fHeaders .= $b_message; - $fHeaders .= $b_message; - - if (!smtp_mail ($fTo, $CONF['admin_email'], $fHeaders)) - { - $tMessage .= "<br />" . $PALANG['pSendmail_result_error'] . "<br />"; - } - else - { - $tMessage .= "<br />" . $PALANG['pSendmail_result_success'] . "<br />"; - } + if (!smtp_mail ($fTo, $CONF['admin_email'], $fHeaders)) + { + $tMessage .= "<br />" . $PALANG['pSendmail_result_error'] . "<br />"; } - } - include ("templates/header.php"); - include ("templates/menu.php"); - echo '<p>'.$PALANG['pBroadcast_success'].'</p>'; - include ("templates/footer.php"); - } + else + { + $tMessage .= "<br />" . $PALANG['pSendmail_result_success'] . "<br />"; + } + } + } + $smarty->assign ('tMessage', $PALANG['pBroadcast_success']); + $smarty->assign ('smarty_template', 'message'); + $smarty->display ('index.tpl'); +// echo '<p>'.$PALANG['pBroadcast_success'].'</p>'; + } } if ($_SERVER['REQUEST_METHOD'] == "GET" || $error == 1) { - include ("templates/header.php"); - include ("templates/menu.php"); - include ("templates/broadcast-message.php"); - include ("templates/footer.php"); + $smarty->assign ('error', $error); + $smarty->assign ('smarty_template', 'broadcast-message'); + $smarty->display ('index.tpl'); + +// include ("templates/broadcast-message.php"); } /* vim: set expandtab softtabstop=3 tabstop=3 shiftwidth=3: */ Added: trunk/calendar.js =================================================================== --- trunk/calendar.js (rev 0) +++ trunk/calendar.js 2009-11-05 14:55:39 UTC (rev 757) @@ -0,0 +1,336 @@ +// Tigra Calendar v4.0.2 (12-01-2009) European (dd.mm.yyyy) +// http://www.softcomplex.com/products/tigra_calendar/ +// Public Domain Software... You're welcome. + +// default settins +var A_TCALDEF = { + 'months' : ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], + 'weekdays' : ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], + 'yearscroll': true, // show year scroller + 'weekstart': 1, // first day of week: 0-Su or 1-Mo + 'centyear' : 70, // 2 digit years less than 'centyear' are in 20xx, othewise in 19xx. + 'imgpath' : 'images/calendar/' // directory with calendar images +} +// date parsing function +function f_tcalParseDate (s_date) { + + var re_date = /^\s*(\d{1,2})\.(\d{1,2})\.(\d{2,4})\s*$/; + if (!re_date.exec(s_date)) + return alert ("Invalid date: '" + s_date + "'.\nAccepted format is dd.mm.yyyy.") + var n_day = Number(RegExp.$1), + n_month = Number(RegExp.$2), + n_year = Number(RegExp.$3); + + if (n_year < 100) + n_year += (n_year < this.a_tpl.centyear ? 2000 : 1900); + if (n_month < 1 || n_month > 12) + return alert ("Invalid month value: '" + n_month + "'.\nAllowed range is 01-12."); + var d_numdays = new Date(n_year, n_month, 0); + if (n_day > d_numdays.getDate()) + return alert("Invalid day of month value: '" + n_day + "'.\nAllowed range for selected month is 01 - " + d_numdays.getDate() + "."); + + return new Date (n_year, n_month - 1, n_day); +} +// date generating function +function f_tcalGenerDate (d_date) { + return ( + (d_date.getDate() < 10 ? '0' : '') + d_date.getDate() + "." + + (d_date.getMonth() < 9 ? '0' : '') + (d_date.getMonth() + 1) + "." + + d_date.getFullYear() + ); +} + +// implementation +function tcal (a_cfg, a_tpl) { + + // apply default template if not specified + if (!a_tpl) + a_tpl = A_TCALDEF; + + // register in global collections + if (!window.A_TCALS) + window.A_TCALS = []; + if (!window.A_TCALSIDX) + window.A_TCALSIDX = []; + + this.s_id = a_cfg.id ? a_cfg.id : A_TCALS.length; + window.A_TCALS[this.s_id] = this; + window.A_TCALSIDX[window.A_TCALSIDX.length] = this; + + // assign methods + this.f_show = f_tcalShow; + this.f_hide = f_tcalHide; + this.f_toggle = f_tcalToggle; + this.f_update = f_tcalUpdate; + this.f_relDate = f_tcalRelDate; + this.f_parseDate = f_tcalParseDate; + this.f_generDate = f_tcalGenerDate; + + // create calendar icon + this.s_iconId = 'tcalico_' + this.s_id; + this.e_icon = f_getElement(this.s_iconId); + if (!this.e_icon) { + document.write('<img src="' + a_tpl.imgpath + 'cal.gif" id="' + this.s_iconId + '" onclick="A_TCALS[\'' + this.s_id + '\'].f_toggle()" class="tcalIcon" alt="Open Calendar" />'); + this.e_icon = f_getElement(this.s_iconId); + } + // save received parameters + this.a_cfg = a_cfg; + this.a_tpl = a_tpl; +} + +function f_tcalShow (d_date) { + + // find input field + if (!this.a_cfg.controlname) + throw("TC: control name is not specified"); + if (this.a_cfg.formname) { + var e_form = document.forms[this.a_cfg.formname]; + if (!e_form) + throw("TC: form '" + this.a_cfg.formname + "' can not be found"); + this.e_input = e_form.elements[this.a_cfg.controlname]; + } + else + this.e_input = f_getElement(this.a_cfg.controlname); + + if (!this.e_input || !this.e_input.tagName || this.e_input.tagName != 'INPUT') + throw("TC: element '" + this.a_cfg.controlname + "' does not exist in " + + (this.a_cfg.formname ? "form '" + this.a_cfg.controlname + "'" : 'this document')); + + // dynamically create HTML elements if needed + this.e_div = f_getElement('tcal'); + if (!this.e_div) { + this.e_div = document.createElement("DIV"); + this.e_div.id = 'tcal'; + document.body.appendChild(this.e_div); + } + this.e_shade = f_getElement('tcalShade'); + if (!this.e_shade) { + this.e_shade = document.createElement("DIV"); + this.e_shade.id = 'tcalShade'; + document.body.appendChild(this.e_shade); + } + this.e_iframe = f_getElement('tcalIF') + if (b_ieFix && !this.e_iframe) { + this.e_iframe = document.createElement("IFRAME"); + this.e_iframe.style.filter = 'alpha(opacity=0)'; + this.e_iframe.id = 'tcalIF'; + this.e_iframe.src = this.a_tpl.imgpath + 'pixel.gif'; + document.body.appendChild(this.e_iframe); + } + + // hide all calendars + f_tcalHideAll(); + + // generate HTML and show calendar + this.e_icon = f_getElement(this.s_iconId); + if (!this.f_update()) + return; + + this.e_div.style.visibility = 'visible'; + this.e_shade.style.visibility = 'visible'; + if (this.e_iframe) + this.e_iframe.style.visibility = 'visible'; + + // change icon and status + this.e_icon.src = this.a_tpl.imgpath + 'no_cal.gif'; + this.e_icon.title = 'Close Calendar'; + this.b_visible = true; +} + +function f_tcalHide (n_date) { + if (n_date) + this.e_input.value = this.f_generDate(new Date(n_date)); + + // no action if not visible + if (!this.b_visible) + return; + + // hide elements + if (this.e_iframe) + this.e_iframe.style.visibility = 'hidden'; + if (this.e_shade) + this.e_shade.style.visibility = 'hidden'; + this.e_div.style.visibility = 'hidden'; + + // change icon and status + this.e_icon = f_getElement(this.s_iconId); + this.e_icon.src = this.a_tpl.imgpath + 'cal.gif'; + this.e_icon.title = 'Open Calendar'; + this.b_visible = false; +} + +function f_tcalToggle () { + return this.b_visible ? this.f_hide() : this.f_show(); +} + +function f_tcalUpdate (d_date) { + + var d_today = this.a_cfg.today ? this.f_parseDate(this.a_cfg.today) : f_tcalResetTime(new Date()); + var d_selected = this.e_input.value == '' + ? (this.a_cfg.selected ? this.f_parseDate(this.a_cfg.selected) : d_today) + : this.f_parseDate(this.e_input.value); + + // figure out date to display + if (!d_date) + // selected by default + d_date = d_selected; + else if (typeof(d_date) == 'number') + // get from number + d_date = f_tcalResetTime(new Date(d_date)); + else if (typeof(d_date) == 'string') + // parse from string + this.f_parseDate(d_date); + + if (!d_date) return false; + + // first date to display + var d_firstday = new Date(d_date); + d_firstday.setDate(1); + d_firstday.setDate(1 - (7 + d_firstday.getDay() - this.a_tpl.weekstart) % 7); + + var a_class, s_html = '<table class="ctrl"><tbody><tr>' + + (this.a_tpl.yearscroll ? '<td' + this.f_relDate(d_date, -1, 'y') + ' title="Previous Year"><img src="' + this.a_tpl.imgpath + 'prev_year.gif" /></td>' : '') + + '<td' + this.f_relDate(d_date, -1) + ' title="Previous Month"><img src="' + this.a_tpl.imgpath + 'prev_mon.gif" /></td><th>' + + this.a_tpl.months[d_date.getMonth()] + ' ' + d_date.getFullYear() + + '</th><td' + this.f_relDate(d_date, 1) + ' title="Next Month"><img src="' + this.a_tpl.imgpath + 'next_mon.gif" /></td>' + + (this.a_tpl.yearscroll ? '<td' + this.f_relDate(d_date, 1, 'y') + ' title="Next Year"><img src="' + this.a_tpl.imgpath + 'next_year.gif" /></td></td>' : '') + + '</tr></tbody></table><table><tbody><tr class="wd">'; + + // print weekdays titles + for (var i = 0; i < 7; i++) + s_html += '<th>' + this.a_tpl.weekdays[(this.a_tpl.weekstart + i) % 7] + '</th>'; + s_html += '</tr>' ; + + // print calendar table + var n_date, n_month, d_current = new Date(d_firstday); + while (d_current.getMonth() == d_date.getMonth() || + d_current.getMonth() == d_firstday.getMonth()) { + + // print row heder + s_html +='<tr>'; + for (var n_wday = 0; n_wday < 7; n_wday++) { + + a_class = []; + n_date = d_current.getDate(); + n_month = d_current.getMonth(); + + // other month + if (d_current.getMonth() != d_date.getMonth()) + a_class[a_class.length] = 'othermonth'; + // weekend + if (d_current.getDay() == 0 || d_current.getDay() == 6) + a_class[a_class.length] = 'weekend'; + // today + if (d_current.valueOf() == d_today.valueOf()) + a_class[a_class.length] = 'today'; + // selected + if (d_current.valueOf() == d_selected.valueOf()) + a_class[a_class.length] = 'selected'; + + s_html += '<td onclick="A_TCALS[\'' + this.s_id + '\'].f_hide(' + d_current.valueOf() + ')"' + (a_class.length ? ' class="' + a_class.join(' ') + '">' : '>') + n_date + '</td>' + + d_current.setDate(++n_date); + while (d_current.getDate() != n_date && d_current.getMonth() == n_month) { + alert(n_date + "\n" + d_current + "\n" + new Date()); + d_current.setHours(d_current.getHours + 1); + d_current = f_tcalResetTime(d_current); + } + } + // print row footer + s_html +='</tr>'; + } + s_html +='</tbody></table>'; + + // update HTML, positions and sizes + this.e_div.innerHTML = s_html; + + var n_width = this.e_div.offsetWidth; + var n_height = this.e_div.offsetHeight; + var n_top = f_getPosition (this.e_icon, 'Top') + this.e_icon.offsetHeight; + var n_left = f_getPosition (this.e_icon, 'Left') - n_width + this.e_icon.offsetWidth; + if (n_left < 0) n_left = 0; + + this.e_div.style.left = n_left + 'px'; + this.e_div.style.top = n_top + 'px'; + + this.e_shade.style.width = (n_width + 8) + 'px'; + this.e_shade.style.left = (n_left - 1) + 'px'; + this.e_shade.style.top = (n_top - 1) + 'px'; + this.e_shade.innerHTML = b_ieFix + ? '<table><tbody><tr><td rowspan="2" colspan="2" width="6"><img src="' + this.a_tpl.imgpath + 'pixel.gif"></td><td width="7" height="7" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + this.a_tpl.imgpath + 'shade_tr.png\', sizingMethod=\'scale\');"><img src="' + this.a_tpl.imgpath + 'pixel.gif"></td></tr><tr><td height="' + (n_height - 7) + '" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + this.a_tpl.imgpath + 'shade_mr.png\', sizingMethod=\'scale\');"><img src="' + this.a_tpl.imgpath + 'pixel.gif"></td></tr><tr><td width="7" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + this.a_tpl.imgpath + 'shade_bl.png\', sizingMethod=\'scale\');"><img src="' + this.a_tpl.imgpath + 'pixel.gif"></td><td style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + this.a_tpl.imgpath + 'shade_bm.png\', sizingMethod=\'scale\');" height="7" align="left"><img src="' + this.a_tpl.imgpath + 'pixel.gif"></td><td style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + this.a_tpl.imgpath + 'shade_br.png\', sizingMethod=\'scale\');"><img src="' + this.a_tpl.imgpath + 'pixel.gif"></td></tr><tbody></table>' + : '<table><tbody><tr><td rowspan="2" width="6"><img src="' + this.a_tpl.imgpath + 'pixel.gif"></td><td rowspan="2"><img src="' + this.a_tpl.imgpath + 'pixel.gif"></td><td width="7" height="7"><img src="' + this.a_tpl.imgpath + 'shade_tr.png"></td></tr><tr><td background="' + this.a_tpl.imgpath + 'shade_mr.png" height="' + (n_height - 7) + '"><img src="' + this.a_tpl.imgpath + 'pixel.gif"></td></tr><tr><td><img src="' + this.a_tpl.imgpath + 'shade_bl.png"></td><td background="' + this.a_tpl.imgpath + 'shade_bm.png" height="7" align="left"><img src="' + this.a_tpl.imgpath + 'pixel.gif"></td><td><img src="' + this.a_tpl.imgpath + 'shade_br.png"></td></tr><tbody></table>'; + + if (this.e_iframe) { + this.e_iframe.style.left = n_left + 'px'; + this.e_iframe.style.top = n_top + 'px'; + this.e_iframe.style.width = (n_width + 6) + 'px'; + this.e_iframe.style.height = (n_height + 6) +'px'; + } + return true; +} + +function f_getPosition (e_elemRef, s_coord) { + var n_pos = 0, n_offset, + e_elem = e_elemRef; + + while (e_elem) { + n_offset = e_elem["offset" + s_coord]; + n_pos += n_offset; + e_elem = e_elem.offsetParent; + } + // margin correction in some browsers + if (b_ieMac) + n_pos += parseInt(document.body[s_coord.toLowerCase() + 'Margin']); + else if (b_safari) + n_pos -= n_offset; + + e_elem = e_elemRef; + while (e_elem != document.body) { + n_offset = e_elem["scroll" + s_coord]; + if (n_offset && e_elem.style.overflow == 'scroll') + n_pos -= n_offset; + e_elem = e_elem.parentNode; + } + return n_pos; +} + +function f_tcalRelDate (d_date, d_diff, s_units) { + var s_units = (s_units == 'y' ? 'FullYear' : 'Month'); + var d_result = new Date(d_date); + d_result['set' + s_units](d_date['get' + s_units]() + d_diff); + if (d_result.getDate() != d_date.getDate()) + d_result.setDate(0); + return ' onclick="A_TCALS[\'' + this.s_id + '\'].f_update(' + d_result.valueOf() + ')"'; +} + +function f_tcalHideAll () { + for (var i = 0; i < window.A_TCALSIDX.length; i++) + window.A_TCALSIDX[i].f_hide(); +} + +function f_tcalResetTime (d_date) { + d_date.setHours(0); + d_date.setMinutes(0); + d_date.setSeconds(0); + d_date.setMilliseconds(0); + return d_date; +} + +f_getElement = document.all ? + function (s_id) { return document.all[s_id] } : + function (s_id) { return document.getElementById(s_id) }; + +if (document.addEventListener) + window.addEventListener('scroll', f_tcalHideAll, false); +if (window.attachEvent) + window.attachEvent('onscroll', f_tcalHideAll); + +// global variables +var s_userAgent = navigator.userAgent.toLowerCase(), + re_webkit = /WebKit\/(\d+)/i; +var b_mac = s_userAgent.indexOf('mac') != -1, + b_ie5 = s_userAgent.indexOf('msie 5') != -1, + b_ie6 = s_userAgent.indexOf('msie 6') != -1 && s_userAgent.indexOf('opera') == -1; +var b_ieFix = b_ie5 || b_ie6, + b_ieMac = b_mac && b_ie5, + b_safari = b_mac && re_webkit.exec(s_userAgent) && Number(RegExp.$1) < 500; Modified: trunk/common.php =================================================================== --- trunk/common.php 2009-11-03 21:58:40 UTC (rev 756) +++ trunk/common.php 2009-11-05 14:55:39 UTC (rev 757) @@ -19,7 +19,7 @@ if(!defined('POSTFIXADMIN')) { # already defined if called from setup.php session_start(); - define('POSTFIXADMIN', 1); # checked in included files + define('POSTFIXADMIN', 1); # checked in included files } $incpath = dirname(__FILE__); @@ -62,4 +62,8 @@ } spl_autoload_register('postfixadmin_autoload'); +//***** +require_once ("$incpath/smarty.inc.php"); +//***** /* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ +?> \ No newline at end of file Modified: trunk/config.inc.php =================================================================== --- trunk/config.inc.php 2009-11-03 21:58:40 UTC (rev 756) +++ trunk/config.inc.php 2009-11-05 14:55:39 UTC (rev 757) @@ -29,7 +29,6 @@ // To create the hash, visit setup.php in a browser and type a password into the field, // on submission it will be echoed out to you as a hashed value. $CONF['setup_password'] = 'changeme'; - // Postfix Admin Path // Set the location of your Postfix Admin installation here. // YOU MUST ENTER THE COMPLETE URL e.g. http://domain.tld/postfixadmin @@ -58,7 +57,6 @@ // uncomment and change the following // $CONF['database_port'] = '5432'; - // Here, if you need, you can customize table names. $CONF['database_prefix'] = ''; $CONF['database_tables'] = array ( @@ -74,7 +72,7 @@ 'vacation' => 'vacation', 'vacation_notification' => 'vacation_notification', 'quota' => 'quota', - 'quota2' => 'quota2', + 'quota2' => 'quota2', ); // Site Admin @@ -308,7 +306,6 @@ // Set to "" to disable this check. $CONF['recipient_delimiter'] = ""; - // Optional: // Script to run after creation of mailboxes. // Note that this may fail if PHP is run in "safe mode", or if @@ -389,12 +386,11 @@ $CONF['theme_css'] = 'css/default.css'; // XMLRPC Interface. -// This should be only of use if you wish to use e.g the +// This should be only of use if you wish to use e.g the // Postfixadmin-Squirrelmail package // change to boolean true to enable xmlrpc $CONF['xmlrpc_enabled'] = false; - // If you want to keep most settings at default values and/or want to ensure // that future updates work without problems, you can use a separate config // file (config.local.php) instead of editing this file and override some Added: trunk/configs/menu.conf =================================================================== --- trunk/configs/menu.conf (rev 0) +++ trunk/configs/menu.conf 2009-11-05 14:55:39 UTC (rev 757) @@ -0,0 +1,72 @@ +url_main = main.php +# list_admin +url_list_admin = list-admin.php +url_create_admin = create-admin.php +# list-domain +url_list_domain = list-domain.php +url_create_domain = create-domain.php +# list-virtual +url_list_virtual = list-virtual.php +url_create_mailbox = create-mailbox.php +url_create_alias = create-alias.php +url_create_alias_domain = create-alias-domain.php +# fetchmail +url_fetchmail = fetchmail.php +url_fetchmail_new_entry = fetchmail.php?new=1 +# sendmail +url_sendmail = sendmail.php +url_broadcast_message = broadcast-message.php +# password +url_password = password.php +# backup +url_backup = backup.php +# viewlog +url_viewlog = viewlog.php +# logout +url_logout = logout.php + +# user-menu +url_user_edit_alias = edit-alias.php +url_user_vacation = vacation.php +url_user_password = password.php +url_user_logout = logout.php + + +url_edit_active = edit-active.php + +tr_header = <tr class="header"> +tr_hilightoff = <tr class="hilightoff" onmouseover="className='hilighton';" onmouseout="className='hilightoff';"> + +url_delete = delete.php +url_search = search.php +form_search = <form name="search" method="post" action="search.php"><input name="search" size="10" /></form> + +[main] +_txt_list_domain = pMenu_overview + +[admin_list-admin] +url_edit_active_admin = edit-active-admin.php +url_edit_admin = edit-admin.php + +[admin_list-domain] +url_edit_active_domain = edit-active-domain.php +url_edit_domain = edit-domain.php + +[DISCARDED] +_txt_main = pMenu_main +_txt_list_admin = pAdminMenu_list_admin +_txt_create_admin = pAdminMenu_create_admin +_txt_list_domain = pAdminMenu_list_domain +_txt_create_domain = pAdminMenu_create_domain +_txt_list_virtual = pAdminMenu_list_virtual +_txt_create_mailbox = pMenu_create_mailbox +_txt_create_alias = pMenu_create_alias +_txt_create_alias_domain = pMenu_create_alias_domain +_txt_fetchmail = pMenu_fetchmail +_txt_fetchmail_new_entry = pFetchmail_new_entry +_txt_logout = pMenu_logout +_txt_viewlog = pMenu_viewlog +_txt_password = pMenu_password +_txt_backup = pAdminMenu_backup +_txt_sendmail = pMenu_sendmail +_txt_broadcast_message = pAdminMenu_broadcast_message Modified: trunk/create-admin.php =================================================================== --- trunk/create-admin.php 2009-11-03 21:58:40 UTC (rev 756) +++ trunk/create-admin.php 2009-11-05 14:55:39 UTC (rev 757) @@ -34,7 +34,6 @@ require_once('common.php'); authentication_require_role('global-admin'); - $list_domains = list_domains (); $tDomains = array(); @@ -51,7 +50,6 @@ if (isset ($_POST['fPassword2'])) $fPassword2 = escape_string ($_POST['fPassword2']); $fDomains = array(); if (!empty ($_POST['fDomains'])) $fDomains = $_POST['fDomains']; - list ($error, $tMessage, $pAdminCreate_admin_username_text, $pAdminCreate_admin_password_text) = create_admin($fUsername, $fPassword, $fPassword2, $fDomains); if ($error != 0) { @@ -60,10 +58,14 @@ } } -include ("templates/header.php"); -include ("templates/menu.php"); -include ("templates/admin_create-admin.php"); -include ("templates/footer.php"); +$smarty->assign ('tUsername', $tUsername); +$smarty->assign ('pAdminCreate_admin_username_text', $pAdminCreate_admin_username_text); +$smarty->assign ('pAdminCreate_admin_password_text', $pAdminCreate_admin_password_text); +$smarty->assign ('tMessage', $tMessage); +$smarty->assign ('select_options', select_options ($list_domains, $tDomains)); +$smarty->assign ('smarty_template', 'admin_create-admin'); +$smarty->display ('index.tpl'); + /* vim: set expandtab softtabstop=3 tabstop=3 shiftwidth=3: */ ?> Modified: trunk/create-alias-domain.php =================================================================== --- trunk/create-alias-domain.php 2009-11-03 21:58:40 UTC (rev 756) +++ trunk/create-alias-domain.php 2009-11-05 14:55:39 UTC (rev 757) @@ -86,11 +86,14 @@ $fTargetDomain = escape_string ($_REQUEST['target_domain']); $fTargetDomain = strtolower ($fTargetDomain); } +//*** ????? if (isset ($_REQUEST['active'])) { $fActive = (bool)$_REQUEST['active']; } else { + $fActive = false; +} +if (!isset ($_REQUEST['submit'])) $fActive = true; -} if ($_SERVER['REQUEST_METHOD'] == "POST") { @@ -132,10 +135,13 @@ $tMessage .= "<br />($fAliasDomain -> $fTargetDomain)<br />\n"; } - -include ("templates/header.php"); -include ("templates/menu.php"); -include ("templates/create-alias-domain.php"); -include ("templates/footer.php"); +$smarty->assign ('alias_domains', (count($alias_domains) > 0)); +$smarty->assign ('select_options_alias', select_options ($alias_domains, array ($fAliasDomain))); +$smarty->assign ('select_options_target', select_options ($target_domains, array ($fTargetDomain))); +if ($fActive) $smarty->assign ('fActive', ' checked="checked"'); +if ($error == 1) $tMessage = '<span class="error_msg">'.$tMessage.'</span>'; +$smarty->assign ('tMessage', $tMessage); +$smarty->assign ('smarty_template', 'create-alias-domain'); +$smarty->display ('index.tpl'); /* vim: set expandtab softtabstop=3 tabstop=3 shiftwidth=3: */ ?> Modified: trunk/create-alias.php =================================================================== --- trunk/create-alias.php 2009-11-03 21:58:40 UTC (rev 756) +++ trunk/create-alias.php 2009-11-05 14:55:39 UTC (rev 757) @@ -124,7 +124,7 @@ $tAddress = escape_string ($_POST['fAddress']); $tGoto = $fGoto; $tDomain = $fDomain; - $pCreate_alias_address_text = $PALANG['pCreate_alias_address_text_error2']; + $pCreate_alias_address_text = $PALANG['pCreate_alias_address_text_error2']; } if ($fActive == "on") { @@ -150,12 +150,17 @@ $tDomain = $fDomain; $tMessage = $PALANG['pCreate_alias_result_success'] . "<br />($fAddress -> $fGoto)<br />\n"; } - } } +} -include ("templates/header.php"); -include ("templates/menu.php"); -include ("templates/create-alias.php"); -include ("templates/footer.php"); +$smarty->assign ('tAddress', $tAddress); +$smarty->assign ('select_options', select_options ($list_domains, array ($tDomain))); +$smarty->assign ('pCreate_alias_address_text', $pCreate_alias_address_text); +$smarty->assign ('tGoto', $tGoto); +$smarty->assign ('pCreate_alias_goto_text', $pCreate_alias_goto_text); +$smarty->assign ('tMessage', $tMessage); +$smarty->assign ('smarty_template', 'create-alias'); +$smarty->display ('index.tpl'); + /* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ ?> Modified: trunk/create-domain.php =================================================================== --- trunk/create-domain.php 2009-11-03 21:58:40 UTC (rev 756) +++ trunk/create-domain.php 2009-11-05 14:55:39 UTC (rev 757) @@ -142,10 +142,18 @@ } } -include ("templates/header.php"); -include ("templates/menu.php"); -include ("templates/admin_create-domain.php"); -include ("templates/footer.php"); +$smarty->assign ('tDomain', $tDomain); +$smarty->assign ('pAdminCreate_domain_domain_text', $pAdminCreate_domain_domain_text); +$smarty->assign ('tDescription', $tDescription); +$smarty->assign ('tAliases', $tAliases); +$smarty->assign ('tMailboxes', $tMailboxes); +$smarty->assign ('tMaxquota', $tMaxquota); +$smarty->assign ('select_options', select_options ($CONF ['transport_options'], array ($tTransport))); +$smarty->assign ('tDefaultaliases', ($tDefaultaliases == 'on') ? ' checked="checked"' : ''); +$smarty->assign ('tBackupmx', ($tBackupmx == 'on') ? ' checked="checked"' : ''); +$smarty->assign ('tMessage', $tMessage); +$smarty->assign ('smarty_template', 'admin_create-domain'); +$smarty->display ('index.tpl'); /* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ ?> Modified: trunk/create-mailbox.php =================================================================== --- trunk/create-mailbox.php 2009-11-03 21:58:40 UTC (rev 756) +++ trunk/create-mailbox.php 2009-11-05 14:55:39 UTC (rev 757) @@ -40,235 +40,240 @@ authentication_require_role('admin'); $SESSID_USERNAME = authentication_get_username(); if(authentication_has_role('global-admin')) { - $list_domains = list_domains (); + $list_domains = list_domains (); } else { - $list_domains = list_domains_for_admin($SESSID_USERNAME); + $list_domains = list_domains_for_admin($SESSID_USERNAME); } $pCreate_mailbox_password_text = $PALANG['pCreate_mailbox_password_text']; -$pCreate_mailbox_name_text = $PALANG['pCreate_mailbox_name_text']; $pCreate_mailbox_quota_text = $PALANG['pCreate_mailbox_quota_text']; if ($_SERVER['REQUEST_METHOD'] == "GET") { - $fDomain = $list_domains[0]; - if (isset ($_GET['domain'])) $fDomain = escape_string ($_GET['domain']); + $fDomain = $list_domains[0]; + if (isset ($_GET['domain'])) $fDomain = escape_string ($_GET['domain']); - if(!in_array($fDomain, $list_domains)) { - die("Invalid domain name selected, or you tried to select a domain you are not an admin for"); - } - $tDomain = $fDomain; - $result = db_query ("SELECT * FROM $table_domain WHERE domain='$fDomain'"); - if ($result['rows'] == 1) - { - $row = db_array ($result['result']); - $tQuota = $row['maxquota']; - } + if(!in_array($fDomain, $list_domains)) { + die("Invalid domain name selected, or you tried to select a domain you are not an admin for"); + } + $tDomain = $fDomain; + $result = db_query ("SELECT * FROM $table_domain WHERE domain='$fDomain'"); + if ($result['rows'] == 1) + { + $row = db_array ($result['result']); + $tQuota = $row['maxquota']; + } } if ($_SERVER['REQUEST_METHOD'] == "POST") { - if (isset ($_POST['fUsername']) && isset ($_POST['fDomain'])) $fUsername = escape_string ($_POST['fUsername']) . "@" . escape_string ($_POST['fDomain']); - $fUsername = strtolower ($fUsername); - if (isset ($_POST['fPassword'])) $fPassword = escape_string ($_POST['fPassword']); - if (isset ($_POST['fPassword2'])) $fPassword2 = escape_string ($_POST['fPassword2']); - isset ($_POST['fName']) ? $fName = escape_string ($_POST['fName']) : $fName = ""; - if (isset ($_POST['fDomain'])) $fDomain = escape_string ($_POST['fDomain']); - isset ($_POST['fQuota']) ? $fQuota = intval($_POST['fQuota']) : $fQuota = 0; - isset ($_POST['fActive']) ? $fActive = escape_string ($_POST['fActive']) : $fActive = "1"; - if (isset ($_POST['fMail'])) $fMail = escape_string ($_POST['fMail']); + if (isset ($_POST['fUsername']) && isset ($_POST['fDomain'])) $fUsername = escape_string ($_POST['fUsername']) . "@" . escape_string ($_POST['fDomain']); + $fUsername = strtolower ($fUsername); + if (isset ($_POST['fPassword'])) $fPassword = escape_string ($_POST['fPassword']); + if (isset ($_POST['fPassword2'])) $fPassword2 = escape_string ($_POST['fPassword2']); + isset ($_POST['fName']) ? $fName = escape_string ($_POST['fName']) : $fName = ""; + if (isset ($_POST['fDomain'])) $fDomain = escape_string ($_POST['fDomain']); + isset ($_POST['fQuota']) ? $fQuota = intval($_POST['fQuota']) : $fQuota = 0; + isset ($_POST['fActive']) ? $fActive = escape_string ($_POST['fActive']) : $fActive = "1"; + if (isset ($_POST['fMail'])) $fMail = escape_string ($_POST['fMail']); - if ( (!check_owner ($SESSID_USERNAME, $fDomain)) && (!authentication_has_role('global-admin')) ) - { - $error = 1; - $tUsername = escape_string ($_POST['fUsername']); - $tName = $fName; - $tQuota = $fQuota; - $tDomain = $fDomain; - $pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error1']; - } + if ( (!check_owner ($SESSID_USERNAME, $fDomain)) && (!authentication_has_role('global-admin')) ) + { + $error = 1; + $tUsername = escape_string ($_POST['fUsername']); + $tName = $fName; + $tQuota = $fQuota; + $tDomain = $fDomain; + $pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error1']; + } - if (!check_mailbox ($fDomain)) - { - $error = 1; - $tUsername = escape_string ($_POST['fUsername']); - $tName = $fName; - $tQuota = $fQuota; - $tDomain = $fDomain; - $pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error3']; - } + if (!check_mailbox ($fDomain)) + { + $error = 1; + $tUsername = escape_string ($_POST['fUsername']); + $tName = $fName; + $tQuota = $fQuota; + $tDomain = $fDomain; + $pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error3']; + } - if (empty ($fUsername) or !check_email ($fUsername)) - { - $error = 1; - $tUsername = escape_string ($_POST['fUsername']); - $tName = $fName; - $tQuota = $fQuota; - $tDomain = $fDomain; - $pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error1']; - } + if (empty ($fUsername) or !check_email ($fUsername)) + { + $error = 1; + $tUsername = escape_string ($_POST['fUsername']); + $tName = $fName; + $tQuota = $fQuota; + $tDomain = $fDomain; + $pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error1']; + } - $tPassGenerated = 0; - if (empty ($fPassword) or empty ($fPassword2) or ($fPassword != $fPassword2)) - { - if (empty ($fPassword) and empty ($fPassword2) and $CONF['generate_password'] == "YES") - { - $fPassword = generate_password (); - $tPassGenerated = 1; - } - else - { - $error = 1; - $tUsername = escape_string ($_POST['fUsername']); - $tName = $fName; - $tQuota = $fQuota; - $tDomain = $fDomain; - $pCreate_mailbox_password_text = $PALANG['pCreate_mailbox_password_text_error']; - } - } + $tPassGenerated = 0; + if (empty ($fPassword) or empty ($fPassword2) or ($fPassword != $fPassword2)) + { + if (empty ($fPassword) and empty ($fPassword2) and $CONF['generate_password'] == "YES") + { + $fPassword = generate_password (); + $tPassGenerated = 1; + } + else + { + $error = 1; + $tUsername = escape_string ($_POST['fUsername']); + $tName = $fName; + $tQuota = $fQuota; + $tDomain = $fDomain; + $pCreate_mailbox_password_text = $PALANG['pCreate_mailbox_password_text_error']; + } + } - if ($CONF['quota'] == "YES") - { - if (!check_quota ($fQuota, $fDomain)) - { - $error = 1; - $tUsername = escape_string ($_POST['fUsername']); - $tName = $fName; - $tQuota = $fQuota; - $tDomain = $fDomain; - $pCreate_mailbox_quota_text = $PALANG['pCreate_mailbox_quota_text_error']; - } - } + if ($CONF['quota'] == "YES") + { + if (!check_quota ($fQuota, $fDomain)) + { + $error = 1; + $tUsername = escape_string ($_POST['fUsername']); + $tName = $fName; + $tQuota = $fQuota; + $tDomain = $fDomain; + $pCreate_mailbox_quota_text = $PALANG['pCreate_mailbox_quota_text_error']; + } + } - $result = db_query ("SELECT * FROM $table_alias WHERE address='$fUsername'"); - if ($result['rows'] == 1) - { - $error = 1; - $tUsername = escape_string ($_POST['fUsername']); - $tName = $fName; - $tQuota = $fQuota; - $tDomain = $fDomain; - $pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error2']; - } + $result = db_query ("SELECT * FROM $table_alias WHERE address='$fUsername'"); + if ($result['rows'] == 1) + { + $error = 1; + $tUsername = escape_string ($_POST['fUsername']); + $tName = $fName; + $tQuota = $fQuota; + $tDomain = $fDomain; + $pCreate_mailbox_username_text = $PALANG['pCreate_mailbox_username_text_error2']; + } - if ($error != 1) - { - $password = pacrypt ($fPassword); + if ($error != 1) + { + $password = pacrypt ($fPassword); - if ($CONF['domain_path'] == "YES") - { - if ($CONF['domain_in_mailbox'] == "YES") - { - $maildir = $fDomain . "/" . $fUsername . "/"; - } - else - { - $maildir = $fDomain . "/" . escape_string (strtolower($_POST['fUsername'])) . "/"; - } - } - else - { - $maildir = $fUsername . "/"; - } + if ($CONF['domain_path'] == "YES") + { + if ($CONF['domain_in_mailbox'] == "YES") + { + $maildir = $fDomain . "/" . $fUsername . "/"; + } + else + { + $maildir = $fDomain . "/" . escape_string (strtolower($_POST['fUsername'])) . "/"; + } + } + else + { + $maildir = $fUsername . "/"; + } - if (!empty ($fQuota)) - { - $quota = multiply_quota ($fQuota); - } - else - { - $quota = 0; - } + if (!empty ($fQuota)) + { + $quota = multiply_quota ($fQuota); + } + else + { + $quota = 0; + } - if ($fActive == "on") - { - $sqlActive = db_get_boolean(True); - } - else - { - $sqlActive = db_get_boolean(False); - } - if ('pgsql'==$CONF['database_type']) - { - db_query('BEGIN'); - } + if ($fActive == "on") + { + $sqlActive = db_get_boolean(True); + } + else + { + $sqlActive = db_get_boolean(False); + } + if ('pgsql'==$CONF['database_type']) + { + db_query('BEGIN'); + } - $result = db_query ("INSERT INTO $table_alias (address,goto,domain,created,modified,active) VALUES ('$fUsername','$fUsername','$fDomain',NOW(),NOW(),'$sqlActive')"); - if ($result['rows'] != 1) - { - $tDomain = $fDomain; - $tMessage = $PALANG['pAlias_result_error'] . "<br />($fUsername -> $fUsername)</br />"; - } + $result = db_query ("INSERT INTO $table_alias (address,goto,domain,created,modified,active) VALUES ('$fUsername','$fUsername','$fDomain',NOW(),NOW(),'$sqlActive')"); + if ($result['rows'] != 1) + { + $tDomain = $fDomain; + $tMessage = $PALANG['pAlias_result_error'] . "<br />($fUsername -> $fUsername)</br />"; + } + // apparently uppercase usernames really confuse some IMAP clients. + $fUsername = strtolower($fUsername); + $local_part = ''; + if(preg_match('/^(.*)@/', $fUsername, $matches)) { + $local_part = $matches[1]; + } - // apparently uppercase usernames really confuse some IMAP clients. - $fUsername = strtolower($fUsername); - $local_part = ''; - if(preg_match('/^(.*)@/', $fUsername, $matches)) { - $local_part = $matches[1]; - } + $result = db_query ("INSERT INTO $table_mailbox (username,password,name,maildir,local_part,quota,domain,created,modified,active) VALUES ('$fUsername','$password','$fName','$maildir','$local_part','$quota','$fDomain',NOW(),NOW(),'$sqlActive')"); + if ($result['rows'] != 1 || !mailbox_postcreation($fUsername,$fDomain,$maildir, $quota)) + { + $tDomain = $fDomain; + $tMessage .= $PALANG['pCreate_mailbox_result_error'] . "<br />($fUsername)<br />"; + db_query('ROLLBACK'); + } + else + { + db_query('COMMIT'); + db_log ($SESSID_USERNAME, $fDomain, 'create_mailbox', "$fUsername"); + $tDomain = $fDomain; - $result = db_query ("INSERT INTO $table_mailbox (username,password,name,maildir,local_part,quota,domain,created,modified,active) VALUES ('$fUsername','$password','$fName','$maildir','$local_part','$quota','$fDomain',NOW(),NOW(),'$sqlActive')"); - if ($result['rows'] != 1 || !mailbox_postcreation($fUsername,$fDomain,$maildir, $quota)) - { - $tDomain = $fDomain; - $tMessage .= $PALANG['pCreate_mailbox_result_error'] . "<br />($fUsername)<br />"; - db_query('ROLLBACK'); - } - else - { - db_query('COMMIT'); - db_log ($SESSID_USERNAME, $fDomain, 'create_mailbox', "$fUsername"); - $tDomain = $fDomain; + $tQuota = $CONF['maxquota']; - $tQuota = $CONF['maxquota']; + if ($fMail == "on") + { + $fTo = $fUsername; + $fFrom = $SESSID_USERNAME; + $fHeaders = "To: " . $fTo . "\n"; + $fHeaders .= "From: " . $fFrom . "\n"; - if ($fMail == "on") - { - $fTo = $fUsername; - $fFrom = $SESSID_USERNAME; - $fHeaders = "To: " . $fTo . "\n"; - $fHeaders .= "From: " . $fFrom . "\n"; + $fHeaders .= "Subject: " . encode_header ($PALANG['pSendmail_subject_text']) . "\n"; + $fHeaders .= "MIME-Version: 1.0\n"; + $fHeaders .= "Content-Type: text/plain; charset=utf-8\n"; + $fHeaders .= "Content-Transfer-Encoding: 8bit\n"; + + $fHeaders .= $CONF['welcome_text']; - $fHeaders .= "Subject: " . encode_header ($PALANG['pSendmail_subject_text']) . "\n"; - $fHeaders .= "MIME-Version: 1.0\n"; - $fHeaders .= "Content-Type: text/plain; charset=utf-8\n"; - $fHeaders .= "Content-Transfer-Encoding: 8bit\n"; + if (!smtp_mail ($fTo, $fFrom, $fHeaders)) + { + $tMessage .= "<br />" . $PALANG['pSendmail_result_error'] . "<br />"; + } + else + { + $tMessage .= "<br />" . $PALANG['pSendmail_result_success'] . "<br />"; + } + } - $fHeaders .= $CONF['welcome_text']; + $tShowpass = ""; + if ( $tPassGenerated == 1 || $CONF['show_password'] == "YES") $tShowpass = " / $fPassword"; - if (!smtp_mail ($fTo, $fFrom, $fHeaders)) - { - $tMessage .= "<br />" . $PALANG['pSendmail_result_error'] . "<br />"; - } - else - { - $tMessage .= "<br />" . $PALANG['pSendmail_result_success'] . "<br />"; - } - } + if (create_mailbox_subfolders($fUsername,$fPassword)) + { + $tMessage .= $PALANG['pCreate_mailbox_result_success'] . "<br />($fUsername$tShowpass)"; + } else { + $tMessage .= $PALANG['pCreate_mailbox_result_succes_nosubfolders'] . "<br />($fUsername$tShowpass)"; + } - $tShowpass = ""; - if ( $tPassGenerated == 1 || $CONF['show_password'] == "YES") $tShowpass = " / $fPassword"; + } + } +} - if (create_mailbox_subfolders($fUsername,$fPassword)) - { - $tMessage .= $PALANG['pCreate_mailbox_result_success'] . "<br />($fUsername$tShowpass)"; - } else { - $tMessage .= $PALANG['pCreate_mailbox_result_succes_nosubfolders'] . "<br />($fUsername$tShowpass)"; - } +$smarty->assign ('tUsername', $tUsername); +$smarty->assign ('select_options', select_options ($list_domains, array ($tDomain))); +$smarty->assign ('pCreate_mailbox_username_text', $pCreate_mailbox_username_text); +$smarty->assign ('pCreate_mailbox_password_text', $pCreate_mailbox_password_text); +$smarty->assign ('tName', $tName); +$smarty->assign ('tQuota', $tQuota); +$smarty->assign ('pCreate_mailbox_quota_text', $pCreate_mailbox_quota_text); +$smarty->assign ('tMessage', $tMessage); +$smarty->assign ('smarty_template', 'create-mailbox'); +$smarty->display ('index.tpl'); - } - } -} -include ("templates/header.php"); -include ("templates/menu.php"); -include ("templates/create-mailbox.php"); -include ("templates/footer.php"); - /* vim: set expandtab softtabstop=3 tabstop=3 shiftwidth=3: */ ?> Added: trunk/css/calendar.css =================================================================== --- trunk/css/calendar.css (rev 0) +++ trunk/css/calendar.css 2009-11-05 14:55:39 UTC (rev 757) @@ -0,0 +1,95 @@ +/* calendar icon */ +img.tcalIcon { + cursor: pointer; + margin-left: 1px; + vertical-align: middle; +} +/* calendar container element */ +div#tcal { + position: absolute; + visibility: hidden; + z-index: 100; + width: 158px; + padding: 2px 0 0 0; +} +/* all tables in calendar */ +div#tcal table { + width: 100%; + border: 1px solid silver; + border-collapse: collapse; + background-color: white; +} +/* navigation table */ +div#tcal table.ctrl { + border-bottom: 0; +} +/* navigation buttons */ +div#tcal table.ctrl td { + width: 15px; + height: 20px; +} +/* month year header */ +div#tcal table.ctrl th { + background-color: white; + colo... [truncated message content] |
From: <Seb...@us...> - 2009-11-06 19:16:33
|
Revision: 759 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=759&view=rev Author: Sebastian2009 Date: 2009-11-06 19:16:14 +0000 (Fri, 06 Nov 2009) Log Message: ----------- - accidentially deleted header.php. Needed for setup - add some error checks. Modified Paths: -------------- trunk/common.php trunk/setup.php Added Paths: ----------- trunk/templates/header.php Modified: trunk/common.php =================================================================== --- trunk/common.php 2009-11-05 15:03:11 UTC (rev 758) +++ trunk/common.php 2009-11-06 19:16:14 UTC (rev 759) @@ -63,6 +63,9 @@ spl_autoload_register('postfixadmin_autoload'); //***** +if(!is_file("$incpath/smarty.inc.php")) { + die("smarty.inc.php is missing! Sonething is wrong..."); +} require_once ("$incpath/smarty.inc.php"); //***** /* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ Modified: trunk/setup.php =================================================================== --- trunk/setup.php 2009-11-05 15:03:11 UTC (rev 758) +++ trunk/setup.php 2009-11-06 19:16:14 UTC (rev 759) @@ -143,6 +143,17 @@ } // +// Check if templates directory is writable +// + +if (!is_writeable($incpath.'/templates_c')) +{ + print "<li><b>Error: The subdirectory templates_c is not writable.</b><br />\n"; + print "Please make it writable.<br />\n"; + $error =+ 1; +} + +// // Check if there is support for at least 1 database // if (($f_mysql_connect == 0) and ($f_mysqli_connect == 0) and ($f_pg_connect == 0)) Added: trunk/templates/header.php =================================================================== --- trunk/templates/header.php (rev 0) +++ trunk/templates/header.php 2009-11-06 19:16:14 UTC (rev 759) @@ -0,0 +1,62 @@ +<?php if( !defined('POSTFIXADMIN') ) die( "This file cannot be used standalone." ); ?> +<?php +@header ("Expires: Sun, 16 Mar 2003 05:00:00 GMT"); +@header ("Last-Modified: " . gmdate ("D, d M Y H:i:s") . " GMT"); +@header ("Cache-Control: no-store, no-cache, must-revalidate"); +@header ("Cache-Control: post-check=0, pre-check=0", false); +@header ("Pragma: no-cache"); +@header ("Content-Type: text/html; charset=UTF-8"); +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<?php +if (file_exists (realpath ("../".$CONF['theme_css']))) { + print "<link rel=\"stylesheet\" type=\"text/css\" href=\"../".htmlentities($CONF['theme_css'])."\" />\n"; +} else { + print "<link rel=\"stylesheet\" type=\"text/css\" href=\"".htmlentities($CONF['theme_css'])."\" />\n"; +} +?> +<title>Postfix Admin - <?php print $_SERVER['HTTP_HOST']; ?></title> +</head> +<body> +<div id="login_header"> +<?php +if (file_exists (realpath ("../".$CONF['theme_logo']))) +{ + print "<img id=\"login_header_logo\" src=\"../".htmlentities($CONF['theme_logo'])."\" />\n"; +} else { + print "<img id=\"login_header_logo\" src=\"".htmlentities($CONF['theme_logo'])."\" />\n"; +} + +if (($CONF['show_header_text'] == "YES") and ($CONF['header_text'])) +{ + print "<h2>" . $CONF['header_text'] . "</h2>\n"; +} +?> +</div> + +<?php +if(isset($_SESSION['flash'])) { + if(isset($_SESSION['flash']['info'])) { + echo '<ul class="flash-info">'; + foreach($_SESSION['flash']['info'] as $msg) { + echo "<li>$msg</li>"; + } + echo '</ul>'; + } + if(isset($_SESSION['flash']['error'])) { + echo '<ul class="flash-error">'; + foreach($_SESSION['flash']['error'] as $msg) { + echo "<li>$msg</li>"; + } + echo '</ul>'; + } + /* nuke it from orbit. It's the only way to be sure. */ + $_SESSION['flash'] = array(); +} + +/* 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: <Seb...@us...> - 2009-11-08 18:49:43
|
Revision: 764 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=764&view=rev Author: Sebastian2009 Date: 2009-11-08 18:49:30 +0000 (Sun, 08 Nov 2009) Log Message: ----------- - add ability to choose activation date for vacation message in user module - add files to user module TODO: clean up whole user module, use VacationHandler in admin module Modified Paths: -------------- trunk/model/VacationHandler.php trunk/templates/edit-vacation.tpl trunk/templates/users_vacation.tpl trunk/users/vacation.php Added Paths: ----------- trunk/users/calendar.js trunk/users/css/ trunk/users/css/calendar.css trunk/users/css/default.css trunk/users/images/ Modified: trunk/model/VacationHandler.php =================================================================== --- trunk/model/VacationHandler.php 2009-11-07 19:21:57 UTC (rev 763) +++ trunk/model/VacationHandler.php 2009-11-08 18:49:30 UTC (rev 764) @@ -61,7 +61,7 @@ /** * Retrieve information on someone who is on vacation - * @return struct|boolean stored information on vacation - array(subject - string, message - string, active - boolean) + * @return struct|boolean stored information on vacation - array(subject - string, message - string, active - boolean, activeFrom - date, activeUntil - date) * will return false if no existing data */ function get_details() { @@ -75,32 +75,38 @@ $boolean = ($row['active'] == db_get_boolean(true)); return array( 'subject' => $row['subject'], 'body' => $row['body'], - 'active' => $boolean ); + 'active' => $boolean , + 'activeFrom' => $row['activefrom'], + 'activeUntil' => $row['activeuntil']); } return false; } /** * @param string $subject * @param string $body + * @param date $activeFrom + * @param date $activeUntil */ - function set_away($subject, $body) { + function set_away($subject, $body, $activeFrom, $activeUntil) { $this->remove(); // clean out any notifications that might already have been sent. // is there an entry in the vacaton table for the user, or do we need to insert? $table_vacation = table_by_key('vacation'); $username = escape_string($this->username); $body = escape_string($body); $subject = escape_string($subject); + $activeFrom = date ("Y-m-d 00:00:00", strtotime ($activeFrom)); + $activeUntil = date ("Y-m-d 23:59:59", strtotime ($activeUntil)); $result = db_query("SELECT * FROM $table_vacation WHERE email = '$username'"); $active = db_get_boolean(True); // check if the user has a vacation entry already, if so just update it if($result['rows'] == 1) { - $result = db_query("UPDATE $table_vacation SET active = '$active', body = '$body', subject = '$subject', created = NOW() WHERE email = '$username'"); + $result = db_query("UPDATE $table_vacation SET active = '$active', body = '$body', subject = '$subject', activefrom = '$activeFrom', activeuntil = '$activeUntil', created = NOW() WHERE email = '$username'"); } else { $tmp = preg_split ('/@/', $username); $domain = escape_string($tmp[1]); - $result = db_query ("INSERT INTO $table_vacation (email,subject,body,domain,created,active) VALUES ('$username','$subject','$body','$domain',NOW(),'$active')"); + $result = db_query ("INSERT INTO $table_vacation (email,subject,body,domain,created,active,activefrom, activeuntil) VALUES ('$username','$subject','$body','$domain',NOW(),'$active','$activeFrom','$ativeUntil')"); } $ah = new AliasHandler($this->username); Modified: trunk/templates/edit-vacation.tpl =================================================================== --- trunk/templates/edit-vacation.tpl 2009-11-07 19:21:57 UTC (rev 763) +++ trunk/templates/edit-vacation.tpl 2009-11-08 18:49:30 UTC (rev 764) @@ -58,9 +58,9 @@ </tr> <tr> <td colspan="3" class="hlp_center"> - <input class="button" type="submit" name="fChange" value="{$PALANG.pEdit_vacation_set}" /> - <input class="button" type="submit" name="fBack" value="{$PALANG.pEdit_vacation_remove}" /> - <input class="button" type="button" name="fCancel" value="{$PALANG.exit}" onclick="newLocation()" /> + <input class="button" type="submit" name="fChange" value="{$PALANG.pEdit_vacation_set}" /> + <input class="button" type="submit" name="fBack" value="{$PALANG.pEdit_vacation_remove}" /> + <input class="button" type="button" name="fCancel" value="{$PALANG.exit}" onclick="newLocation()" /> </td> </tr> <tr> Modified: trunk/templates/users_vacation.tpl =================================================================== --- trunk/templates/users_vacation.tpl 2009-11-07 19:21:57 UTC (rev 763) +++ trunk/templates/users_vacation.tpl 2009-11-08 18:49:30 UTC (rev 764) @@ -1,21 +1,54 @@ +{literal} + <script type="text/javascript"> + function newLocation() { + window.location="{/literal}{$fCanceltarget}{literal}" + } + </script> + <script language="JavaScript" src="calendar.js"></script> + <link rel="stylesheet" href="css/calendar.css"> +{/literal} <div id="edit_form"> -<form name="vacation" method="post" action=""> +<form name="vacation" method="post" action=''> <table> <tr> <td colspan="3"><h3>{$PALANG.pUsersVacation_welcome}</h3></td> </tr> <tr> + <td>{$PALANG.pUsersVacation_activefrom}:</td> + <td><input name="fActiveFrom" value="{$fActiveFrom}" readonly="readonly" style="background:#eee;"/> +{literal} +<script language="JavaScript"> + new tcal ({ + 'formname': 'vacation', + 'controlname': 'fActiveFrom' + }); +</script> +{/literal} + </td> + <td> </td> + </tr> + <tr> + <td>{$PALANG.pUsersVacation_activeuntil}:</td> + <td><input name="fActiveUntil" value="{$fActiveUntil}" readonly="readonly" style="background:#eee;"/> +{literal} +<script language="JavaScript"> + new tcal ({ + 'formname': 'vacation', + 'controlname': 'fActiveUntil' + }); +</script> +{/literal} + </td> + <td> </td> + </tr> + <tr> <td>{$PALANG.pUsersVacation_subject}:</td> - <td><input type="text" name="fSubject" value="{$tSubject}" /></td> + <td><textarea class="flat" rows="3" cols="60" name="fSubject" >{$tSubject}</textarea></td> <td> </td> </tr> <tr> <td>{$PALANG.pUsersVacation_body}:</td> - <td> -<textarea rows="10" cols="80" name="fBody"> -{$tBody} -</textarea> - </td> + <td><textarea class="flat" rows="10" cols="60" name="fBody" >{$tBody}</textarea></td> <td> </td> </tr> <tr> Added: trunk/users/calendar.js =================================================================== --- trunk/users/calendar.js (rev 0) +++ trunk/users/calendar.js 2009-11-08 18:49:30 UTC (rev 764) @@ -0,0 +1,336 @@ +// Tigra Calendar v4.0.2 (12-01-2009) European (dd.mm.yyyy) +// http://www.softcomplex.com/products/tigra_calendar/ +// Public Domain Software... You're welcome. + +// default settins +var A_TCALDEF = { + 'months' : ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], + 'weekdays' : ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], + 'yearscroll': true, // show year scroller + 'weekstart': 1, // first day of week: 0-Su or 1-Mo + 'centyear' : 70, // 2 digit years less than 'centyear' are in 20xx, othewise in 19xx. + 'imgpath' : 'images/calendar/' // directory with calendar images +} +// date parsing function +function f_tcalParseDate (s_date) { + + var re_date = /^\s*(\d{1,2})\.(\d{1,2})\.(\d{2,4})\s*$/; + if (!re_date.exec(s_date)) + return alert ("Invalid date: '" + s_date + "'.\nAccepted format is dd.mm.yyyy.") + var n_day = Number(RegExp.$1), + n_month = Number(RegExp.$2), + n_year = Number(RegExp.$3); + + if (n_year < 100) + n_year += (n_year < this.a_tpl.centyear ? 2000 : 1900); + if (n_month < 1 || n_month > 12) + return alert ("Invalid month value: '" + n_month + "'.\nAllowed range is 01-12."); + var d_numdays = new Date(n_year, n_month, 0); + if (n_day > d_numdays.getDate()) + return alert("Invalid day of month value: '" + n_day + "'.\nAllowed range for selected month is 01 - " + d_numdays.getDate() + "."); + + return new Date (n_year, n_month - 1, n_day); +} +// date generating function +function f_tcalGenerDate (d_date) { + return ( + (d_date.getDate() < 10 ? '0' : '') + d_date.getDate() + "." + + (d_date.getMonth() < 9 ? '0' : '') + (d_date.getMonth() + 1) + "." + + d_date.getFullYear() + ); +} + +// implementation +function tcal (a_cfg, a_tpl) { + + // apply default template if not specified + if (!a_tpl) + a_tpl = A_TCALDEF; + + // register in global collections + if (!window.A_TCALS) + window.A_TCALS = []; + if (!window.A_TCALSIDX) + window.A_TCALSIDX = []; + + this.s_id = a_cfg.id ? a_cfg.id : A_TCALS.length; + window.A_TCALS[this.s_id] = this; + window.A_TCALSIDX[window.A_TCALSIDX.length] = this; + + // assign methods + this.f_show = f_tcalShow; + this.f_hide = f_tcalHide; + this.f_toggle = f_tcalToggle; + this.f_update = f_tcalUpdate; + this.f_relDate = f_tcalRelDate; + this.f_parseDate = f_tcalParseDate; + this.f_generDate = f_tcalGenerDate; + + // create calendar icon + this.s_iconId = 'tcalico_' + this.s_id; + this.e_icon = f_getElement(this.s_iconId); + if (!this.e_icon) { + document.write('<img src="' + a_tpl.imgpath + 'cal.gif" id="' + this.s_iconId + '" onclick="A_TCALS[\'' + this.s_id + '\'].f_toggle()" class="tcalIcon" alt="Open Calendar" />'); + this.e_icon = f_getElement(this.s_iconId); + } + // save received parameters + this.a_cfg = a_cfg; + this.a_tpl = a_tpl; +} + +function f_tcalShow (d_date) { + + // find input field + if (!this.a_cfg.controlname) + throw("TC: control name is not specified"); + if (this.a_cfg.formname) { + var e_form = document.forms[this.a_cfg.formname]; + if (!e_form) + throw("TC: form '" + this.a_cfg.formname + "' can not be found"); + this.e_input = e_form.elements[this.a_cfg.controlname]; + } + else + this.e_input = f_getElement(this.a_cfg.controlname); + + if (!this.e_input || !this.e_input.tagName || this.e_input.tagName != 'INPUT') + throw("TC: element '" + this.a_cfg.controlname + "' does not exist in " + + (this.a_cfg.formname ? "form '" + this.a_cfg.controlname + "'" : 'this document')); + + // dynamically create HTML elements if needed + this.e_div = f_getElement('tcal'); + if (!this.e_div) { + this.e_div = document.createElement("DIV"); + this.e_div.id = 'tcal'; + document.body.appendChild(this.e_div); + } + this.e_shade = f_getElement('tcalShade'); + if (!this.e_shade) { + this.e_shade = document.createElement("DIV"); + this.e_shade.id = 'tcalShade'; + document.body.appendChild(this.e_shade); + } + this.e_iframe = f_getElement('tcalIF') + if (b_ieFix && !this.e_iframe) { + this.e_iframe = document.createElement("IFRAME"); + this.e_iframe.style.filter = 'alpha(opacity=0)'; + this.e_iframe.id = 'tcalIF'; + this.e_iframe.src = this.a_tpl.imgpath + 'pixel.gif'; + document.body.appendChild(this.e_iframe); + } + + // hide all calendars + f_tcalHideAll(); + + // generate HTML and show calendar + this.e_icon = f_getElement(this.s_iconId); + if (!this.f_update()) + return; + + this.e_div.style.visibility = 'visible'; + this.e_shade.style.visibility = 'visible'; + if (this.e_iframe) + this.e_iframe.style.visibility = 'visible'; + + // change icon and status + this.e_icon.src = this.a_tpl.imgpath + 'no_cal.gif'; + this.e_icon.title = 'Close Calendar'; + this.b_visible = true; +} + +function f_tcalHide (n_date) { + if (n_date) + this.e_input.value = this.f_generDate(new Date(n_date)); + + // no action if not visible + if (!this.b_visible) + return; + + // hide elements + if (this.e_iframe) + this.e_iframe.style.visibility = 'hidden'; + if (this.e_shade) + this.e_shade.style.visibility = 'hidden'; + this.e_div.style.visibility = 'hidden'; + + // change icon and status + this.e_icon = f_getElement(this.s_iconId); + this.e_icon.src = this.a_tpl.imgpath + 'cal.gif'; + this.e_icon.title = 'Open Calendar'; + this.b_visible = false; +} + +function f_tcalToggle () { + return this.b_visible ? this.f_hide() : this.f_show(); +} + +function f_tcalUpdate (d_date) { + + var d_today = this.a_cfg.today ? this.f_parseDate(this.a_cfg.today) : f_tcalResetTime(new Date()); + var d_selected = this.e_input.value == '' + ? (this.a_cfg.selected ? this.f_parseDate(this.a_cfg.selected) : d_today) + : this.f_parseDate(this.e_input.value); + + // figure out date to display + if (!d_date) + // selected by default + d_date = d_selected; + else if (typeof(d_date) == 'number') + // get from number + d_date = f_tcalResetTime(new Date(d_date)); + else if (typeof(d_date) == 'string') + // parse from string + this.f_parseDate(d_date); + + if (!d_date) return false; + + // first date to display + var d_firstday = new Date(d_date); + d_firstday.setDate(1); + d_firstday.setDate(1 - (7 + d_firstday.getDay() - this.a_tpl.weekstart) % 7); + + var a_class, s_html = '<table class="ctrl"><tbody><tr>' + + (this.a_tpl.yearscroll ? '<td' + this.f_relDate(d_date, -1, 'y') + ' title="Previous Year"><img src="' + this.a_tpl.imgpath + 'prev_year.gif" /></td>' : '') + + '<td' + this.f_relDate(d_date, -1) + ' title="Previous Month"><img src="' + this.a_tpl.imgpath + 'prev_mon.gif" /></td><th>' + + this.a_tpl.months[d_date.getMonth()] + ' ' + d_date.getFullYear() + + '</th><td' + this.f_relDate(d_date, 1) + ' title="Next Month"><img src="' + this.a_tpl.imgpath + 'next_mon.gif" /></td>' + + (this.a_tpl.yearscroll ? '<td' + this.f_relDate(d_date, 1, 'y') + ' title="Next Year"><img src="' + this.a_tpl.imgpath + 'next_year.gif" /></td></td>' : '') + + '</tr></tbody></table><table><tbody><tr class="wd">'; + + // print weekdays titles + for (var i = 0; i < 7; i++) + s_html += '<th>' + this.a_tpl.weekdays[(this.a_tpl.weekstart + i) % 7] + '</th>'; + s_html += '</tr>' ; + + // print calendar table + var n_date, n_month, d_current = new Date(d_firstday); + while (d_current.getMonth() == d_date.getMonth() || + d_current.getMonth() == d_firstday.getMonth()) { + + // print row heder + s_html +='<tr>'; + for (var n_wday = 0; n_wday < 7; n_wday++) { + + a_class = []; + n_date = d_current.getDate(); + n_month = d_current.getMonth(); + + // other month + if (d_current.getMonth() != d_date.getMonth()) + a_class[a_class.length] = 'othermonth'; + // weekend + if (d_current.getDay() == 0 || d_current.getDay() == 6) + a_class[a_class.length] = 'weekend'; + // today + if (d_current.valueOf() == d_today.valueOf()) + a_class[a_class.length] = 'today'; + // selected + if (d_current.valueOf() == d_selected.valueOf()) + a_class[a_class.length] = 'selected'; + + s_html += '<td onclick="A_TCALS[\'' + this.s_id + '\'].f_hide(' + d_current.valueOf() + ')"' + (a_class.length ? ' class="' + a_class.join(' ') + '">' : '>') + n_date + '</td>' + + d_current.setDate(++n_date); + while (d_current.getDate() != n_date && d_current.getMonth() == n_month) { + alert(n_date + "\n" + d_current + "\n" + new Date()); + d_current.setHours(d_current.getHours + 1); + d_current = f_tcalResetTime(d_current); + } + } + // print row footer + s_html +='</tr>'; + } + s_html +='</tbody></table>'; + + // update HTML, positions and sizes + this.e_div.innerHTML = s_html; + + var n_width = this.e_div.offsetWidth; + var n_height = this.e_div.offsetHeight; + var n_top = f_getPosition (this.e_icon, 'Top') + this.e_icon.offsetHeight; + var n_left = f_getPosition (this.e_icon, 'Left') - n_width + this.e_icon.offsetWidth; + if (n_left < 0) n_left = 0; + + this.e_div.style.left = n_left + 'px'; + this.e_div.style.top = n_top + 'px'; + + this.e_shade.style.width = (n_width + 8) + 'px'; + this.e_shade.style.left = (n_left - 1) + 'px'; + this.e_shade.style.top = (n_top - 1) + 'px'; + this.e_shade.innerHTML = b_ieFix + ? '<table><tbody><tr><td rowspan="2" colspan="2" width="6"><img src="' + this.a_tpl.imgpath + 'pixel.gif"></td><td width="7" height="7" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + this.a_tpl.imgpath + 'shade_tr.png\', sizingMethod=\'scale\');"><img src="' + this.a_tpl.imgpath + 'pixel.gif"></td></tr><tr><td height="' + (n_height - 7) + '" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + this.a_tpl.imgpath + 'shade_mr.png\', sizingMethod=\'scale\');"><img src="' + this.a_tpl.imgpath + 'pixel.gif"></td></tr><tr><td width="7" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + this.a_tpl.imgpath + 'shade_bl.png\', sizingMethod=\'scale\');"><img src="' + this.a_tpl.imgpath + 'pixel.gif"></td><td style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + this.a_tpl.imgpath + 'shade_bm.png\', sizingMethod=\'scale\');" height="7" align="left"><img src="' + this.a_tpl.imgpath + 'pixel.gif"></td><td style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + this.a_tpl.imgpath + 'shade_br.png\', sizingMethod=\'scale\');"><img src="' + this.a_tpl.imgpath + 'pixel.gif"></td></tr><tbody></table>' + : '<table><tbody><tr><td rowspan="2" width="6"><img src="' + this.a_tpl.imgpath + 'pixel.gif"></td><td rowspan="2"><img src="' + this.a_tpl.imgpath + 'pixel.gif"></td><td width="7" height="7"><img src="' + this.a_tpl.imgpath + 'shade_tr.png"></td></tr><tr><td background="' + this.a_tpl.imgpath + 'shade_mr.png" height="' + (n_height - 7) + '"><img src="' + this.a_tpl.imgpath + 'pixel.gif"></td></tr><tr><td><img src="' + this.a_tpl.imgpath + 'shade_bl.png"></td><td background="' + this.a_tpl.imgpath + 'shade_bm.png" height="7" align="left"><img src="' + this.a_tpl.imgpath + 'pixel.gif"></td><td><img src="' + this.a_tpl.imgpath + 'shade_br.png"></td></tr><tbody></table>'; + + if (this.e_iframe) { + this.e_iframe.style.left = n_left + 'px'; + this.e_iframe.style.top = n_top + 'px'; + this.e_iframe.style.width = (n_width + 6) + 'px'; + this.e_iframe.style.height = (n_height + 6) +'px'; + } + return true; +} + +function f_getPosition (e_elemRef, s_coord) { + var n_pos = 0, n_offset, + e_elem = e_elemRef; + + while (e_elem) { + n_offset = e_elem["offset" + s_coord]; + n_pos += n_offset; + e_elem = e_elem.offsetParent; + } + // margin correction in some browsers + if (b_ieMac) + n_pos += parseInt(document.body[s_coord.toLowerCase() + 'Margin']); + else if (b_safari) + n_pos -= n_offset; + + e_elem = e_elemRef; + while (e_elem != document.body) { + n_offset = e_elem["scroll" + s_coord]; + if (n_offset && e_elem.style.overflow == 'scroll') + n_pos -= n_offset; + e_elem = e_elem.parentNode; + } + return n_pos; +} + +function f_tcalRelDate (d_date, d_diff, s_units) { + var s_units = (s_units == 'y' ? 'FullYear' : 'Month'); + var d_result = new Date(d_date); + d_result['set' + s_units](d_date['get' + s_units]() + d_diff); + if (d_result.getDate() != d_date.getDate()) + d_result.setDate(0); + return ' onclick="A_TCALS[\'' + this.s_id + '\'].f_update(' + d_result.valueOf() + ')"'; +} + +function f_tcalHideAll () { + for (var i = 0; i < window.A_TCALSIDX.length; i++) + window.A_TCALSIDX[i].f_hide(); +} + +function f_tcalResetTime (d_date) { + d_date.setHours(0); + d_date.setMinutes(0); + d_date.setSeconds(0); + d_date.setMilliseconds(0); + return d_date; +} + +f_getElement = document.all ? + function (s_id) { return document.all[s_id] } : + function (s_id) { return document.getElementById(s_id) }; + +if (document.addEventListener) + window.addEventListener('scroll', f_tcalHideAll, false); +if (window.attachEvent) + window.attachEvent('onscroll', f_tcalHideAll); + +// global variables +var s_userAgent = navigator.userAgent.toLowerCase(), + re_webkit = /WebKit\/(\d+)/i; +var b_mac = s_userAgent.indexOf('mac') != -1, + b_ie5 = s_userAgent.indexOf('msie 5') != -1, + b_ie6 = s_userAgent.indexOf('msie 6') != -1 && s_userAgent.indexOf('opera') == -1; +var b_ieFix = b_ie5 || b_ie6, + b_ieMac = b_mac && b_ie5, + b_safari = b_mac && re_webkit.exec(s_userAgent) && Number(RegExp.$1) < 500; Added: trunk/users/css/calendar.css =================================================================== --- trunk/users/css/calendar.css (rev 0) +++ trunk/users/css/calendar.css 2009-11-08 18:49:30 UTC (rev 764) @@ -0,0 +1,95 @@ +/* calendar icon */ +img.tcalIcon { + cursor: pointer; + margin-left: 1px; + vertical-align: middle; +} +/* calendar container element */ +div#tcal { + position: absolute; + visibility: hidden; + z-index: 100; + width: 158px; + padding: 2px 0 0 0; +} +/* all tables in calendar */ +div#tcal table { + width: 100%; + border: 1px solid silver; + border-collapse: collapse; + background-color: white; +} +/* navigation table */ +div#tcal table.ctrl { + border-bottom: 0; +} +/* navigation buttons */ +div#tcal table.ctrl td { + width: 15px; + height: 20px; +} +/* month year header */ +div#tcal table.ctrl th { + background-color: white; + color: black; + border: 0; +} +/* week days header */ +div#tcal th { + border: 1px solid silver; + border-collapse: collapse; + text-align: center; + padding: 3px 0; + font-family: tahoma, verdana, arial; + font-size: 10px; + background-color: gray; + color: white; +} +/* date cells */ +div#tcal td { + border: 0; + border-collapse: collapse; + text-align: center; + padding: 2px 0; + font-family: tahoma, verdana, arial; + font-size: 11px; + width: 22px; + cursor: pointer; +} +/* date highlight + in case of conflicting settings order here determines the priority from least to most important */ +div#tcal td.othermonth { + color: silver; +} +div#tcal td.weekend { + background-color: #ACD6F5; +} +div#tcal td.today { + border: 1px solid red; +} +div#tcal td.selected { + background-color: #FFB3BE; +} +/* iframe element used to suppress windowed controls in IE5/6 */ +iframe#tcalIF { + position: absolute; + visibility: hidden; + z-index: 98; + border: 0; +} +/* transparent shadow */ +div#tcalShade { + position: absolute; + visibility: hidden; + z-index: 99; +} +div#tcalShade table { + border: 0; + border-collapse: collapse; + width: 100%; +} +div#tcalShade table td { + border: 0; + border-collapse: collapse; + padding: 0; +} Added: trunk/users/css/default.css =================================================================== --- trunk/users/css/default.css (rev 0) +++ trunk/users/css/default.css 2009-11-08 18:49:30 UTC (rev 764) @@ -0,0 +1,317 @@ +body { + background: #ffffff; + color: #000000; + font-family: "BitStream Vera Sans", Verdana, Arial, Helvetica, sans-serif; + font-size: 11px; + font-weight: normal; + text-align: center; +} + +a { + text-decoration: none; + color: #888888; +} + +a:hover { + text-decoration: underline; + color: #888888; +} + +a:visited, a:active { + color: #888888; +} + +table { + /* border-spacing: 0; */ + /* padding: 0; */ + border-collapse: collapse; /* for IE */ +} + +.button { + border: 1px solid #aaaaaa; + color: #777777; + background: #dddddd; + padding: 3px 3px 3px 3px; + font-size: 11px; +} + +.button:hover { + background: #BCFF36; + color: #888888; +} + +.flat { + border: 1px solid #888888; +} + +ul.flash-info { + border:2px solid #AFE1A6; /* medium green */ + padding:1em; + max-width:730px; + margin-left:auto; + margin-right:auto; + list-style:none; +} + +ul.flash-error { + border:2px solid #FF6347; /* tomato */ + padding:1em; + max-width:730px; + margin-left:auto; + margin-right:auto; + list-style:none; +} + +.error_msg { + color: #d01313; +} + +.standout { + color: maroon; + padding: 3px 3px 3px 3px; + text-align: center; +} + +#login_header { + width: 750px; + margin: 0 auto; + padding-bottom: 10px; + text-align: left; +} + +#login { + width: 750px; + margin: 0 auto; +} + +#login_table { + border-left: 8px solid gray; + border-right: 8px solid gray; + background: #eeeeee; + width: 350px; + margin: 0 auto; + border-collapse: separate; + border-spacing: 10px; +} + +#login_table h4 { + font-size: 13px; +} + +#menu, #tabbar { + width: 750px; + margin: 0 auto; + padding-top: 10px; + white-space: nowrap; +} + +#menu ul, #tabbar ul { + padding: 0; + margin: 0; + margin-left:auto; + margin-right:auto; + list-style: none; +} + +#menu li, #tabbar li { + float: left; + background: #efefef; + margin-right: 3px; + border-top: 4px solid #aaaaaa; +} + +#menu li:hover, #menu li.sfhover, #tabbar li:hover, #tabbar li.sfhover { + background: #BFFF00; +} + +#menu li ul, #tabbar li ul { + position: absolute; + width: auto; + left: -999em; + background: #FFFFFF; + border:2px solid white; + border-top:none; +} +#menu li:hover ul, #menu li.sfhover ul, #tabbar li:hover ul, #tabbar li.sfhover ul { + left: auto; +} + + +#menu li ul li, #tabbar li ul li { + float: none; + margin-right: 0px; + border-top:2px solid white;; + text-align:left; +} + + +#menu a, #tabbar a { + display: block; + width: auto; + padding: 20px 5px 5px 5px; + color: #888888; +} + +#menu a:hover, #tabbar a:hover { + color: #888888; +} + + + +#menu li ul li a, #tabbar li ul li a { + padding: 5px 5px 5px 5px; +} + + + +#main_menu, #edit_form { + width: 750px; + margin: 0 auto; +} + +#edit_form table { + margin: 0 auto; + padding-top: 10px; + text-align: left; + width: 500px; + border: 1px solid #efefef; +} + +#edit_form h3 { + text-align: center; + font-size: 12px; + margin: 0; + background: #AFE1A6; /*#b4004a;*/ + border: 1px solid #bbb; + line-height: 25px; + color: #555555; +} + +.hlp_center { + text-align: center; +} + +.help_text { + background: #efefef; + border-left: 1px solid #bbbbbb; + border-right: 1px solid #bbbbbb; + text-align: center; + padding-top: 5px; + padding-bottom: 5px; +} + +#main_menu table { + margin: 0 auto; + text-align: left; + padding-top: 20px; + padding-bottom: 20px; +} + +#main_menu table td { + padding-left: 30px; + padding-bottom: 5px; +} + +#main_menu a { + color: #888888; + padding-left: 8px; +} + +#main_menu a:hover { + color: #40B33C; /*#CD6A6A;*/ + text-decoration: none; + padding-left: 4px; + border-bottom: 1px solid #40B33C; + border-left: 4px solid #40B33C; +} + +#overview, #admin_domains, #admin_virtual { + width: 750px; + margin: 0 auto; + background: #AFE1A6; /*#9ACD32;*/ + border: 1px solid #bbb; +} + +#overview h4, #overview P, #overview FORM, #admin_virtual h4, #admin_virtual P, #admin_virtual FORM { + display: inline; + padding-right: 10px; + line-height: 30px; +} + +#alias_domain_table, #alias_table, #mailbox_table, #overview_table, #log_table, #admin_table { + width: 750px; + margin: 0px auto; + border: 1px solid #efefef; +} + +#alias_domain_table .header, #alias_table .header, #mailbox_table .header, #overview_table .header, #log_table .header, #admin_table .header { + line-height: 20px; + background: #efefef; + color: black; +} + +#alias_domain_table .hilightoff, #alias_table .hilightoff, #mailbox_table .hilightoff, #overview_table .hilightoff, #log_table .hilightoff, #admin_table .hilighoff { + background: white; +} + +#alias_domain_table .hilighton, #alias_table .hilighton, #mailbox_table .hilighton, #overview_table .hilighton, #log_table .hilighton, #admin_table .hilighton { + background: #D9FF43; /*#D6FF85;*/ /*#ffdddd;*/ +} + +#alias_domain_table tr:hover, #alias_table tr:hover, #mailbox_table tr:hover, #overview_table tr:hover, #log_table tr:hover, #admin_table tr:hover { + background: #D9FF43; /*#D6FF85;*/ /*#ffdddd;*/ +} + + +#alias_domain_table h3, #alias_table h3, #mailbox_table h3, #overview_table h3, #log_table h3, #admin_table h3 { + background: silver; + text-align: left; + font-size: 12px; + font-weight: bold; + padding-left: 20px; + line-height: 25px; + margin: 0; +} + +#alias_domain_table td, #alias_table td, #mailbox_table td, #overview_table td, #log_table td, #admin_table td { +text-align : left; +} + +#footer { + width: 750px; + margin: 20px auto; + border-top: 1px solid #bbbbbb; + background: #efefef; + color: #999999; + line-height: 20px; + text-align: left; + padding-left: 15px; + font-size: 9px; +} + +#footer a { + text-decoration: none; + color: #999999; +} + +#footer a:hover { + text-decoration: underline; + color: #777777; +} + +div.setup { + width:700px; + margin-left:auto; + margin-right:auto; + text-align: left; +} + +div.setup li { + padding-bottom:1em; +} + +div.nav_bar { + text-align: left; + width: 750px; + margin: 0 auto; +} Modified: trunk/users/vacation.php =================================================================== --- trunk/users/vacation.php 2009-11-07 19:21:57 UTC (rev 763) +++ trunk/users/vacation.php 2009-11-08 18:49:30 UTC (rev 764) @@ -73,6 +73,8 @@ if (isset ($_POST['fBody'])) $fBody = $_POST['fBody']; if (isset ($_POST['fAway'])) $fAway = escape_string ($_POST['fAway']); if (isset ($_POST['fBack'])) $fBack = escape_string ($_POST['fBack']); + if (isset ($_POST['fActiveFrom'])) $tActiveFrom = date ("Y-m-d 00:00:00", strtotime ($_POST['fActiveFrom'])); + if (isset ($_POST['fActiveUntil'])) $tActiveUntil = date ("Y-m-d 23:59:59", strtotime ($_POST['fActiveUntil'])); //set a default, reset fields for coming back selection if ($tSubject == '') { $tSubject = html_entity_decode($PALANG['pUsersVacation_subject_text'], ENT_QUOTES, 'UTF-8'); } @@ -83,7 +85,7 @@ // the user is going away - set the goto alias and vacation table as necessary. if (!empty ($fAway)) { - if(!$vh->set_away($fSubject, $fBody)) { + if(!$vh->set_away($fSubject, $fBody, $tActiveFrom, $tActiveUntil)) { $error = 1; $tMessage = $PALANG['pUsersVacation_result_error']; } @@ -104,6 +106,8 @@ $smarty->assign ('tSubject', htmlentities ($tSubject, ENT_QUOTES, 'UTF-8')); $smarty->assign ('tBody', htmlentities ($tBody, ENT_QUOTES, 'UTF-8')); $smarty->assign ('tMessage', $tMessage); +$smarty->assign ('tActiveFrom', date ("d.m.Y", strtotime ($fActiveFrom))); +$smarty->assign ('tActiveUntil', date ("d.m.Y", strtotime ($fActiveUntil))); $smarty->assign ('smarty_template', 'users_vacation'); $smarty->display ('index.tpl'); /* 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: <Seb...@us...> - 2009-11-08 19:02:30
|
Revision: 766 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=766&view=rev Author: Sebastian2009 Date: 2009-11-08 19:02:22 +0000 (Sun, 08 Nov 2009) Log Message: ----------- - small bugfix. Display date correctly Modified Paths: -------------- trunk/templates/users_vacation.tpl trunk/users/vacation.php Modified: trunk/templates/users_vacation.tpl =================================================================== --- trunk/templates/users_vacation.tpl 2009-11-08 18:51:53 UTC (rev 765) +++ trunk/templates/users_vacation.tpl 2009-11-08 19:02:22 UTC (rev 766) @@ -15,7 +15,7 @@ </tr> <tr> <td>{$PALANG.pUsersVacation_activefrom}:</td> - <td><input name="fActiveFrom" value="{$fActiveFrom}" readonly="readonly" style="background:#eee;"/> + <td><input name="fActiveFrom" value="{$tActiveFrom}" readonly="readonly" style="background:#eee;"/> {literal} <script language="JavaScript"> new tcal ({ @@ -29,7 +29,7 @@ </tr> <tr> <td>{$PALANG.pUsersVacation_activeuntil}:</td> - <td><input name="fActiveUntil" value="{$fActiveUntil}" readonly="readonly" style="background:#eee;"/> + <td><input name="fActiveUntil" value="{$tActiveUntil}" readonly="readonly" style="background:#eee;"/> {literal} <script language="JavaScript"> new tcal ({ Modified: trunk/users/vacation.php =================================================================== --- trunk/users/vacation.php 2009-11-08 18:51:53 UTC (rev 765) +++ trunk/users/vacation.php 2009-11-08 19:02:22 UTC (rev 766) @@ -48,11 +48,15 @@ { $tSubject = ''; $tBody = ''; - + $tActiveFrom = ''; + $tActiveUntil = ''; + $details = $vh->get_details(); if($details != false) { $tSubject = $details['subject']; $tBody = $details['body']; + $fActiveFrom = $details['activeFrom']; + $fActiveUntil = $details['activeUntil']; } if($vh->check_vacation()) { $tMessage = $PALANG['pUsersVacation_welcome_text']; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <seb...@us...> - 2009-11-10 09:09:44
|
Revision: 768 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=768&view=rev Author: sebastian2009 Date: 2009-11-10 09:09:36 +0000 (Tue, 10 Nov 2009) Log Message: ----------- - small fix to smarty.inc.php. Really use our compile and templates directory - Fix in menu.tpl to honor "show fetchmail tab" Modified Paths: -------------- trunk/smarty.inc.php trunk/templates/menu.tpl Modified: trunk/smarty.inc.php =================================================================== --- trunk/smarty.inc.php 2009-11-09 14:42:14 UTC (rev 767) +++ trunk/smarty.inc.php 2009-11-10 09:09:36 UTC (rev 768) @@ -5,9 +5,9 @@ //$smarty->debugging = true; -$smarty->template_dir = $incpath.'/'.$smarty->template_dir; -$smarty->compile_dir = $incpath.'/'.$smarty->compile_dir; -$smarty->config_dir = $incpath.'/'.$smarty->config_dir; +$smarty->template_dir = $incpath.'/templates'; +$smarty->compile_dir = $incpath.'/templates_c'; +$smarty->config_dir = $incpath.'/'.$smarty->config_dir; $CONF['theme_css'] = $CONF['postfix_admin_url'].'/'.htmlentities($CONF['theme_css']); $CONF['theme_logo'] = $CONF['postfix_admin_url'].'/'.htmlentities($CONF['theme_logo']); @@ -32,8 +32,7 @@ } if (file_exists ($CONF ['postfix_admin_path'].'/templates/'.$motd_file)) $smarty->assign ('motd_file', $motd_file); -?> -<?php + function select_options ($aValues, $aSelected) { $ret_val = ''; @@ -53,4 +52,4 @@ else {$ret_val = $aSize; } return $ret_val; } -php?> \ No newline at end of file +?> Modified: trunk/templates/menu.tpl =================================================================== --- trunk/templates/menu.tpl 2009-11-09 14:42:14 UTC (rev 767) +++ trunk/templates/menu.tpl 2009-11-10 09:09:36 UTC (rev 768) @@ -46,6 +46,7 @@ </li> {/strip} {* fetchmail *} +{if $CONF.fetchmail} {strip} <li><a target="_top" href="{#url_fetchmail#}">{$PALANG.pMenu_fetchmail}</a> <ul> @@ -54,6 +55,7 @@ </ul> </li> {/strip} +{/if} {* sendmail *} {strip} <li><a target="_top" href="{#url_sendmail#}">{$PALANG.pMenu_sendmail}</a> @@ -105,4 +107,4 @@ window.attachEvent("onload", sfHover); // ]]> </script> -{/literal} \ No newline at end of file +{/literal} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <seb...@us...> - 2009-11-22 13:50:05
|
Revision: 775 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=775&view=rev Author: sebastian2009 Date: 2009-11-22 13:49:58 +0000 (Sun, 22 Nov 2009) Log Message: ----------- - fixed minor table error. - default text alignment is now "left" - fixed variable assignment in templates/menu.tpl Modified Paths: -------------- trunk/css/default.css trunk/templates/list-virtual_mailbox.tpl trunk/templates/menu.tpl Modified: trunk/css/default.css =================================================================== --- trunk/css/default.css 2009-11-19 23:33:57 UTC (rev 774) +++ trunk/css/default.css 2009-11-22 13:49:58 UTC (rev 775) @@ -4,7 +4,7 @@ font-family: "BitStream Vera Sans", Verdana, Arial, Helvetica, sans-serif; font-size: 11px; font-weight: normal; - text-align: center; + text-align: left; } a { @@ -25,6 +25,7 @@ /* border-spacing: 0; */ /* padding: 0; */ border-collapse: collapse; /* for IE */ + text-align: left; } .button { Modified: trunk/templates/list-virtual_mailbox.tpl =================================================================== --- trunk/templates/list-virtual_mailbox.tpl 2009-11-19 23:33:57 UTC (rev 774) +++ trunk/templates/list-virtual_mailbox.tpl 2009-11-22 13:49:58 UTC (rev 775) @@ -27,7 +27,7 @@ {/if} {$item2}<br/> {/foreach} - <td> + </td> {/if} <td>{$item.name}</td> {if $CONF.quota===YES} @@ -37,10 +37,10 @@ {elseif $item.quota<0} {$PALANG.pOverview_disabled} {else} - {if $boolconf_used_quotas} - {$divide_quota.current[$i]} / {$divide_quota.quota[$i]} + {if $boolconf_used_quotas} + {$divide_quota.current[$i]} / {$divide_quota.quota[$i]} + {/if} {/if} - {/if} </td> {/if} <td>{$item.modified}</td> Modified: trunk/templates/menu.tpl =================================================================== --- trunk/templates/menu.tpl 2009-11-19 23:33:57 UTC (rev 774) +++ trunk/templates/menu.tpl 2009-11-22 13:49:58 UTC (rev 775) @@ -3,7 +3,7 @@ {if $smarty.get.domain} {*** zuweisung muss eleganter gehen ***} {assign var="url_domain" value=$smarty.get.domain} - {assign var="url_domain" value=?domain=$url_domain} + {assign var="url_domain" value="?domain=$url_domain"} {/if} {/strip} <div id="menu"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2009-11-30 12:48:34
|
Revision: 778 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=778&view=rev Author: christian_boltz Date: 2009-11-30 12:48:25 +0000 (Mon, 30 Nov 2009) Log Message: ----------- after an hour of debugging with Han on #postfixadmin... functions.inc.php: - added error message if the check_owner query returns more than one result. This can happen with old databases (pre-2.3) where the domain_admins table contains "ALL" _and_ a domain for a superadmin - which results in the superadmin not able to edit mailboxes etc. for this domain. (Error message not translatable - this is a corner case.) list-virtual.php: - add "invalid parameter" error message before redirecting to list-domain if the user doesn't have permissions for a domain Modified Paths: -------------- trunk/functions.inc.php trunk/list-virtual.php Modified: trunk/functions.inc.php =================================================================== --- trunk/functions.inc.php 2009-11-28 22:12:54 UTC (rev 777) +++ trunk/functions.inc.php 2009-11-30 12:48:25 UTC (rev 778) @@ -734,6 +734,10 @@ $result = db_query ("SELECT 1 FROM $table_domain_admins WHERE username='$username' AND (domain='$domain' OR domain='ALL') AND active='1'"); if ($result['rows'] != 1) { + if ($result['rows'] > 1) { # "ALL" + specific domain permissions. 2.3 doesn't create such entries, but they are available as leftover from older versions + flash_error("Permission check returned more than one result. Please go to 'edit admin' for your username and press the save " + . "button once to fix the database. If this doesn't help, open a bugreport."); + } return false; } else Modified: trunk/list-virtual.php =================================================================== --- trunk/list-virtual.php 2009-11-28 22:12:54 UTC (rev 777) +++ trunk/list-virtual.php 2009-11-30 12:48:25 UTC (rev 778) @@ -70,6 +70,7 @@ if (count($list_domains) == 0) { # die("no domains"); + flash_error( $PALANG['invalid_parameter'] ); header("Location: list-domain.php"); # no domains (for this admin at least) - redirect to domain list exit; } @@ -78,6 +79,7 @@ if (!check_owner(authentication_get_username(), $fDomain)) { # die($PALANG['invalid_parameter']); + flash_error( $PALANG['invalid_parameter'] ); header("Location: list-domain.php"); # domain not owned by this admin exit(0); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Seb...@us...> - 2009-12-24 14:58:11
|
Revision: 791 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=791&view=rev Author: Sebastian2009 Date: 2009-12-24 14:58:01 +0000 (Thu, 24 Dec 2009) Log Message: ----------- - fix some display errors after rev. 788, found and patch supplied by Jan-Kruis, thx. Modified Paths: -------------- trunk/broadcast-message.php trunk/create-admin.php trunk/create-alias-domain.php trunk/create-alias.php trunk/create-domain.php trunk/create-mailbox.php trunk/delete.php trunk/edit-active-admin.php trunk/edit-active-domain.php trunk/edit-active.php trunk/edit-admin.php trunk/edit-alias.php trunk/edit-domain.php trunk/edit-mailbox.php trunk/edit-vacation.php trunk/fetchmail.php trunk/languages/nl.lang trunk/list-admin.php trunk/list-domain.php trunk/list-virtual.php trunk/login.php trunk/password.php trunk/search.php trunk/sendmail.php trunk/templates/admin_create-admin.tpl trunk/templates/admin_edit-admin.tpl trunk/templates/footer.tpl trunk/users/edit-alias.php trunk/users/login.php trunk/users/password.php trunk/users/vacation.php trunk/viewlog.php Modified: trunk/broadcast-message.php =================================================================== --- trunk/broadcast-message.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/broadcast-message.php 2009-12-24 14:58:01 UTC (rev 791) @@ -15,7 +15,7 @@ * File: broadcast-message.php * Used to send a message to _ALL_ users with mailboxes on this server. * - * Template File: broadcast-message.php + * Template File: broadcast-message.tpl * * Template Variables: -none- * @@ -94,7 +94,7 @@ $smarty->assign ('smarty_template', 'broadcast-message'); $smarty->display ('index.tpl'); -// include ("templates/broadcast-message.php"); +// include ("templates/broadcast-message.tpl"); } /* vim: set expandtab softtabstop=3 tabstop=3 shiftwidth=3: */ Modified: trunk/create-admin.php =================================================================== --- trunk/create-admin.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/create-admin.php 2009-12-24 14:58:01 UTC (rev 791) @@ -14,7 +14,7 @@ * * File: create-admin.php * Used to create new administrators. - * Template File: admin_create-admin.php + * Template File: admin_create-admin.tpl * * * Template Variables: @@ -59,10 +59,10 @@ } $smarty->assign ('tUsername', $tUsername); -$smarty->assign ('pAdminCreate_admin_username_text', $pAdminCreate_admin_username_text); -$smarty->assign ('pAdminCreate_admin_password_text', $pAdminCreate_admin_password_text); -$smarty->assign ('tMessage', $tMessage); -$smarty->assign ('select_options', select_options ($list_domains, $tDomains)); +$smarty->assign ('pAdminCreate_admin_username_text', $pAdminCreate_admin_username_text, false); +$smarty->assign ('pAdminCreate_admin_password_text', $pAdminCreate_admin_password_text, false); +$smarty->assign ('tMessage', $tMessage, false); +$smarty->assign ('select_options', select_options ($list_domains, $tDomains), false); $smarty->assign ('smarty_template', 'admin_create-admin'); $smarty->display ('index.tpl'); Modified: trunk/create-alias-domain.php =================================================================== --- trunk/create-alias-domain.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/create-alias-domain.php 2009-12-24 14:58:01 UTC (rev 791) @@ -11,7 +11,7 @@ * http://www.postfixadmin.com or http://postfixadmin.sf.net * * File: create-alias-domain.php - * Template File: create-alias-domain.php + * Template File: create-alias-domain.tpl * Responsible for allowing for the creation of alias domains. * * @version $Id$ @@ -136,11 +136,11 @@ $tMessage .= "<br />($fAliasDomain -> $fTargetDomain)<br />\n"; } $smarty->assign ('alias_domains', (count($alias_domains) > 0)); -$smarty->assign ('select_options_alias', select_options ($alias_domains, array ($fAliasDomain))); -$smarty->assign ('select_options_target', select_options ($target_domains, array ($fTargetDomain))); +$smarty->assign ('select_options_alias', select_options ($alias_domains, array ($fAliasDomain)), false); +$smarty->assign ('select_options_target', select_options ($target_domains, array ($fTargetDomain)), false); if ($fActive) $smarty->assign ('fActive', ' checked="checked"'); if ($error == 1) $tMessage = '<span class="error_msg">'.$tMessage.'</span>'; -$smarty->assign ('tMessage', $tMessage); +$smarty->assign ('tMessage', $tMessage, false); $smarty->assign ('smarty_template', 'create-alias-domain'); $smarty->display ('index.tpl'); /* vim: set expandtab softtabstop=3 tabstop=3 shiftwidth=3: */ Modified: trunk/create-alias.php =================================================================== --- trunk/create-alias.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/create-alias.php 2009-12-24 14:58:01 UTC (rev 791) @@ -11,7 +11,7 @@ * http://www.postfixadmin.com or http://postfixadmin.sf.net * * File: create-alias.php - * Template File: create-alias.php + * Template File: create-alias.tpl * Responsible for allowing for the creation of mail aliases. * * @version $Id$ @@ -124,7 +124,7 @@ $tAddress = escape_string ($_POST['fAddress']); $tGoto = $fGoto; $tDomain = $fDomain; - $pCreate_alias_address_text = $PALANG['pCreate_alias_address_text_error2']; + $pCreate_alias_address_text = $PALANG['pCreate_alias_address_text_error2']; } if ($fActive == "on") { @@ -154,11 +154,11 @@ } $smarty->assign ('tAddress', $tAddress); -$smarty->assign ('select_options', select_options ($list_domains, array ($tDomain))); -$smarty->assign ('pCreate_alias_address_text', $pCreate_alias_address_text); -$smarty->assign ('tGoto', $tGoto); +$smarty->assign ('select_options', select_options ($list_domains, array ($tDomain)), false); +$smarty->assign ('pCreate_alias_address_text', $pCreate_alias_address_text, false); +$smarty->assign ('tGoto', $tGoto, false); $smarty->assign ('pCreate_alias_goto_text', $pCreate_alias_goto_text); -$smarty->assign ('tMessage', $tMessage); +$smarty->assign ('tMessage', $tMessage, false); $smarty->assign ('smarty_template', 'create-alias'); $smarty->display ('index.tpl'); Modified: trunk/create-domain.php =================================================================== --- trunk/create-domain.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/create-domain.php 2009-12-24 14:58:01 UTC (rev 791) @@ -14,7 +14,7 @@ * * File: create-domain.php * Allows administrators to create new domains. - * Template File: admin_create-domain.php + * Template File: admin_create-domain.tpl * * Template Variables: * @@ -143,15 +143,15 @@ } $smarty->assign ('tDomain', $tDomain); -$smarty->assign ('pAdminCreate_domain_domain_text', $pAdminCreate_domain_domain_text); -$smarty->assign ('tDescription', $tDescription); +$smarty->assign ('pAdminCreate_domain_domain_text', $pAdminCreate_domain_domain_text, false); +$smarty->assign ('tDescription', $tDescription, false); $smarty->assign ('tAliases', $tAliases); $smarty->assign ('tMailboxes', $tMailboxes); -$smarty->assign ('tMaxquota', $tMaxquota); -$smarty->assign ('select_options', select_options ($CONF ['transport_options'], array ($tTransport))); +$smarty->assign ('tMaxquota', $tMaxquota,false); +$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"' : ''); -$smarty->assign ('tMessage', $tMessage); +$smarty->assign ('tMessage', $tMessage, false); $smarty->assign ('smarty_template', 'admin_create-domain'); $smarty->display ('index.tpl'); Modified: trunk/create-mailbox.php =================================================================== --- trunk/create-mailbox.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/create-mailbox.php 2009-12-24 14:58:01 UTC (rev 791) @@ -264,13 +264,13 @@ } $smarty->assign ('tUsername', $tUsername); -$smarty->assign ('select_options', select_options ($list_domains, array ($tDomain))); -$smarty->assign ('pCreate_mailbox_username_text', $pCreate_mailbox_username_text); -$smarty->assign ('pCreate_mailbox_password_text', $pCreate_mailbox_password_text); -$smarty->assign ('tName', $tName); +$smarty->assign ('select_options', select_options ($list_domains, array ($tDomain)), false); +$smarty->assign ('pCreate_mailbox_username_text', $pCreate_mailbox_username_text, false); +$smarty->assign ('pCreate_mailbox_password_text', $pCreate_mailbox_password_text, false); +$smarty->assign ('tName', $tName, false); $smarty->assign ('tQuota', $tQuota); -$smarty->assign ('pCreate_mailbox_quota_text', $pCreate_mailbox_quota_text); -$smarty->assign ('tMessage', $tMessage); +$smarty->assign ('pCreate_mailbox_quota_text', $pCreate_mailbox_quota_text, false); +$smarty->assign ('tMessage', $tMessage, false); $smarty->assign ('smarty_template', 'create-mailbox'); $smarty->display ('index.tpl'); Modified: trunk/delete.php =================================================================== --- trunk/delete.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/delete.php 2009-12-24 14:58:01 UTC (rev 791) @@ -17,7 +17,7 @@ * Note: if a domain is deleted, all mailboxes and aliases belonging * to the domain are also removed. * - * Template File: message.php + * Template File: message.tpl * * Template Variables: * Modified: trunk/edit-active-admin.php =================================================================== --- trunk/edit-active-admin.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/edit-active-admin.php 2009-12-24 14:58:01 UTC (rev 791) @@ -15,7 +15,7 @@ * File: edit-active-admin.php * Edit an active administrator. This is used as a 'toggle' page from list-admin. * - * Template File: message.php + * Template File: message.tpl * * Template Variables: * Modified: trunk/edit-active-domain.php =================================================================== --- trunk/edit-active-domain.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/edit-active-domain.php 2009-12-24 14:58:01 UTC (rev 791) @@ -14,7 +14,7 @@ * * File: edit-active-domain.php * Responsible for toggling the status of a domain - * Template File: message.php + * Template File: message.tpl * * Template Variables: * Modified: trunk/edit-active.php =================================================================== --- trunk/edit-active.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/edit-active.php 2009-12-24 14:58:01 UTC (rev 791) @@ -15,7 +15,7 @@ * File: edit-active.php * Responsible for toggling the active status of a mailbox. * - * Template File: message.php + * Template File: message.tp * * Template Variables: * Modified: trunk/edit-admin.php =================================================================== --- trunk/edit-admin.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/edit-admin.php 2009-12-24 14:58:01 UTC (rev 791) @@ -15,7 +15,7 @@ * File: edit-admin.php * Edits a normal administrator's details. * - * Template File: admin_edit-admin.php + * Template File: admin_edit-admin.tpl * * Template Variables: * @@ -151,11 +151,11 @@ } $smarty->assign ('username', $username); -$smarty->assign ('pAdminEdit_admin_password_text', $pAdminEdit_admin_password_text); +$smarty->assign ('pAdminEdit_admin_password_text', $pAdminEdit_admin_password_text, false); $smarty->assign ('tActive_checked', $tActive_checked); $smarty->assign ('tSadmin_checked', $tSadmin_checked); -$smarty->assign ('select_options', select_options ($tAllDomains, $tDomains)); -$smarty->assign ('tMessage', $tMessage); +$smarty->assign ('select_options', select_options ($tAllDomains, $tDomains), false); +$smarty->assign ('tMessage', $tMessage, false); $smarty->assign ('smarty_template', 'admin_edit-admin'); $smarty->display ('index.tpl'); Modified: trunk/edit-alias.php =================================================================== --- trunk/edit-alias.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/edit-alias.php 2009-12-24 14:58:01 UTC (rev 791) @@ -15,7 +15,7 @@ * File: edit-alias.php * Used to update an alias. * - * Template File: edit-alias.php + * Template File: edit-alias.tpl * * Template Variables: * @@ -173,9 +173,9 @@ // TOCHECK $array = $alias_list; -$smarty->assign ('fAddress', $fAddress); -$smarty->assign ('array', $array); -$smarty->assign ('tMessage', $tMessage); +$smarty->assign ('fAddress', $fAddress, false); +$smarty->assign ('array', $array, false); +$smarty->assign ('tMessage', $tMessage, false); $smarty->assign ('smarty_template', 'edit-alias'); $smarty->display ('index.tpl'); Modified: trunk/edit-domain.php =================================================================== --- trunk/edit-domain.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/edit-domain.php 2009-12-24 14:58:01 UTC (rev 791) @@ -14,7 +14,7 @@ * * File: edit-domain.php * Updates the properties of a domain. - * Template File: admin_edit-domain.php + * Template File: admin_edit-domain.tpl * * Template Variables: * @@ -114,14 +114,14 @@ } $smarty->assign ('domain', $domain); -$smarty->assign ('tDescription', htmlspecialchars($tDescription, ENT_QUOTES)); +$smarty->assign ('tDescription', htmlspecialchars($tDescription, ENT_QUOTES), false); $smarty->assign ('tAliases', $tAliases); $smarty->assign ('tMailboxes', $tMailboxes); $smarty->assign ('tMaxquota', $tMaxquota); -$smarty->assign ('select_options', select_options ($CONF ['transport_options'], array ($tTransport))); +$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"'); -$smarty->assign ('tMessage', $tMessage); +$smarty->assign ('tMessage', $tMessage,false); $smarty->assign ('smarty_template', 'admin_edit-domain'); $smarty->display ('index.tpl'); Modified: trunk/edit-mailbox.php =================================================================== --- trunk/edit-mailbox.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/edit-mailbox.php 2009-12-24 14:58:01 UTC (rev 791) @@ -14,7 +14,7 @@ * * File: edit-mailbox.php * Used to update an existing mailboxes settings. - * Template File: edit-mailbox.php + * Template File: edit-mailbox.tpl * * Template Variables: * @@ -176,16 +176,17 @@ } $smarty->assign ('fUsername', $fUsername); -$smarty->assign ('fPassword', $user_details ['password']); +$smarty->assign ('fPassword', $user_details ['password'], false); //$smarty->assign ('pEdit_mailbox_username_text', $pEdit_mailbox_username_text); -$smarty->assign ('pEdit_mailbox_password_text', $pEdit_mailbox_password_text); -$smarty->assign ('tName', htmlspecialchars ($tName,ENT_QUOTES)); -$smarty->assign ('pEdit_mailbox_name_text', $pEdit_mailbox_name_text); +$smarty->assign ('pEdit_mailbox_password_text', $pEdit_mailbox_password_text, false); +//$smarty->assign ('tName', htmlspecialchars ($tName,ENT_QUOTES)); +$smarty->assign ('tName', $tName, false); +$smarty->assign ('pEdit_mailbox_name_text', $pEdit_mailbox_name_text,false); $smarty->assign ('tMaxquota', $tMaxquota); $smarty->assign ('tQuota', $tQuota); $smarty->assign ('pEdit_mailbox_quota_text', $pEdit_mailbox_quota_text); if ($tActive) $smarty->assign ('tActive', ' checked="checked"'); -$smarty->assign ('tMessage', $tMessage); +$smarty->assign ('tMessage', $tMessage, false); $smarty->assign ('smarty_template', 'edit-mailbox'); $smarty->display ('index.tpl'); /* vim: set expandtab softtabstop=3 tabstop=3 shiftwidth=3: */ Modified: trunk/edit-vacation.php =================================================================== --- trunk/edit-vacation.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/edit-vacation.php 2009-12-24 14:58:01 UTC (rev 791) @@ -15,7 +15,7 @@ * File: edit-vacation.php * Responsible for allowing users to update their vacation status. * - * Template File: edit-vacation.php + * Template File: edit-vacation.tpl * * Template Variables: * @@ -209,9 +209,9 @@ $tActiveUntil = date ("Y-m-d"); $smarty->assign ('tUseremail', $tUseremail); -$smarty->assign ('tSubject', htmlentities(stripslashes($tSubject), ENT_QUOTES, 'UTF-8')); -$smarty->assign ('tBody', htmlentities(stripslashes($tBody), ENT_QUOTES , 'UTF-8')); -$smarty->assign ('tMessage', $tMessage); +$smarty->assign ('tSubject', htmlentities(stripslashes($tSubject), ENT_QUOTES, 'UTF-8'),false); +$smarty->assign ('tBody', htmlentities(stripslashes($tBody), ENT_QUOTES , 'UTF-8'),false); +$smarty->assign ('tMessage', $tMessage, false); $smarty->assign ('tActiveFrom', date ("d.m.Y", strtotime ($tActiveFrom))); $smarty->assign ('tActiveUntil', date ("d.m.Y", strtotime ($tActiveUntil))); $smarty->assign ('fCanceltarget', $fCanceltarget); Modified: trunk/fetchmail.php =================================================================== --- trunk/fetchmail.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/fetchmail.php 2009-12-24 14:58:01 UTC (rev 791) @@ -14,6 +14,7 @@ * * File: fetchmail.php * Responsible for setting up fetchmail + * template : fetchmail.tpl * * @version $Id$ * @license GNU GPL v2 or later. @@ -372,7 +373,7 @@ $smarty->assign ('edit', $edit); $smarty->assign ('new', $new); -$smarty->assign ('fetchmail_edit_row', fetchmail_edit_row($formvars)); +$smarty->assign ('fetchmail_edit_row', fetchmail_edit_row($formvars),false); $smarty->assign ('headers', $headers); $smarty->assign ('user_domains', $user_domains); $smarty->assign ('tFmail', $tFmail); Modified: trunk/languages/nl.lang =================================================================== --- trunk/languages/nl.lang 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/languages/nl.lang 2009-12-24 14:58:01 UTC (rev 791) @@ -41,7 +41,7 @@ $PALANG['pMain_overview'] = 'Laat uw aliassen en mailboxen zien. U kunt ze vanaf hier bewerken / verwijderen.'; $PALANG['pMain_create_alias'] = 'Maak een nieuwe alias aan voor uw domein.'; $PALANG['pMain_create_mailbox'] = 'Maak een nieuwe mailbox aan voor uw domein.'; -$PALANG['pMain_sendmail'] = 'Verstuur een e-mail naar \xE9\xE9n van de nieuwe mailboxen.'; +$PALANG['pMain_sendmail'] = 'Verstuur een e-mail naar een van de nieuwe mailboxen.'; $PALANG['pMain_password'] = 'Wijzig uw wachtwoord.'; $PALANG['pMain_viewlog'] = 'Laat de log files zien'; $PALANG['pMain_logout'] = 'Uitloggen'; @@ -115,7 +115,7 @@ $PALANG['pCreate_alias_goto_text_error'] = 'Waar de e-mail naar toe moet.<br /><span class="error_msg">De NAAR is niet geldig.</span>'; $PALANG['pCreate_alias_result_error'] = '<span class="error_msg">Mislukt om de alias toe te voegen.</span>'; $PALANG['pCreate_alias_result_success'] = 'De alias is toegevoegd.'; -$PALANG['pCreate_alias_catchall_text'] = 'Om een catch-all te gebruiken, dient u een "*" (asteric) in te vullen als alias.<br />Voor domein naar domein forwarding gebruik "*@domein.tld" als naar.'; +$PALANG['pCreate_alias_catchall_text'] = 'Om een catch-all te gebruiken, dient u een "*" (asteric) in te vullen als alias.<br/>Voor domein naar domein forwarding gebruik "*@domein.tld" als naar.'; $PALANG['pEdit_alias_welcome'] = 'Bewerk een alias voor uw domein.<br />Een alias per regel.'; $PALANG['pEdit_alias_address'] = 'Alias'; @@ -189,7 +189,7 @@ $PALANG['pViewlog_username'] = 'Beheerder'; $PALANG['pViewlog_domain'] = 'Domein'; $PALANG['pViewlog_action'] = 'Actie'; -$PALANG['pViewlog_data'] = 'Datum'; +$PALANG['pViewlog_data'] = 'Aanpassing'; $PALANG['pViewlog_action_create_mailbox'] = 'Mailbox toegevoegd'; $PALANG['pViewlog_action_delete_mailbox'] = 'Mailbox verwijdert'; $PALANG['pViewlog_action_edit_mailbox'] = 'Mailbox bewerkt'; Modified: trunk/list-admin.php =================================================================== --- trunk/list-admin.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/list-admin.php 2009-12-24 14:58:01 UTC (rev 791) @@ -14,7 +14,7 @@ * * File: list-admin.php * Lists all administrators - * Template File: list-admin.php + * Template File: list-admin.tpl * * Template Variables: -none- * @@ -40,7 +40,7 @@ } } $smarty->assign ('admin_properties', $admin_properties); -$smarty->assign ('tMessage', $tMessage); +$smarty->assign ('tMessage', $tMessage, false); $smarty->assign ('smarty_template', 'admin_list-admin'); $smarty->display ('index.tpl'); Modified: trunk/list-domain.php =================================================================== --- trunk/list-domain.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/list-domain.php 2009-12-24 14:58:01 UTC (rev 791) @@ -1,5 +1,4 @@ -<?php -/** +<?php /** * Postfix Admin * * LICENSE @@ -14,7 +13,7 @@ * * File: list-domain.php * List all domains as a quick overview. - * Template File: admin_list-domain.php + * Template File: admin_list-domain.tpl * * Template Variables: * Modified: trunk/list-virtual.php =================================================================== --- trunk/list-virtual.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/list-virtual.php 2009-12-24 14:58:01 UTC (rev 791) @@ -87,7 +87,7 @@ } // store fDomain in $_SESSION so after adding/editing aliases/mailboxes we can -// take the user back to the appropriate domain listing. (see templates/menu.php) +// take the user back to the appropriate domain listing. (see templates/menu.tpl) if($fDomain) { $_SESSION['list_virtual_sticky_domain'] = $fDomain; } @@ -431,9 +431,9 @@ // this is why we need a proper template layer. $fDomain = htmlentities($fDomain, ENT_QUOTES); -$smarty->assign ('select_options', select_options ($list_domains, array ($fDomain))); -$smarty->assign ('nav_bar_alias', array ('top' => $nav_bar_alias->display_top (), 'bottom' => $nav_bar_alias->display_bottom ())); -$smarty->assign ('nav_bar_mailbox', array ('top' => $nav_bar_mailbox->display_top (), 'bottom' => $nav_bar_mailbox->display_bottom ())); +$smarty->assign ('select_options', select_options ($list_domains, array ($fDomain)), false); +$smarty->assign ('nav_bar_alias', array ('top' => $nav_bar_alias->display_top (), 'bottom' => $nav_bar_alias->display_bottom ()), false); +$smarty->assign ('nav_bar_mailbox', array ('top' => $nav_bar_mailbox->display_top (), 'bottom' => $nav_bar_mailbox->display_bottom ()), false); $smarty->assign ('fDomain', $fDomain); Modified: trunk/login.php =================================================================== --- trunk/login.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/login.php 2009-12-24 14:58:01 UTC (rev 791) @@ -14,7 +14,7 @@ * * File: login.php * Authenticates a user, and populates their $_SESSION as appropriate. - * Template File: login.php + * Template File: login.tpl * * Template Variables: * @@ -97,7 +97,7 @@ } $smarty->assign ('tUsername', $tUsername); - $smarty->assign ('tMessage', $tMessage); + $smarty->assign ('tMessage', $tMessage, false); $smarty->assign ('smarty_template', 'login'); $smarty->display ('index.tpl'); Modified: trunk/password.php =================================================================== --- trunk/password.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/password.php 2009-12-24 14:58:01 UTC (rev 791) @@ -14,7 +14,7 @@ * * File: password.php * Allows admins to change their own password. - * Template File: password.php + * Template File: password.tpl * * Template Variables: * @@ -90,7 +90,7 @@ $smarty->assign ('pPassword_password_current_text', $pPassword_password_current_text); $smarty->assign ('pPassword_password_text', $pPassword_password_text); - $smarty->assign ('tMessage', $tMessage); + $smarty->assign ('tMessage', $tMessage,false); $smarty->display ('index.tpl'); } Modified: trunk/search.php =================================================================== --- trunk/search.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/search.php 2009-12-24 14:58:01 UTC (rev 791) @@ -14,7 +14,7 @@ * * File: search.php * Provides a method for searching for a user/mailbox - * Template File: search.php + * Template File: search.tpl * * Template Variables: * @@ -174,11 +174,11 @@ } $smarty->assign ('fSearch', $fSearch); -$smarty->assign ('select_options', select_options ($list_domains, array ($list_domains[0]))); -$smarty->assign ('tAlias', $tAlias); +$smarty->assign ('select_options', select_options ($list_domains, array ($list_domains[0])), false); +$smarty->assign ('tAlias', $tAlias, false); $smarty->assign ('check_alias_owner', $check_alias_owner); -$smarty->assign ('tMailbox', $tMailbox); +$smarty->assign ('tMailbox', $tMailbox, false); $smarty->assign ('divide_quota', $divide_quota); $smarty->assign ('smarty_template', 'search'); Modified: trunk/sendmail.php =================================================================== --- trunk/sendmail.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/sendmail.php 2009-12-24 14:58:01 UTC (rev 791) @@ -14,7 +14,7 @@ * * File: sendmail.php * Used to send an email to a user. - * Template File: sendmail.php + * Template File: sendmail.tpl * * Template Variables: * @@ -80,7 +80,7 @@ } } $smarty->assign ('SESSID_USERNAME', $SESSID_USERNAME); -$smarty->assign ('tMessage', $tMessage); +$smarty->assign ('tMessage', $tMessage, false); $smarty->assign ('smarty_template', 'sendmail'); $smarty->display ('index.tpl'); Modified: trunk/templates/admin_create-admin.tpl =================================================================== --- trunk/templates/admin_create-admin.tpl 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/templates/admin_create-admin.tpl 2009-12-24 14:58:01 UTC (rev 791) @@ -17,14 +17,14 @@ <tr> <td>{$PALANG.pAdminCreate_admin_password2}:</td> <td><input class="flat" type="password" name="fPassword2" /></td> - <td> </td> + </tr> <tr> <td>{$PALANG.pAdminCreate_admin_address}:</td> <td> <select name="fDomains[]" size="10" multiple="multiple">{$select_options}</select> </td> - <td> </td> + </tr> <tr> <td colspan="3" class="hlp_center"><input class="button" type="submit" name="submit" value="{$PALANG.pAdminCreate_admin_button}" /></td> Modified: trunk/templates/admin_edit-admin.tpl =================================================================== --- trunk/templates/admin_edit-admin.tpl 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/templates/admin_edit-admin.tpl 2009-12-24 14:58:01 UTC (rev 791) @@ -26,13 +26,13 @@ <tr> <td>{$PALANG.pAdminEdit_admin_super_admin}:</td> <td><input class="flat" type="checkbox" name="fSadmin"{$tSadmin_checked}/></td> - <td> </td> + <td> </td> </tr> <tr> - <td colspan="3" align="center"> - <select name="fDomains[]" size="10" multiple="multiple"> - {$select_options} - </select> + <td>{$PALANG.pAdminCreate_admin_address}:</td> + <td> + <select name="fDomains[]" size="10" multiple="multiple">{$select_options}</select> + <td> </td> </td> </tr> <tr> Modified: trunk/templates/footer.tpl =================================================================== --- trunk/templates/footer.tpl 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/templates/footer.tpl 2009-12-24 14:58:01 UTC (rev 791) @@ -10,7 +10,7 @@ <a target="_blank" href="http://postfixadmin.sf.net/update-check.php?version={$version|escape:"url"}">{$PALANG.check_update}</a> {if $CONF.show_footer_text == 'YES' && $CONF.footer_link} | - <a href="{$CONF.footer_link|escape:"url"}">{$CONF.footer_text|escape:"url"}</a> + <a href="{$CONF.footer_link|escape:"url"}">{$CONF.footer_text|escape}</a> {/if} </div> </body> Modified: trunk/users/edit-alias.php =================================================================== --- trunk/users/edit-alias.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/users/edit-alias.php 2009-12-24 14:58:01 UTC (rev 791) @@ -15,7 +15,7 @@ * File: edit-alias.php * Users can use this to set forwards etc for their mailbox. * - * Template File: users_edit-alias.php + * Template File: users_edit-alias.tpl * * Template Variables: * @@ -113,8 +113,8 @@ else { $tGotoArray = $goto; } - $smarty->assign ('tMessage', $tMessage); - $smarty->display ('index.tpl'); + $smarty->assign ('tMessage', $tMessage, false); + $smarty->display ('index.tpl'); } /* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ Modified: trunk/users/login.php =================================================================== --- trunk/users/login.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/users/login.php 2009-12-24 14:58:01 UTC (rev 791) @@ -14,7 +14,7 @@ * * File: login.php * Used to authenticate want-to-be users. - * Template File: login.php + * Template File: login.tpl * * Template Variables: * @@ -30,7 +30,7 @@ require_once("../common.php"); -$smarty->assign ('language_selector', language_selector()); +$smarty->assign ('language_selector', language_selector(), false); if ($_SERVER['REQUEST_METHOD'] == "GET") { @@ -66,7 +66,7 @@ $tUsername = $fUsername; } $smarty->assign ('tUsername', $tUsername); - $smarty->assign ('tMessage', $tMessage); + $smarty->assign ('tMessage', $tMessage, false); $smarty->assign ('smarty_template', 'users_login'); $smarty->display ('index.tpl'); } Modified: trunk/users/password.php =================================================================== --- trunk/users/password.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/users/password.php 2009-12-24 14:58:01 UTC (rev 791) @@ -74,9 +74,9 @@ $smarty->assign ('USERID_USERNAME', $USERID_USERNAME); //$smarty->assign ('pPassword_admin_text', $pPassword_admin_text); -$smarty->assign ('pPassword_password_current_text', $pPassword_password_current_text); -$smarty->assign ('pPassword_password_text', $pPassword_password_text); -$smarty->assign ('tMessage', $tMessage); +$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); $smarty->assign ('smarty_template', 'users_password'); $smarty->display ('index.tpl'); Modified: trunk/users/vacation.php =================================================================== --- trunk/users/vacation.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/users/vacation.php 2009-12-24 14:58:01 UTC (rev 791) @@ -15,7 +15,7 @@ * File: vacation.php * Used by users to set/change their vacation settings. * - * Template File: users_vacation.php + * Template File: users_vacation.tpl * * Template Variables: * @@ -107,9 +107,9 @@ } } -$smarty->assign ('tSubject', htmlentities ($tSubject, ENT_QUOTES, 'UTF-8')); -$smarty->assign ('tBody', htmlentities ($tBody, ENT_QUOTES, 'UTF-8')); -$smarty->assign ('tMessage', $tMessage); +$smarty->assign ('tSubject', htmlentities ($tSubject, ENT_QUOTES, 'UTF-8'), false); +$smarty->assign ('tBody', htmlentities ($tBody, ENT_QUOTES, 'UTF-8'), false); +$smarty->assign ('tMessage', $tMessage, false); $smarty->assign ('tActiveFrom', date ("d.m.Y", strtotime ($fActiveFrom))); $smarty->assign ('tActiveUntil', date ("d.m.Y", strtotime ($fActiveUntil))); $smarty->assign ('smarty_template', 'users_vacation'); Modified: trunk/viewlog.php =================================================================== --- trunk/viewlog.php 2009-12-15 17:21:10 UTC (rev 790) +++ trunk/viewlog.php 2009-12-24 14:58:01 UTC (rev 791) @@ -15,7 +15,7 @@ * File: viewlog.php * Shows entries from the log table to users. * - * Template File: viewlog.php + * Template File: viewlog.tpl * * Template Variables: * @@ -77,8 +77,8 @@ for ($i = 0; $i < count ($tLog); $i++) $tLog[$i]['action'] = $PALANG ['pViewlog_action_'.$tLog [$i]['action']]; -$smarty->assign ('select_options', select_options ($list_domains, array ($fDomain))); -$smarty->assign ('tLog', $tLog); +$smarty->assign ('select_options', select_options ($list_domains, array ($fDomain)), false); +$smarty->assign ('tLog', $tLog,false); $smarty->assign ('fDomain', $fDomain); $smarty->assign ('smarty_template', 'viewlog'); $smarty->display ('index.tpl'); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Seb...@us...> - 2010-01-23 11:23:21
|
Revision: 796 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=796&view=rev Author: Sebastian2009 Date: 2010-01-23 11:23:14 +0000 (Sat, 23 Jan 2010) Log Message: ----------- - fix bug that no admins and domains can be edited. - workaround for filename problem. Modified Paths: -------------- trunk/list-admin.php trunk/list-domain.php Added Paths: ----------- trunk/templates/adminlistadmin.tpl trunk/templates/adminlistdomain.tpl Removed Paths: ------------- trunk/templates/admin_list-admin.tpl trunk/templates/admin_list-domain.tpl Modified: trunk/list-admin.php =================================================================== --- trunk/list-admin.php 2010-01-14 13:41:02 UTC (rev 795) +++ trunk/list-admin.php 2010-01-23 11:23:14 UTC (rev 796) @@ -41,7 +41,7 @@ } $smarty->assign ('admin_properties', $admin_properties); $smarty->assign ('tMessage', $tMessage, false); -$smarty->assign ('smarty_template', 'admin_list-admin'); +$smarty->assign ('smarty_template', 'adminlistadmin'); $smarty->display ('index.tpl'); /* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ Modified: trunk/list-domain.php =================================================================== --- trunk/list-domain.php 2010-01-14 13:41:02 UTC (rev 795) +++ trunk/list-domain.php 2010-01-23 11:23:14 UTC (rev 796) @@ -13,7 +13,7 @@ * * File: list-domain.php * List all domains as a quick overview. - * Template File: admin_list-domain.tpl + * Template File: adminlistdomain.tpl * * Template Variables: * @@ -98,7 +98,7 @@ if ($is_superadmin) { $smarty->assign('select_options', select_options($list_admins, array ($fUsername)), false); - $smarty->assign('smarty_template', 'admin_list-domain'); + $smarty->assign('smarty_template', 'adminlistdomain'); } else { Deleted: trunk/templates/admin_list-admin.tpl =================================================================== --- trunk/templates/admin_list-admin.tpl 2010-01-14 13:41:02 UTC (rev 795) +++ trunk/templates/admin_list-admin.tpl 2010-01-23 11:23:14 UTC (rev 796) @@ -1,22 +0,0 @@ -{if $admin_properties} - <table id="admin_table"> - {#tr_header#} - <td>{$PALANG.pAdminList_admin_username}</td> - <td>{$PALANG.pAdminList_admin_count}</td> - <td>{$PALANG.pAdminList_admin_modified}</td> - <td>{$PALANG.pAdminList_admin_active}</td> - <td colspan="2"> </td> - </tr> -{foreach from=$admin_properties item=admin} - {#tr_hilightoff#} - <td><a href="list-domain.php?username={$admin.name|escape:"url"}">{$admin.name}</a></td> - <td>{$admin.domain_count}</td> - <td>{$admin.modified}</td> - <td><a href="{#url_edit_active_admin#}?username={$admin.name|escape:"url"}">{$admin.active}</a></td> - <td><a href="{#url_edit_admin#}?username={$admin.name|escape:"url"}">{$PALANG.edit}</a></td> - <td><a href="{#url_delete#}?table=admin&delete={$admin.name|escape:"url"}" onclick="return confirm ('{$PALANG.confirm}{$PALANG.pAdminList_admin_username}: {$admin.name}');">{$PALANG.del}</a></td> - </tr> -{/foreach} - </table> - <p><a href="{#url_create_admin#}">{$PALANG[$smarty.config.txt_create_admin]}</a></p> -{/if} Deleted: trunk/templates/admin_list-domain.tpl =================================================================== --- trunk/templates/admin_list-domain.tpl 2010-01-14 13:41:02 UTC (rev 795) +++ trunk/templates/admin_list-domain.tpl 2010-01-23 11:23:14 UTC (rev 796) @@ -1,41 +0,0 @@ -<div id="overview"> -<form name="frmOverview" method="post" action=""> - <select name="fUsername" onchange="this.form.submit();"> - {$select_options} - </select> - <input class="button" type="submit" name="go" value="{$PALANG.pOverview_button}" /> -</form> -{#form_search#} -</div> -{if $domain_properties} - <table id="admin_table"> - {#tr_header#} - <td>{$PALANG.pAdminList_domain_domain}</td> - <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.transport===YES}<td>{$PALANG.pAdminList_domain_transport}</td>{/if} - <td>{$PALANG.pAdminList_domain_backupmx}</td> - <td>{$PALANG.pAdminList_domain_modified}</td> - <td>{$PALANG.pAdminList_domain_active}</td> - <td colspan="2"> </td> - </tr> -{foreach from=$domain_properties item=domain } - {#tr_hilightoff#} - <td><a href="{#url_list_virtual#}?domain={$domain.domain|escape:"url"}">{$domain.domain}</a></td> - <td>{$domain.description}</td> - <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.transport===YES}<td>{$domain.transport}</td>{/if} - <td>{$domain.backupmx}</td> - <td>{$domain.modified}</td> - <td><a href="{#url_edit_active_domain#}?domain={$domain.domain|escape:"url"}">{$domain.active}</a></td> - <td><a href="{#url_edit_domain#}?domain={$domain.domain|escape:"url"}">{$PALANG.edit}</a></td> - <td><a href="{#url_delete#}?table=domain&delete={$domain.domain|escape:"url"}" onclick="return confirm ('{$PALANG.confirm_domain}{$PALANG.pAdminList_admin_domain}: {$domain.domain}')">{$PALANG.del}</a></td> - </tr> -{/foreach} - </table> -{/if} -<p><a href="{#url_create_domain#}">{$PALANG[$smarty.config.txt_create_domain]}</a></p> Copied: trunk/templates/adminlistadmin.tpl (from rev 794, trunk/templates/admin_list-admin.tpl) =================================================================== --- trunk/templates/adminlistadmin.tpl (rev 0) +++ trunk/templates/adminlistadmin.tpl 2010-01-23 11:23:14 UTC (rev 796) @@ -0,0 +1,22 @@ +{if $admin_properties} + <table id="admin_table"> + {#tr_header#} + <td>{$PALANG.pAdminList_admin_username}</td> + <td>{$PALANG.pAdminList_admin_count}</td> + <td>{$PALANG.pAdminList_admin_modified}</td> + <td>{$PALANG.pAdminList_admin_active}</td> + <td colspan="2"> </td> + </tr> +{foreach from=$admin_properties item=admin} + {#tr_hilightoff#} + <td><a href="list-domain.php?username={$admin.name|escape:"url"}">{$admin.name}</a></td> + <td>{$admin.domain_count}</td> + <td>{$admin.modified}</td> + <td><a href="{#url_edit_active_admin#}?username={$admin.name|escape:"url"}">{$admin.active}</a></td> + <td><a href="{#url_edit_admin#}?username={$admin.name|escape:"url"}">{$PALANG.edit}</a></td> + <td><a href="{#url_delete#}?table=admin&delete={$admin.name|escape:"url"}" onclick="return confirm ('{$PALANG.confirm}{$PALANG.pAdminList_admin_username}: {$admin.name}');">{$PALANG.del}</a></td> + </tr> +{/foreach} + </table> + <p><a href="{#url_create_admin#}">{$PALANG[$smarty.config.txt_create_admin]}</a></p> +{/if} Copied: trunk/templates/adminlistdomain.tpl (from rev 794, trunk/templates/admin_list-domain.tpl) =================================================================== --- trunk/templates/adminlistdomain.tpl (rev 0) +++ trunk/templates/adminlistdomain.tpl 2010-01-23 11:23:14 UTC (rev 796) @@ -0,0 +1,41 @@ +<div id="overview"> +<form name="frmOverview" method="post" action=""> + <select name="fUsername" onchange="this.form.submit();"> + {$select_options} + </select> + <input class="button" type="submit" name="go" value="{$PALANG.pOverview_button}" /> +</form> +{#form_search#} +</div> +{if $domain_properties} + <table id="admin_table"> + {#tr_header#} + <td>{$PALANG.pAdminList_domain_domain}</td> + <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.transport===YES}<td>{$PALANG.pAdminList_domain_transport}</td>{/if} + <td>{$PALANG.pAdminList_domain_backupmx}</td> + <td>{$PALANG.pAdminList_domain_modified}</td> + <td>{$PALANG.pAdminList_domain_active}</td> + <td colspan="2"> </td> + </tr> +{foreach from=$domain_properties item=domain } + {#tr_hilightoff#} + <td><a href="{#url_list_virtual#}?domain={$domain.domain|escape:"url"}">{$domain.domain}</a></td> + <td>{$domain.description}</td> + <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.transport===YES}<td>{$domain.transport}</td>{/if} + <td>{$domain.backupmx}</td> + <td>{$domain.modified}</td> + <td><a href="{#url_edit_active_domain#}?domain={$domain.domain|escape:"url"}">{$domain.active}</a></td> + <td><a href="{#url_edit_domain#}?domain={$domain.domain|escape:"url"}">{$PALANG.edit}</a></td> + <td><a href="{#url_delete#}?table=domain&delete={$domain.domain|escape:"url"}" onclick="return confirm ('{$PALANG.confirm_domain}{$PALANG.pAdminList_admin_domain}: {$domain.domain}')">{$PALANG.del}</a></td> + </tr> +{/foreach} + </table> +{/if} +<p><a href="{#url_create_domain#}">{$PALANG[$smarty.config.txt_create_domain]}</a></p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Seb...@us...> - 2010-01-23 11:31:36
|
Revision: 797 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=797&view=rev Author: Sebastian2009 Date: 2010-01-23 11:31:27 +0000 (Sat, 23 Jan 2010) Log Message: ----------- - remove unused motd text files. They are now within the templates directory. Removed Paths: ------------- trunk/motd-users.txt trunk/motd.txt Deleted: trunk/motd-users.txt =================================================================== --- trunk/motd-users.txt 2010-01-23 11:23:14 UTC (rev 796) +++ trunk/motd-users.txt 2010-01-23 11:31:27 UTC (rev 797) @@ -1,7 +0,0 @@ -<div class="standout"> -=== Announcement ===<br /> -This is a new version of Postfix Admin.<br /> -If you have any questions please direct them to the <a href="mailto:{$CONF.admin_email}">Site Admin</a><br /> -=== Announcement ===<br /> -</div> -<br /> Deleted: trunk/motd.txt =================================================================== --- trunk/motd.txt 2010-01-23 11:23:14 UTC (rev 796) +++ trunk/motd.txt 2010-01-23 11:31:27 UTC (rev 797) @@ -1,7 +0,0 @@ -<div class="standout"> -=== Announcement ===<br /> -This is a new version of Postfix Admin.<br /> -If you have any questions please direct them to the <a href="mailto:{$CONF.admin_email}">Site Admin</a><br /> -=== Announcement ===<br /> -</div> -<br /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Gin...@us...> - 2010-03-24 12:43:57
|
Revision: 815 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=815&view=rev Author: GingerDog Date: 2010-03-24 12:43:51 +0000 (Wed, 24 Mar 2010) Log Message: ----------- merge in patch 2972300 - better login behaviour for users Modified Paths: -------------- trunk/functions.inc.php trunk/users/index.php Modified: trunk/functions.inc.php =================================================================== --- trunk/functions.inc.php 2010-03-24 12:33:15 UTC (rev 814) +++ trunk/functions.inc.php 2010-03-24 12:43:51 UTC (rev 815) @@ -81,7 +81,12 @@ if(authentication_has_role($role)) { return True; } - header("Location: " . $CONF['postfix_admin_url'] . "/login.php"); + if($role === 'user') { + header("Location: " . $CONF['postfix_admin_url'] . '/users/login.php'); + } + else { + header("Location: " . $CONF['postfix_admin_url'] . "/login.php"); + } exit(0); } /** Modified: trunk/users/index.php =================================================================== --- trunk/users/index.php 2010-03-24 12:33:15 UTC (rev 814) +++ trunk/users/index.php 2010-03-24 12:43:51 UTC (rev 815) @@ -24,8 +24,7 @@ * * -none- */ -header ("Location: login.php"); +header ("Location: main.php"); exit; /* 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...> - 2013-11-14 22:33:59
|
Revision: 1580 http://sourceforge.net/p/postfixadmin/code/1580 Author: christian_boltz Date: 2013-11-14 22:33:56 +0000 (Thu, 14 Nov 2013) Log Message: ----------- *.lang: - rename pAdminCreate_admin_username_text to email_address - rename pAdminEdit_admin_super_admin to super_admin AdminHandler.php - initStruct(): - adopt to the renamed $PALANG texts - remove some TODOs - whitespace changes setup.php, adminlistadmin.tpl: - adopt to the renamed $PALANG texts 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/model/AdminHandler.php trunk/setup.php trunk/templates/adminlistadmin.tpl Modified: trunk/languages/bg.lang =================================================================== --- trunk/languages/bg.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/bg.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -239,7 +239,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Не мога да модифицирам домейна! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Добави нов админ на домейна'; -$PALANG['pAdminCreate_admin_username_text'] = 'Е-мейл адрес'; +$PALANG['email_address'] = 'Е-мейл адрес'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Админ не е валиден е-мейл адрес!'; $PALANG['admin_already_exists'] = 'Админ-а вече съществува или не е валиден'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -250,7 +250,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Редакция на админ на домейн'; $PALANG['admin'] = 'Админ'; $PALANG['password_again'] = 'Парола (отново)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Главен Администратор'; +$PALANG['super_admin'] = 'Главен Администратор'; $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Не мога да модифицирам админа! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Админ-а беше модифициран! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/ca.lang =================================================================== --- trunk/languages/ca.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/ca.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -237,7 +237,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Imposible modificar el domini! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Afegir un nou administrador de domini'; -$PALANG['pAdminCreate_admin_username_text'] = 'E-mail'; +$PALANG['email_address'] = 'E-mail'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Administrador no es un e-mail vàlid!'; $PALANG['admin_already_exists'] = 'L\'administrador ja existeix o no es vàlid!'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -249,7 +249,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Editar un administrador de domini'; $PALANG['admin'] = 'Administrador'; $PALANG['password_again'] = 'Contrasenya (repetiu)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX +$PALANG['super_admin'] = 'Super admin'; # XXX $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Imposible modificar l\'administrador! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'L\'administrador ha estat modificat! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/cn.lang =================================================================== --- trunk/languages/cn.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/cn.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -238,7 +238,7 @@ $PALANG['pAdminEdit_domain_result_error'] = '修改域失败! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = '新增域管理员'; -$PALANG['pAdminCreate_admin_username_text'] = '邮件地址'; +$PALANG['email_address'] = '邮件地址'; $PALANG['pAdminCreate_admin_username_text_error1'] = '管理员名不是一个合法的邮件地址!'; $PALANG['admin_already_exists'] = '管理员已经存在或者管理员名非法!'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -249,7 +249,7 @@ $PALANG['pAdminEdit_admin_welcome'] = '修改域管理员'; $PALANG['admin'] = '管理员'; $PALANG['password_again'] = '密码 (验证)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX +$PALANG['super_admin'] = 'Super admin'; # XXX $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = '编辑域管理员失败! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = '编辑域管理员成功! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/cs.lang =================================================================== --- trunk/languages/cs.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/cs.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -247,7 +247,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Nepodařilo se upravit doménu! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Přidat nového doménového administrátora'; -$PALANG['pAdminCreate_admin_username_text'] = 'Emailová adresa'; +$PALANG['email_address'] = 'Emailová adresa'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Tato adresa není platná!'; $PALANG['admin_already_exists'] = 'Taková adresa již existuje!'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -258,7 +258,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Upravit doménového administrátora'; $PALANG['admin'] = 'Uživatelské jméno'; # XXX check text - should be 'Admin' $PALANG['password_again'] = 'Heslo (znovu)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Superuživatel'; +$PALANG['super_admin'] = 'Superuživatel'; $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Nepodařilo se upravit administrátora! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Administrátor byl upraven! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/da.lang =================================================================== --- trunk/languages/da.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/da.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -247,7 +247,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Kan ikke rette domænet! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Tilføj en ny domæneadministrator'; -$PALANG['pAdminCreate_admin_username_text'] = 'Emailadresse'; +$PALANG['email_address'] = 'Emailadresse'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Administrator er ikke en gyldig emailadresse!'; $PALANG['admin_already_exists'] = 'Aministratoren findes allerede eller er ikke gyldig'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -258,7 +258,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Redigér en domæneadministrator'; $PALANG['admin'] = 'Administrator'; $PALANG['password_again'] = 'Adgangskode (igen)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Superadministrator'; +$PALANG['super_admin'] = 'Superadministrator'; $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Kunne ikke rette administrator! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Administrator er rettet! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/de.lang =================================================================== --- trunk/languages/de.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/de.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -244,7 +244,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Das Ändern der Domain %s ist fehlgeschlagen'; $PALANG['pAdminCreate_admin_welcome'] = 'Neuen Domain-Admin hinzufügen'; -$PALANG['pAdminCreate_admin_username_text'] = 'Email Adresse'; +$PALANG['email_address'] = 'Email Adresse'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Admin-Adresse ist keine echte Email-Adresse!'; $PALANG['admin_already_exists'] = 'Der Admin existiert bereits!'; $PALANG['admin_does_not_exist'] = 'Der Admin existiert nicht!'; @@ -255,7 +255,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Domain Admin editieren'; $PALANG['admin'] = 'Admin'; $PALANG['password_again'] = 'Passwort (nochmal)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super-Admin'; +$PALANG['super_admin'] = 'Super-Admin'; $PALANG['super_admin_desc'] = 'Super-Admins haben Zugriff auf alle Domains und können Domains und Admins verwalten.'; $PALANG['pAdminEdit_admin_result_error'] = 'Das Ändern des Admins %s ist fehlgeschlagen!'; $PALANG['pAdminEdit_admin_result_success'] = 'Der Admin %s wurde geändert.'; Modified: trunk/languages/en.lang =================================================================== --- trunk/languages/en.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/en.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -245,7 +245,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Modifying the domain %s failed!'; $PALANG['pAdminCreate_admin_welcome'] = 'Add a new domain admin'; -$PALANG['pAdminCreate_admin_username_text'] = 'Email address'; +$PALANG['email_address'] = 'Email address'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Admin is not a valid email address!'; $PALANG['admin_already_exists'] = 'The admin already exists!'; $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; @@ -256,7 +256,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Edit a domain admin'; $PALANG['admin'] = 'Admin'; $PALANG['password_again'] = 'Password (again)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; +$PALANG['super_admin'] = 'Super admin'; $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; $PALANG['pAdminEdit_admin_result_error'] = 'Modifying the admin %s failed!'; $PALANG['pAdminEdit_admin_result_success'] = 'The admin %s has been modified.'; Modified: trunk/languages/es.lang =================================================================== --- trunk/languages/es.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/es.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -239,7 +239,7 @@ $PALANG['pAdminEdit_domain_result_error'] = '¡Imposible modificar el dominio! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Añadir un nuevo administrador de dominio'; -$PALANG['pAdminCreate_admin_username_text'] = 'E-mail'; +$PALANG['email_address'] = 'E-mail'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Administrador no es un e-mail válido!'; $PALANG['admin_already_exists'] = 'El administrador ya existe o no es válido!'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -251,7 +251,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Editar un administrador de dominio'; $PALANG['admin'] = 'Administrador'; $PALANG['password_again'] = 'Contraseña (repetir)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX +$PALANG['super_admin'] = 'Super admin'; # XXX $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = '¡Imposible modificar el administrador! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = '¡El administrador ha sido modificado! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/et.lang =================================================================== --- trunk/languages/et.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/et.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -238,7 +238,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Domeeni muutmine ebaõnnestus! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Lisa uus domeeni haldaja'; -$PALANG['pAdminCreate_admin_username_text'] = 'E-posti aadress'; +$PALANG['email_address'] = 'E-posti aadress'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Väljal haldaja pole kehtiv e-posti aadress!'; $PALANG['admin_already_exists'] = 'Selline haldaja on juba olemas'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -249,7 +249,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Muuda domeeni haldajat'; $PALANG['admin'] = 'Haldaja'; $PALANG['password_again'] = 'Parool (uuesti)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX +$PALANG['super_admin'] = 'Super admin'; # XXX $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Haldaja muutmine ebaõnnestus! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Haldaja on muudetud! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/eu.lang =================================================================== --- trunk/languages/eu.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/eu.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -236,7 +236,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Ezinezkoa domeinua aldatzea! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Domeinu kudeatzaile berri bat gehitu'; -$PALANG['pAdminCreate_admin_username_text'] = 'E-mail helbidea'; +$PALANG['email_address'] = 'E-mail helbidea'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Kudeatzaile e-mailak ez du balio!'; $PALANG['admin_already_exists'] = 'Kudeatzailea existitzen da edo ez du balio!'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -248,7 +248,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Domeinu kudeatzaile bat aldatu'; $PALANG['admin'] = 'Kudeatzailea'; $PALANG['password_again'] = 'Pasahitza (errepikatu)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX +$PALANG['super_admin'] = 'Super admin'; # XXX $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Ezinezkoa kudeatzailea aldatzea! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Kudeatzailea aldatu da! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/fi.lang =================================================================== --- trunk/languages/fi.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/fi.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -238,7 +238,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Domainin muokkaus ei onnistu! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Lisää uusi domainin ylläpitäjä'; -$PALANG['pAdminCreate_admin_username_text'] = 'Sähköpostiosoite'; +$PALANG['email_address'] = 'Sähköpostiosoite'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Ylläpitäjän sähköpostiosoite ei ole oikeanmuotoinen!'; $PALANG['admin_already_exists'] = 'Ylläpitäjän sähköpostiosoite on jo olemassa tai se ei ole oikean muotoinen'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -249,7 +249,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Muokkaa domainin ylläpitäjää'; $PALANG['admin'] = 'Ylläpitäjä'; # XXX check text - should be 'Admin' $PALANG['password_again'] = 'Salasana (toistamiseen)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Pääylläpitäjä'; +$PALANG['super_admin'] = 'Pääylläpitäjä'; $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Ylläpitäjän muokkaaminen ei onnistu! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Ylläpitäjän muokkaus onnistui! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/fo.lang =================================================================== --- trunk/languages/fo.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/fo.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -238,7 +238,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Fái ikki broytt navnaøki! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Stovna navnaøki umsitara'; -$PALANG['pAdminCreate_admin_username_text'] = 'E-post adressa'; +$PALANG['email_address'] = 'E-post adressa'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Umsitari er ógyldug e-post adressa!'; $PALANG['admin_already_exists'] = 'Umsitari finst longu ella er ógyldugur'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -249,7 +249,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Broyt navnaøki umsitara'; $PALANG['admin'] = 'Umsitari'; $PALANG['password_again'] = 'Loyniorð (umaftur)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX +$PALANG['super_admin'] = 'Super admin'; # XXX $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Fái ikki broytt umsitara! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Umsitari er broyttur! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/fr.lang =================================================================== --- trunk/languages/fr.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/fr.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -240,7 +240,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Impossible de modifier le domain! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Ajouter un nouvel administrateur de domaine'; -$PALANG['pAdminCreate_admin_username_text'] = 'adresse courriel'; +$PALANG['email_address'] = 'adresse courriel'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Ce n\'est pas une adresse courriel administrateur valide!'; $PALANG['admin_already_exists'] = 'Cet adresse courriel administrateur existe déjà ou n\'est pas valide'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -251,7 +251,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Modifier un domaine'; $PALANG['admin'] = 'Administrateur'; $PALANG['password_again'] = 'Mot de passe (confirmation)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super administrateur'; +$PALANG['super_admin'] = 'Super administrateur'; $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Impossible de modifier l\'administrateur ! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'L\'administrateur a été ajouté! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/hr.lang =================================================================== --- trunk/languages/hr.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/hr.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -237,7 +237,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Domenu nije bilo moguće premeniti! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Dodaj administratora domene'; -$PALANG['pAdminCreate_admin_username_text'] = 'Adresa e-pote'; +$PALANG['email_address'] = 'Adresa e-pote'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Administrator nije valjana adresa e-pote!'; $PALANG['admin_already_exists'] = 'Adminstrator već postoji ili nije valjan'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -248,7 +248,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Uredi administratora domene'; $PALANG['admin'] = 'Administrator'; $PALANG['password_again'] = 'Lozinka (ponovi)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX +$PALANG['super_admin'] = 'Super admin'; # XXX $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Administratora nije bilo moguće promjeniti! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Admininstrator je uspjeno promjenjen! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/hu.lang =================================================================== --- trunk/languages/hu.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/hu.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -244,7 +244,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'A domain módosítása sikertelen! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Új domain admin felvétele'; -$PALANG['pAdminCreate_admin_username_text'] = 'Email cím'; +$PALANG['email_address'] = 'Email cím'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Az Admin nem valós email cím!'; $PALANG['admin_already_exists'] = 'Az Admin már létezik, vagy nem valós a cím!'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -255,7 +255,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Domain admin szerkesztése'; $PALANG['admin'] = 'Admin'; $PALANG['password_again'] = 'Jelszó (mégegyszer)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX +$PALANG['super_admin'] = 'Super admin'; # XXX $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Nemsikerült módosítani az admint! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Az Admin módosítása megtörtént! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/is.lang =================================================================== --- trunk/languages/is.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/is.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -238,7 +238,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Get ekki breytt léni! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Bæta nýju léni við'; -$PALANG['pAdminCreate_admin_username_text'] = 'Póstfang'; +$PALANG['email_address'] = 'Póstfang'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Kerfisstjóri er ekki rétt póstfang!'; $PALANG['admin_already_exists'] = 'Kerfisstjóri er til nú þegar eða er ekki leyfilegt'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -249,7 +249,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Breyta kerfisstjóra léns'; $PALANG['admin'] = 'Kerfisstjóri'; # XXX check text - should be 'Admin' $PALANG['password_again'] = 'Lykilorð (aftur)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX +$PALANG['super_admin'] = 'Super admin'; # XXX $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Get ekki breytt kerfisstjóra! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Kerfisstjórinn hefur verið breyttur! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/it.lang =================================================================== --- trunk/languages/it.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/it.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -239,7 +239,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Impossibile modificare il dominio! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Aggiungi un nuovo amministratore per il dominio'; -$PALANG['pAdminCreate_admin_username_text'] = 'Indirizzo email'; +$PALANG['email_address'] = 'Indirizzo email'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'L\'indirizzo dell\'amministratore non è valido!'; $PALANG['admin_already_exists'] = 'L\'amministratore esiste di già, oppure non è valido'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -250,7 +250,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Modifica l\'amministratore del dominio'; $PALANG['admin'] = 'Amministratore'; # XXX check text - should be 'Admin' $PALANG['password_again'] = 'Password (ancora)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Superutente'; +$PALANG['super_admin'] = 'Superutente'; $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Impossibile modificare amministratore! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'L\'amministratore è stato modificato! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/ja.lang =================================================================== --- trunk/languages/ja.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/ja.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -244,7 +244,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'ドメインが修正できません! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = '新しいドメイン管理者の追加'; -$PALANG['pAdminCreate_admin_username_text'] = 'メールアドレス'; +$PALANG['email_address'] = 'メールアドレス'; $PALANG['pAdminCreate_admin_username_text_error1'] = '管理者は有効なメールアドレスではありません。'; $PALANG['admin_already_exists'] = '管理者は存在するか無効です。'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -255,7 +255,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'ドメイン管理者の編集'; $PALANG['admin'] = '管理者'; # XXX check / compare with pAdminCreate_admin_username - should be "admin" $PALANG['password_again'] = 'パスワード (確認)'; -$PALANG['pAdminEdit_admin_super_admin'] = '特権管理者'; +$PALANG['super_admin'] = '特権管理者'; $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = '管理者を修正できません! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = '管理者を修正しました。 (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/lt.lang =================================================================== --- trunk/languages/lt.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/lt.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -239,7 +239,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Srities pakeisti nepavyko! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Registruoti naują srities administratorių'; -$PALANG['pAdminCreate_admin_username_text'] = 'El.pašto adresas'; +$PALANG['email_address'] = 'El.pašto adresas'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Administratorius turi būti el.pašto adresas!'; $PALANG['admin_already_exists'] = 'Administratorius šiai sričiai jau yra arba neteisingas'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -250,7 +250,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Registruoti srities administratorių'; $PALANG['admin'] = 'Administratorius'; # XXX check text - should be 'Admin' $PALANG['password_again'] = 'Slaptažodis (dar kartą)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super administratorius'; +$PALANG['super_admin'] = 'Super administratorius'; $PALANG['super_admin_desc'] = 'Super administratoriai turi priėjimą prie visų sričių, gali keisti sritis ir administratorius.'; $PALANG['pAdminEdit_admin_result_error'] = 'Administratoriaus pakeisti nepavyko! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Administratorius pakeistas! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/mk.lang =================================================================== --- trunk/languages/mk.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/mk.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -239,7 +239,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Не можам да го модифицирам доменот! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Додади нов администратор на домен'; -$PALANG['pAdminCreate_admin_username_text'] = 'Email адреса'; +$PALANG['email_address'] = 'Email адреса'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Администратор не е валидна адреса!'; $PALANG['admin_already_exists'] = 'Администраторот веќе постои или не е валидна'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -250,7 +250,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Измена на администратор на домен'; $PALANG['admin'] = 'Администратор'; # XXX check text - should be 'Admin' $PALANG['password_again'] = 'Лозинка (повторно)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX +$PALANG['super_admin'] = 'Super admin'; # XXX $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Не можам да го модифицирам администраторот! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Администраторот е модифициран! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/nb.lang =================================================================== --- trunk/languages/nb.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/nb.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -239,7 +239,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Kunne ikke endre domenet! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Legg til en ny domeneadministrator'; -$PALANG['pAdminCreate_admin_username_text'] = 'E-postadresse'; +$PALANG['email_address'] = 'E-postadresse'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Du har ikke skrevet inn en gyldig e-postadresse!'; $PALANG['admin_already_exists'] = 'Administratoren er allerede definert, eller du har skrevet inn en ugyldig adresse'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -250,7 +250,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Endre domeneadministrator'; $PALANG['admin'] = 'Administrator'; $PALANG['password_again'] = 'Passord (bekreft)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super-administrator'; +$PALANG['super_admin'] = 'Super-administrator'; $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Klarte ikke å endre administratoren! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Administratoren er blitt endret! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/nl.lang =================================================================== --- trunk/languages/nl.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/nl.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -239,7 +239,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Mislukt het domein te bewerken. (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Voeg een nieuw domein beheerder toe'; -$PALANG['pAdminCreate_admin_username_text'] = 'E-mail adres'; +$PALANG['email_address'] = 'E-mail adres'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Beheerder is geen geldig e-mail adres!'; $PALANG['admin_already_exists'] = 'De beheerder bestaat al of is niet geldig'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -250,7 +250,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Bewerk een domein beheerder'; $PALANG['admin'] = 'Beheerder'; $PALANG['password_again'] = 'Wachtwoord (nogmaals)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super administrator'; +$PALANG['super_admin'] = 'Super administrator'; $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Mislukt om beheerder te bewerken (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Beheerder is bewerkt! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/nn.lang =================================================================== --- trunk/languages/nn.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/nn.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -238,7 +238,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Klarte ikke å oppdatere domenet! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Legg til ny domene-administrator'; -$PALANG['pAdminCreate_admin_username_text'] = 'E-postadresse'; +$PALANG['email_address'] = 'E-postadresse'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Administrator er ikke gyldig adresse!'; $PALANG['admin_already_exists'] = 'The admin already exists!'; # XXX $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -249,7 +249,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Endre domene-administrator'; $PALANG['admin'] = 'Administrator'; $PALANG['password_again'] = 'Passord (igjen)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX +$PALANG['super_admin'] = 'Super admin'; # XXX $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Klarte ikke å endre administratoren! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Administratoren er endret/oppdatert! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/pl.lang =================================================================== --- trunk/languages/pl.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/pl.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -241,7 +241,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Nie można zmodyfikować domeny! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Dodaj konto administratora'; -$PALANG['pAdminCreate_admin_username_text'] = 'Adres email'; +$PALANG['email_address'] = 'Adres email'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Administartor nie jest poprawnym adresem email!'; $PALANG['admin_already_exists'] = 'Administrator już istnieje lub jest niepoprawny'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -252,7 +252,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Edytuj administratora domeny'; $PALANG['admin'] = 'Administrator'; # XXX check text - should be 'Admin' $PALANG['password_again'] = 'Hasło (ponownie)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Główny administrator'; +$PALANG['super_admin'] = 'Główny administrator'; $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Nie można zmodyfikować administratora! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Administrator został zmodyfikowany! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/pt-br.lang =================================================================== --- trunk/languages/pt-br.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/pt-br.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -246,7 +246,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Não foi possível editar o domínio! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Criação de um novo administrador de domínio.'; -$PALANG['pAdminCreate_admin_username_text'] = 'Endereço de email'; +$PALANG['email_address'] = 'Endereço de email'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Endereço de email inválido!'; $PALANG['admin_already_exists'] = 'Administrador já existe ou é inválido'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -257,7 +257,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Edição de administrador de domínio.'; $PALANG['admin'] = 'Administrador'; $PALANG['password_again'] = 'Senha (confirmação)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super administrador'; +$PALANG['super_admin'] = 'Super administrador'; $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Não foi possível editar o administrador! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Administrador editado! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/ru.lang =================================================================== --- trunk/languages/ru.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/ru.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -246,7 +246,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Невозможно изменить домен! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Добавление нового администратора домена'; -$PALANG['pAdminCreate_admin_username_text'] = 'Почтовый адрес'; +$PALANG['email_address'] = 'Почтовый адрес'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Некорректный адрес администратора!'; $PALANG['admin_already_exists'] = 'Администратор уже существует либо некорректное имя'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -257,7 +257,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Редактирование администратора домена'; $PALANG['admin'] = 'Администратор'; # XXX check text - should be 'Admin' $PALANG['password_again'] = 'Пароль (еще раз)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Супер админ'; +$PALANG['super_admin'] = 'Супер админ'; $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Невозможно изменить администратора! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Администратор был изменен! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/sk.lang =================================================================== --- trunk/languages/sk.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/sk.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -239,7 +239,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Nepodarilo sa upraviť doménu! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Pridať nového administrátora'; -$PALANG['pAdminCreate_admin_username_text'] = 'Emailová adresa'; +$PALANG['email_address'] = 'Emailová adresa'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Táto adresa nie je platná!'; $PALANG['admin_already_exists'] = 'Takáto adresa už existuje!'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -250,7 +250,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Upraviť doménového administrátora'; $PALANG['admin'] = 'Užívateľské meno'; # XXX check text - should be 'Admin' $PALANG['password_again'] = 'Heslo (znovu)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; +$PALANG['super_admin'] = 'Super admin'; $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Nepodarilo sa upraviť administrátora! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Administrátor bol upravený! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/sl.lang =================================================================== --- trunk/languages/sl.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/sl.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -238,7 +238,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Domene ni bilo mogoče spremeniti! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Dodaj domenskega administratorja'; -$PALANG['pAdminCreate_admin_username_text'] = 'E-poštni naslov'; +$PALANG['email_address'] = 'E-poštni naslov'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Administrator ni veljaven e-poštni naslov!'; $PALANG['admin_already_exists'] = 'Adminstrator že obstaja ali pa ni pravilen'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -249,7 +249,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Uredi domenskega administratorja'; $PALANG['admin'] = 'Administrator'; $PALANG['password_again'] = 'Geslo (ponovitev)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX +$PALANG['super_admin'] = 'Super admin'; # XXX $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Administratorja ni bilo mogoče spremeniti! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Admininstrator je bil uspešno spremenjen! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/sv.lang =================================================================== --- trunk/languages/sv.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/sv.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -240,7 +240,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Kan inte modifiera domänen! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Lägg till ny domänadmin'; -$PALANG['pAdminCreate_admin_username_text'] = 'Epostadress'; +$PALANG['email_address'] = 'Epostadress'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Admin är inte en giltig epostadress!'; $PALANG['admin_already_exists'] = 'Denna admin finns redan eller är inte giltig'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -251,7 +251,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Ändra en domänadmin'; $PALANG['admin'] = 'Admin'; $PALANG['password_again'] = 'Lösenord (igen)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super administratör'; +$PALANG['super_admin'] = 'Super administratör'; $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Kan inte ändra admin! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Admin har ändrats! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/tr.lang =================================================================== --- trunk/languages/tr.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/tr.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -238,7 +238,7 @@ $PALANG['pAdminEdit_domain_result_error'] = 'Domain düzenlenemedi! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = 'Yöneticiye yeni bir domain ekle'; -$PALANG['pAdminCreate_admin_username_text'] = 'Eposta adresi'; +$PALANG['email_address'] = 'Eposta adresi'; $PALANG['pAdminCreate_admin_username_text_error1'] = 'Yönetici uygun bir eposta adresi deðil!'; $PALANG['admin_already_exists'] = 'Yönetici halen bulunmakta ya da uygun deðil'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -249,7 +249,7 @@ $PALANG['pAdminEdit_admin_welcome'] = 'Domain yöneticisi düzenle'; $PALANG['admin'] = 'Yönetici'; $PALANG['password_again'] = 'Þifre (tekrar)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX +$PALANG['super_admin'] = 'Super admin'; # XXX $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = 'Yönetici düzenlenemedi! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = 'Yönetici düzenlendi! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/languages/tw.lang =================================================================== --- trunk/languages/tw.lang 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/languages/tw.lang 2013-11-14 22:33:56 UTC (rev 1580) @@ -238,7 +238,7 @@ $PALANG['pAdminEdit_domain_result_error'] = '修改網域失敗! (%s)'; # XXX Text changed to: Modifying the domain %s failed! $PALANG['pAdminCreate_admin_welcome'] = '新增網域管理員'; -$PALANG['pAdminCreate_admin_username_text'] = '郵件地址'; +$PALANG['email_address'] = '郵件地址'; $PALANG['pAdminCreate_admin_username_text_error1'] = '管理員名不是一個合法的郵件地址!'; $PALANG['admin_already_exists'] = '管理員已經存在或者管理員名非法!'; # XXX Text changed to: The admin already exists! $PALANG['admin_does_not_exist'] = 'The admin does not exist!'; # XXX @@ -249,7 +249,7 @@ $PALANG['pAdminEdit_admin_welcome'] = '修改網域管理員'; $PALANG['admin'] = '管理員'; $PALANG['password_again'] = '密碼 (驗證)'; -$PALANG['pAdminEdit_admin_super_admin'] = 'Super admin'; # XXX +$PALANG['super_admin'] = 'Super admin'; # XXX $PALANG['super_admin_desc'] = 'Super admins have access to all domains, can manage domains and admin accounts.'; # XXX $PALANG['pAdminEdit_admin_result_error'] = '編輯網域管理員失敗! (%s)'; # XXX Text changed to: Modifying the admin %s failed! $PALANG['pAdminEdit_admin_result_success'] = '編輯網域管理員成功! (%s)'; # XXX Text changed to: The admin %s has been modified. Modified: trunk/model/AdminHandler.php =================================================================== --- trunk/model/AdminHandler.php 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/model/AdminHandler.php 2013-11-14 22:33:56 UTC (rev 1580) @@ -24,9 +24,6 @@ # init $this->struct, $this->db_table and $this->id_field protected function initStruct() { - # TODO: shorter PALANG labels ;-) - # TODO: hardcode 'default' to Config::read in pacol()? - # NOTE: There are dependencies between domains and domain_count # NOTE: If you disable "display in list" for domain_count, the SQL query for domains might break. # NOTE: (Disabling both shouldn't be a problem.) @@ -39,17 +36,17 @@ } $this->struct=array( - # field name allow display in... type $PALANG label $PALANG description default / options / ... + # field name allow display in... type $PALANG label $PALANG description default / options / ... # editing? form list - 'username' => pacol( $this->new, 1, 1, 'text', 'admin' , 'pAdminCreate_admin_username_text' ), - 'password' => pacol( 1, 1, 0, 'pass', 'password' , '' ), - 'password2' => pacol( 1, 1, 0, 'pass', 'password_again' , '' , '', '', + 'username' => pacol( $this->new, 1, 1, 'text', 'admin' , 'email_address' ), + 'password' => pacol( 1, 1, 0, 'pass', 'password' , '' ), + 'password2' => pacol( 1, 1, 0, 'pass', 'password_again' , '' , '', '', /*not_in_db*/ 0, /*dont_write_to_db*/ 1, /*select*/ 'password as password2' ), - 'superadmin' => pacol( 1, 1, 1, 'bool', 'pAdminEdit_admin_super_admin' , 'super_admin_desc' , 0 + 'superadmin' => pacol( 1, 1, 1, 'bool', 'super_admin' , 'super_admin_desc' , 0 # TODO: (finally) replace the ALL domain with a column in the admin table # TODO: current status: 'superadmin' column exists and is written when storing an admin with AdminHandler, # TODO: but the superadmin status is still (additionally) stored in the domain_admins table ("ALL" dummy domain) @@ -58,14 +55,14 @@ # TODO: Create them with the trunk version to avoid this problem. ), - 'domains' => pacol( 1, 1, 1, 'list', 'domain' , '' , array(), list_domains(), + 'domains' => pacol( 1, 1, 1, 'list', 'domain' , '' , array(), list_domains(), /*not_in_db*/ 0, /*dont_write_to_db*/ 1, /*select*/ "coalesce(domains,'') as domains" /*extrafrom set in domain_count*/ ), - 'domain_count' => pacol( 0, 0, 1, 'vnum', '' , '' , '', '', + 'domain_count' => pacol( 0, 0, 1, 'vnum', '' , '' , '', '', /*not_in_db*/ 0, /*dont_write_to_db*/ 1, /*select*/ 'coalesce(__domain_count,0) as domain_count', @@ -75,9 +72,9 @@ " WHERE domain != 'ALL' GROUP BY username " . ' ) AS __domain on username = __domain_username'), - 'active' => pacol( 1, 1, 1, 'bool', 'active' , '' , 1 ), - 'created' => pacol( 0, 0, 1, 'ts', 'created' , '' ), - 'modified' => pacol( 0, 0, 1, 'ts', 'last_modified' , '' ), + 'active' => pacol( 1, 1, 1, 'bool', 'active' , '' , 1 ), + 'created' => pacol( 0, 0, 1, 'ts', 'created' , '' ), + 'modified' => pacol( 0, 0, 1, 'ts', 'last_modified' , '' ), ); } Modified: trunk/setup.php =================================================================== --- trunk/setup.php 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/setup.php 2013-11-14 22:33:56 UTC (rev 1580) @@ -312,8 +312,6 @@ print "<p>Everything seems fine... attempting to create/update database structure</p>\n"; require_once($incpath.'/upgrade.php'); - $pAdminCreate_admin_username_text = $PALANG['pAdminCreate_admin_username_text']; - $pAdminCreate_admin_password_text = ""; $tUsername = ''; $setupMessage = ''; $lostpw_error = 0; @@ -412,7 +410,7 @@ <tr> <td><?php print $PALANG['admin'] . ":"; ?></td> <td><input class="flat" type="text" name="username" value="<?php print $tUsername; ?>" /></td> - <td><?php if (isset($errormsg['username'])) print $errormsg['username']; ?></td> + <td><?php if (isset($errormsg['username'])) print $errormsg['username']; ?><?php print $PALANG['email_address'] ?></td> </tr> <tr> <td><?php print $PALANG['password'] . ":"; ?></td> Modified: trunk/templates/adminlistadmin.tpl =================================================================== --- trunk/templates/adminlistadmin.tpl 2013-11-14 22:10:05 UTC (rev 1579) +++ trunk/templates/adminlistadmin.tpl 2013-11-14 22:33:56 UTC (rev 1580) @@ -12,7 +12,7 @@ <td><a href="list-domain.php?username={$admin.username|escape:"url"}">{$admin.username}</a></td> <td> {if $admin.superadmin == 1} - {$PALANG.pAdminEdit_admin_super_admin} + {$PALANG.super_admin} {else} {$admin.domain_count} {/if} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2013-11-16 20:02:17
|
Revision: 1586 http://sourceforge.net/p/postfixadmin/code/1586 Author: christian_boltz Date: 2013-11-16 20:02:14 +0000 (Sat, 16 Nov 2013) Log Message: ----------- AliasdomainHandler: - better error messages languages/*.lang - rename pCreate_alias_domain_error3 to alias_domain_create_failed - add new texts needed for AliasdomainHandler 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/model/AliasdomainHandler.php Modified: trunk/languages/bg.lang =================================================================== --- trunk/languages/bg.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/bg.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -94,7 +94,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'The domain where mails should go to.'; # XXX $PALANG['pCreate_alias_domain_error1'] = 'Не ви е позволено да използвате избраната конфигурация.'; $PALANG['pCreate_alias_domain_error2'] = 'Избраната конфигурация е невалидна. Изберете друга!'; -$PALANG['pCreate_alias_domain_error3'] = 'Възникна грешка при добавяне в базата. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Възникна грешка при добавяне в базата. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'All domains are already aliased.'; # XXX $PALANG['pCreate_alias_domain_success'] = 'The alias domain %s has been created.'; # XXX Modified: trunk/languages/ca.lang =================================================================== --- trunk/languages/ca.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/ca.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -92,7 +92,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'The domain where mails should go to.'; # XXX $PALANG['pCreate_alias_domain_error1'] = 'You are not allowed to create the chosen configuration.'; # XXX $PALANG['pCreate_alias_domain_error2'] = 'The chosen configuration is invalid, please choose a different one!'; # XXX -$PALANG['pCreate_alias_domain_error3'] = 'Database insert failed. (%s)'; # XXX # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Creating the alias domain %s failed!'; # XXX $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'All domains are already aliased.'; # XXX $PALANG['pCreate_alias_domain_success'] = 'The alias domain %s has been created.'; # XXX Modified: trunk/languages/cn.lang =================================================================== --- trunk/languages/cn.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/cn.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -93,7 +93,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'The domain where mails should go to.'; # XXX $PALANG['pCreate_alias_domain_error1'] = 'You are not allowed to create the chosen configuration.'; # XXX $PALANG['pCreate_alias_domain_error2'] = 'The chosen configuration is invalid, please choose a different one!'; # XXX -$PALANG['pCreate_alias_domain_error3'] = 'Database insert failed. (%s)'; # XXX # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Creating the alias domain %s failed!'; # XXX $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'All domains are already aliased.'; # XXX $PALANG['pCreate_alias_domain_success'] = 'The alias domain %s has been created.'; # XXX Modified: trunk/languages/cs.lang =================================================================== --- trunk/languages/cs.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/cs.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -98,7 +98,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'The domain where mails should go to.'; # XXX $PALANG['pCreate_alias_domain_error1'] = 'You are not allowed to create the chosen configuration.'; # XXX $PALANG['pCreate_alias_domain_error2'] = 'The chosen configuration is invalid, please choose a different one!'; # XXX -$PALANG['pCreate_alias_domain_error3'] = 'Database insert failed. (%s)'; # XXX # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Creating the alias domain %s failed!'; # XXX $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'All domains are already aliased.'; # XXX $PALANG['pCreate_alias_domain_success'] = 'The alias domain %s has been created.'; # XXX Modified: trunk/languages/da.lang =================================================================== --- trunk/languages/da.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/da.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -98,7 +98,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'Domæne hvor emails skal sendes til.'; $PALANG['pCreate_alias_domain_error1'] = 'Du har ikke tilladelse til at lave den valgte konfiguration'; $PALANG['pCreate_alias_domain_error2'] = 'Den valgte konfiguration er ikke korrekt, vælg venligst en anden.'; -$PALANG['pCreate_alias_domain_error3'] = 'Indsætning i databasen fejlede. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Indsætning i databasen fejlede. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'Alle domænerne har allerede aliases.'; $PALANG['pCreate_alias_domain_success'] = 'Domæne-alias blev tilføjet alias-tabellen. (%s)'; # XXX Text changed to: The alias domain %s has been created. Modified: trunk/languages/de.lang =================================================================== --- trunk/languages/de.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/de.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -95,7 +95,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'Die Domain, an die die Mails gehen sollen.'; $PALANG['pCreate_alias_domain_error1'] = 'Sie dürfen die gewählte Konfiguration nicht erstellen.'; $PALANG['pCreate_alias_domain_error2'] = 'Die gewählte Konfiguration ist ungültig, bitte wählen Sie eine andere'; -$PALANG['pCreate_alias_domain_error3'] = 'Das Erstellen der Alias-Domain %s ist fehlgeschlagen!'; +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Das Erstellen der Alias-Domain %s ist fehlgeschlagen!'; $PALANG['alias_domain_change_failed'] = 'Ändern der Alias-Domain %s fehlgeschlagen!'; $PALANG['pCreate_alias_domain_error4'] = 'Alle Domains sind bereits Alias-Domains.'; $PALANG['pCreate_alias_domain_success'] = 'Die Alias-Domain %s wurde erstellt.'; Modified: trunk/languages/en.lang =================================================================== --- trunk/languages/en.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/en.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -96,7 +96,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'The domain where mails should go to.'; $PALANG['pCreate_alias_domain_error1'] = 'You are not allowed to create the chosen configuration.'; $PALANG['pCreate_alias_domain_error2'] = 'The chosen configuration is invalid, please choose a different one!'; -$PALANG['pCreate_alias_domain_error3'] = 'Creating the alias domain %s failed!'; +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; +$PALANG['alias_domain_create_failed'] = 'Creating the alias domain %s failed!'; $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; $PALANG['pCreate_alias_domain_error4'] = 'All domains are already aliased.'; $PALANG['pCreate_alias_domain_success'] = 'The alias domain %s has been created.'; Modified: trunk/languages/es.lang =================================================================== --- trunk/languages/es.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/es.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -93,7 +93,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'El dominio al que deberían ir los emails.'; $PALANG['pCreate_alias_domain_error1'] = 'No estás autorizado a crear la configuración que has elegido.'; $PALANG['pCreate_alias_domain_error2'] = '¡La configuración seleccionada no es válida, por favor elige una diferente!'; -$PALANG['pCreate_alias_domain_error3'] = 'Falló la inserción en la base de datos. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Falló la inserción en la base de datos. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'Ya están todos los dominios asignados.'; $PALANG['pCreate_alias_domain_success'] = '¡El alias de dominio se insertó en la tabla! (%s)'; # XXX Text changed to: The alias domain %s has been created. Modified: trunk/languages/et.lang =================================================================== --- trunk/languages/et.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/et.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -93,7 +93,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'The domain where mails should go to.'; # XXX $PALANG['pCreate_alias_domain_error1'] = 'You are not allowed to create the chosen configuration.'; # XXX $PALANG['pCreate_alias_domain_error2'] = 'The chosen configuration is invalid, please choose a different one!'; # XXX -$PALANG['pCreate_alias_domain_error3'] = 'Database insert failed. (%s)'; # XXX # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Creating the alias domain %s failed!'; # XXX $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'All domains are already aliased.'; # XXX $PALANG['pCreate_alias_domain_success'] = 'The alias domain %s has been created.'; # XXX Modified: trunk/languages/eu.lang =================================================================== --- trunk/languages/eu.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/eu.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -92,7 +92,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'The domain where mails should go to.'; # XXX $PALANG['pCreate_alias_domain_error1'] = 'You are not allowed to create the chosen configuration.'; # XXX $PALANG['pCreate_alias_domain_error2'] = 'The chosen configuration is invalid, please choose a different one!'; # XXX -$PALANG['pCreate_alias_domain_error3'] = 'Database insert failed. (%s)'; # XXX # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Creating the alias domain %s failed!'; # XXX $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'All domains are already aliased.'; # XXX $PALANG['pCreate_alias_domain_success'] = 'The alias domain %s has been created.'; # XXX Modified: trunk/languages/fi.lang =================================================================== --- trunk/languages/fi.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/fi.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -94,7 +94,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'Domaini johon mailien pitäisi mennä.'; $PALANG['pCreate_alias_domain_error1'] = 'Sinulla ei ole oikeutta luoda valittua konfiguraatiota.'; $PALANG['pCreate_alias_domain_error2'] = 'Valittu konfiguraatio on viallinen, ole hyvä ja valitse toinen!'; -$PALANG['pCreate_alias_domain_error3'] = 'Syöttö tietokantaan epäonnistui. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Syöttö tietokantaan epäonnistui. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'Kaikilla domaineilla on jo alias.'; $PALANG['pCreate_alias_domain_success'] = 'Domainin alias on lisätty domain alias tauluun! (%s)'; # XXX Text changed to: The alias domain %s has been created. Modified: trunk/languages/fo.lang =================================================================== --- trunk/languages/fo.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/fo.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -93,7 +93,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'The domain where mails should go to.'; # XXX $PALANG['pCreate_alias_domain_error1'] = 'You are not allowed to create the chosen configuration.'; # XXX $PALANG['pCreate_alias_domain_error2'] = 'The chosen configuration is invalid, please choose a different one!'; # XXX -$PALANG['pCreate_alias_domain_error3'] = 'Database insert failed. (%s)'; # XXX # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Creating the alias domain %s failed!'; # XXX $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'All domains are already aliased.'; # XXX $PALANG['pCreate_alias_domain_success'] = 'The alias domain %s has been created.'; # XXX Modified: trunk/languages/fr.lang =================================================================== --- trunk/languages/fr.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/fr.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -95,7 +95,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'Le domaine o\xF9 les mails doivent aller.'; $PALANG['pCreate_alias_domain_error1'] = 'Vous n\'etes pas autorisé a créer la configuration choisie.'; $PALANG['pCreate_alias_domain_error2'] = 'La configuration choisie est invalide, merci d\'en choisir une autre!'; -$PALANG['pCreate_alias_domain_error3'] = 'Insertion dans la base de donnée échouée. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Insertion dans la base de donnée échouée. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'Tous les domaines sont déj\xE0 liés \xE0 un alias.'; $PALANG['pCreate_alias_domain_success'] = 'L\'alias de domaine est déj\xE0 pr\xE9sent dans la table de domaine! (%s)'; # XXX Text changed to: The alias domain %s has been created. Modified: trunk/languages/hr.lang =================================================================== --- trunk/languages/hr.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/hr.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -92,7 +92,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'The domain where mails should go to.'; # XXX $PALANG['pCreate_alias_domain_error1'] = 'You are not allowed to create the chosen configuration.'; # XXX $PALANG['pCreate_alias_domain_error2'] = 'The chosen configuration is invalid, please choose a different one!'; # XXX -$PALANG['pCreate_alias_domain_error3'] = 'Database insert failed. (%s)'; # XXX # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Creating the alias domain %s failed!'; # XXX $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'All domains are already aliased.'; # XXX $PALANG['pCreate_alias_domain_success'] = 'The alias domain %s has been created.'; # XXX Modified: trunk/languages/hu.lang =================================================================== --- trunk/languages/hu.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/hu.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -95,7 +95,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'The domain where mails should go to.'; # XXX $PALANG['pCreate_alias_domain_error1'] = 'You are not allowed to create the chosen configuration.'; # XXX $PALANG['pCreate_alias_domain_error2'] = 'The chosen configuration is invalid, please choose a different one!'; # XXX -$PALANG['pCreate_alias_domain_error3'] = 'Database insert failed. (%s)'; # XXX # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Creating the alias domain %s failed!'; # XXX $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'All domains are already aliased.'; # XXX $PALANG['pCreate_alias_domain_success'] = 'The alias domain %s has been created.'; # XXX Modified: trunk/languages/is.lang =================================================================== --- trunk/languages/is.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/is.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -93,7 +93,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'The domain where mails should go to.'; # XXX $PALANG['pCreate_alias_domain_error1'] = 'You are not allowed to create the chosen configuration.'; # XXX $PALANG['pCreate_alias_domain_error2'] = 'The chosen configuration is invalid, please choose a different one!'; # XXX -$PALANG['pCreate_alias_domain_error3'] = 'Database insert failed. (%s)'; # XXX # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Creating the alias domain %s failed!'; # XXX $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'All domains are already aliased.'; # XXX $PALANG['pCreate_alias_domain_success'] = 'The alias domain %s has been created.'; # XXX Modified: trunk/languages/it.lang =================================================================== --- trunk/languages/it.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/it.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -94,7 +94,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'The domain where mails should go to.'; # XXX $PALANG['pCreate_alias_domain_error1'] = 'You are not allowed to create the chosen configuration.'; # XXX $PALANG['pCreate_alias_domain_error2'] = 'The chosen configuration is invalid, please choose a different one!'; # XXX -$PALANG['pCreate_alias_domain_error3'] = 'Database insert failed. (%s)'; # XXX # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Creating the alias domain %s failed!'; # XXX $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'All domains are already aliased.'; # XXX $PALANG['pCreate_alias_domain_success'] = 'The alias domain %s has been created.'; # XXX Modified: trunk/languages/ja.lang =================================================================== --- trunk/languages/ja.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/ja.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -95,7 +95,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'メールをこのドメイン宛に届けます。'; $PALANG['pCreate_alias_domain_error1'] = 'You are not allowed to create the chosen configuration.'; # XXX $PALANG['pCreate_alias_domain_error2'] = 'The chosen configuration is invalid, please choose a different one!'; # XXX -$PALANG['pCreate_alias_domain_error3'] = 'Database insert failed. (%s)'; # XXX # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Creating the alias domain %s failed!'; # XXX $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = '全てのドメインがエイリアスされています。'; $PALANG['pCreate_alias_domain_success'] = 'The alias domain %s has been created.'; # XXX Modified: trunk/languages/lt.lang =================================================================== --- trunk/languages/lt.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/lt.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -93,7 +93,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'Sritis, į kurią turi būti nukreipti laiškai.'; $PALANG['pCreate_alias_domain_error1'] = 'Jūs negalite sukurti pasirinktos konfigūracijos.'; $PALANG['pCreate_alias_domain_error2'] = 'Pasirinkta neteisinga konfigūracija, pasirinkite kitą!'; -$PALANG['pCreate_alias_domain_error3'] = 'Duomenų bazės papildyti nepavyko. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Duomenų bazės papildyti nepavyko. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'Visos sritys jau turi sinonimus.'; $PALANG['pCreate_alias_domain_success'] = 'Srities sinonimas užregistruotas! (%s)'; # XXX Text changed to: The alias domain %s has been created. Modified: trunk/languages/mk.lang =================================================================== --- trunk/languages/mk.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/mk.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -93,7 +93,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'The domain where mails should go to.'; # XXX $PALANG['pCreate_alias_domain_error1'] = 'You are not allowed to create the chosen configuration.'; # XXX $PALANG['pCreate_alias_domain_error2'] = 'The chosen configuration is invalid, please choose a different one!'; # XXX -$PALANG['pCreate_alias_domain_error3'] = 'Database insert failed. (%s)'; # XXX # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Creating the alias domain %s failed!'; # XXX $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'All domains are already aliased.'; # XXX $PALANG['pCreate_alias_domain_success'] = 'The alias domain %s has been created.'; # XXX Modified: trunk/languages/nb.lang =================================================================== --- trunk/languages/nb.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/nb.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -95,7 +95,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'Domenet e-postmeldingene skal videresendes til.'; $PALANG['pCreate_alias_domain_error1'] = 'Du har ikke tillatelse til å opprette den valgte konfigurasjonen.'; $PALANG['pCreate_alias_domain_error2'] = 'Den valgte konfigurasjonen er ugyldig, vennligst endre den!'; -$PALANG['pCreate_alias_domain_error3'] = 'Det mislyktes å lagre informasjonen i databasen. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Det mislyktes å lagre informasjonen i databasen. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'Det er allerede opprettet alias for alle domenene.'; $PALANG['pCreate_alias_domain_success'] = 'Domenealiaset har blitt lagt inn i tabellen over aliasdomener! (%s)'; # XXX Text changed to: The alias domain %s has been created. Modified: trunk/languages/nl.lang =================================================================== --- trunk/languages/nl.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/nl.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -94,7 +94,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'Domein waar de mail naar toe moet.'; $PALANG['pCreate_alias_domain_error1'] = 'U heeft niet genoeg rechten om de huidige configuratie te maken.'; $PALANG['pCreate_alias_domain_error2'] = 'De huidige configuratie is ongeldig, slecteer een andere!'; -$PALANG['pCreate_alias_domain_error3'] = 'Fout bij vullen database. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Fout bij vullen database. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'Alle domeinen hebben al een alias!'; $PALANG['pCreate_alias_domain_success'] = 'De domein alias is toegevoegd aan de alias domein tabel! (%s)'; # XXX Text changed to: The alias domain %s has been created. Modified: trunk/languages/nn.lang =================================================================== --- trunk/languages/nn.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/nn.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -93,7 +93,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'The domain where mails should go to.'; # XXX $PALANG['pCreate_alias_domain_error1'] = 'You are not allowed to create the chosen configuration.'; # XXX $PALANG['pCreate_alias_domain_error2'] = 'The chosen configuration is invalid, please choose a different one!'; # XXX -$PALANG['pCreate_alias_domain_error3'] = 'Database insert failed. (%s)'; # XXX # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Creating the alias domain %s failed!'; # XXX $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'All domains are already aliased.'; # XXX $PALANG['pCreate_alias_domain_success'] = 'The alias domain %s has been created.'; # XXX Modified: trunk/languages/pl.lang =================================================================== --- trunk/languages/pl.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/pl.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -96,7 +96,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'Domena do której powinny przychodzić maile.'; $PALANG['pCreate_alias_domain_error1'] = 'Nie masz uprawnień do tworzenia takiej konfiguracji.'; $PALANG['pCreate_alias_domain_error2'] = 'Wybrana konfiguracja jest nieprawidłowa, proszę wybrać inną!'; -$PALANG['pCreate_alias_domain_error3'] = 'Dodanie do bazy nie powiodło się. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Dodanie do bazy nie powiodło się. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'Wszystkie domeny są już aliasowane.'; $PALANG['pCreate_alias_domain_success'] = 'Alias domeny został dodany do tabeli aliasów domen! (%s)'; # XXX Text changed to: The alias domain %s has been created. Modified: trunk/languages/pt-br.lang =================================================================== --- trunk/languages/pt-br.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/pt-br.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -97,7 +97,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'O domínio para onde as mensagens devem ir.'; $PALANG['pCreate_alias_domain_error1'] = 'Você não possui permissão para criar a configuração desejada.'; $PALANG['pCreate_alias_domain_error2'] = 'Configuração inválida. Por favor, defina outra configuração!'; -$PALANG['pCreate_alias_domain_error3'] = 'Não foi possível criar o alias de domínio. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Não foi possível criar o alias de domínio. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'Todos os domínios já estão espelhados.'; $PALANG['pCreate_alias_domain_success'] = 'Alias de domínio criado! (%s)'; # XXX Text changed to: The alias domain %s has been created. Modified: trunk/languages/ru.lang =================================================================== --- trunk/languages/ru.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/ru.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -97,7 +97,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'Домен, куда должна направляться почта.'; $PALANG['pCreate_alias_domain_error1'] = 'Вам не разрешено создавать выбранную конфигурацию.'; $PALANG['pCreate_alias_domain_error2'] = 'Выбранная конфигурация некорректна, пожалуйста, выберите другую!'; -$PALANG['pCreate_alias_domain_error3'] = 'Не удалось добавить запись в базу данных. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Не удалось добавить запись в базу данных. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'Все домены уже задействованы в доменах-алиасах.'; $PALANG['pCreate_alias_domain_success'] = 'Домен-алиас добавлен в таблицу доменов-алиасов! (%s)'; # XXX Text changed to: The alias domain %s has been created. Modified: trunk/languages/sk.lang =================================================================== --- trunk/languages/sk.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/sk.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -94,7 +94,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'Kam sa email presmeruje'; $PALANG['pCreate_alias_domain_error1'] = 'Nie ste oprávnení vytvoriť zvolenú konfiguráciu.'; $PALANG['pCreate_alias_domain_error2'] = 'Zvolená konfigurácia nie je platná, zvoľte inú!'; -$PALANG['pCreate_alias_domain_error3'] = 'Chyba pri vkladaní do databázy. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Chyba pri vkladaní do databázy. (%s)'; # XXX Text changed to: Creating the alias domain %s failed! $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'Všetky domény už majú aliasy.'; $PALANG['pCreate_alias_domain_success'] = 'Alias domény bol pridaný do tabuľky! (%s)'; # XXX Text changed to: The alias domain %s has been created. Modified: trunk/languages/sl.lang =================================================================== --- trunk/languages/sl.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/sl.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -93,7 +93,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'The domain where mails should go to.'; # XXX $PALANG['pCreate_alias_domain_error1'] = 'You are not allowed to create the chosen configuration.'; # XXX $PALANG['pCreate_alias_domain_error2'] = 'The chosen configuration is invalid, please choose a different one!'; # XXX -$PALANG['pCreate_alias_domain_error3'] = 'Database insert failed. (%s)'; # XXX # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Creating the alias domain %s failed!'; # XXX $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'All domains are already aliased.'; # XXX $PALANG['pCreate_alias_domain_success'] = 'The alias domain %s has been created.'; # XXX Modified: trunk/languages/sv.lang =================================================================== --- trunk/languages/sv.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/sv.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -95,7 +95,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'The domain where mails should go to.'; # XXX $PALANG['pCreate_alias_domain_error1'] = 'You are not allowed to create the chosen configuration.'; # XXX $PALANG['pCreate_alias_domain_error2'] = 'The chosen configuration is invalid, please choose a different one!'; # XXX -$PALANG['pCreate_alias_domain_error3'] = 'Database insert failed. (%s)'; # XXX # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Creating the alias domain %s failed!'; # XXX $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'All domains are already aliased.'; # XXX $PALANG['pCreate_alias_domain_success'] = 'The alias domain %s has been created.'; # XXX Modified: trunk/languages/tr.lang =================================================================== --- trunk/languages/tr.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/tr.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -93,7 +93,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'The domain where mails should go to.'; # XXX $PALANG['pCreate_alias_domain_error1'] = 'You are not allowed to create the chosen configuration.'; # XXX $PALANG['pCreate_alias_domain_error2'] = 'The chosen configuration is invalid, please choose a different one!'; # XXX -$PALANG['pCreate_alias_domain_error3'] = 'Database insert failed. (%s)'; # XXX # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Creating the alias domain %s failed!'; # XXX $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'All domains are already aliased.'; # XXX $PALANG['pCreate_alias_domain_success'] = 'The alias domain %s has been created.'; # XXX Modified: trunk/languages/tw.lang =================================================================== --- trunk/languages/tw.lang 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/languages/tw.lang 2013-11-16 20:02:14 UTC (rev 1586) @@ -93,7 +93,9 @@ $PALANG['pCreate_alias_domain_target_text'] = 'The domain where mails should go to.'; # XXX $PALANG['pCreate_alias_domain_error1'] = 'You are not allowed to create the chosen configuration.'; # XXX $PALANG['pCreate_alias_domain_error2'] = 'The chosen configuration is invalid, please choose a different one!'; # XXX -$PALANG['pCreate_alias_domain_error3'] = 'Database insert failed. (%s)'; # XXX # XXX Text changed to: Creating the alias domain %s failed! +$PALANG['alias_domain_already_exists'] = 'This domain is already an alias domain!'; # XXX +$PALANG['alias_domain_does_not_exist'] = 'This domain isn\'t an alias domain!'; # XXX +$PALANG['alias_domain_create_failed'] = 'Creating the alias domain %s failed!'; # XXX $PALANG['alias_domain_change_failed'] = 'Changing the alias domain %s failed!'; # XXX $PALANG['pCreate_alias_domain_error4'] = 'All domains are already aliased.'; # XXX $PALANG['pCreate_alias_domain_success'] = 'The alias domain %s has been created.'; # XXX Modified: trunk/model/AliasdomainHandler.php =================================================================== --- trunk/model/AliasdomainHandler.php 2013-11-16 19:49:40 UTC (rev 1585) +++ trunk/model/AliasdomainHandler.php 2013-11-16 20:02:14 UTC (rev 1586) @@ -60,11 +60,11 @@ } protected function initMsg() { - $this->msg['error_already_exists'] = 'pCreate_alias_domain_error2'; # TODO: better error message - $this->msg['error_does_not_exist'] = 'pCreate_alias_domain_error2'; # TODO: better error message + $this->msg['error_already_exists'] = 'alias_domain_already_exists'; + $this->msg['error_does_not_exist'] = 'alias_domain_does_not_exist'; if ($this->new) { $this->msg['logname'] = 'create_alias_domain'; - $this->msg['store_error'] = 'pCreate_alias_domain_error3'; + $this->msg['store_error'] = 'alias_domain_create_failed'; $this->msg['successmessage'] = 'pCreate_alias_domain_success'; } else { $this->msg['logname'] = 'edit_alias_domain'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2014-05-01 22:52:50
|
Revision: 1665 http://sourceforge.net/p/postfixadmin/code/1665 Author: christian_boltz Date: 2014-05-01 22:52:47 +0000 (Thu, 01 May 2014) Log Message: ----------- login.php, users/login.php: - trim() $fUsername - MySQL thinks "foo" == "foo " (and therefore allows login as "fo...@ex... " - but later we'll get funny "undefined index" problems in PFAHander->view()) when an admin wants to change the password Modified Paths: -------------- trunk/login.php trunk/users/login.php Modified: trunk/login.php =================================================================== --- trunk/login.php 2014-05-01 22:23:25 UTC (rev 1664) +++ trunk/login.php 2014-05-01 22:52:47 UTC (rev 1665) @@ -38,7 +38,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") { $lang = safepost('lang'); - $fUsername = safepost('fUsername'); + $fUsername = trim(safepost('fUsername')); $fPassword = safepost('fPassword'); if ( $lang != check_language(0) ) { # only set cookie if language selection was changed Modified: trunk/users/login.php =================================================================== --- trunk/users/login.php 2014-05-01 22:23:25 UTC (rev 1664) +++ trunk/users/login.php 2014-05-01 22:52:47 UTC (rev 1665) @@ -34,7 +34,7 @@ if ($_SERVER['REQUEST_METHOD'] == "POST") { $lang = safepost('lang'); - $fUsername = safepost('fUsername'); + $fUsername = trim(safepost('fUsername')); $fPassword = safepost('fPassword'); if ( $lang != check_language(0) ) { # only set cookie if language selection was changed This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2015-09-26 10:39:08
|
Revision: 1799 http://sourceforge.net/p/postfixadmin/code/1799 Author: christian_boltz Date: 2015-09-26 10:39:05 +0000 (Sat, 26 Sep 2015) Log Message: ----------- 3.0 beta3 (= 2.93) release - update $version and changelog Modified Paths: -------------- trunk/CHANGELOG.TXT trunk/debian/changelog trunk/functions.inc.php Modified: trunk/CHANGELOG.TXT =================================================================== --- trunk/CHANGELOG.TXT 2015-09-18 05:10:13 UTC (rev 1798) +++ trunk/CHANGELOG.TXT 2015-09-26 10:39:05 UTC (rev 1799) @@ -9,7 +9,7 @@ # Last update: # $Id$ -Version 3.0 beta3 (2.93) - 2015/09/** - SVN r**** +Version 3.0 beta3 (2.93) - 2015/09/26 - SVN r1799 ------------------------------------------------- Summary of major changes: @@ -116,6 +116,7 @@ - setup.php: stop relying on subversion keyword for database upgrades - explictly set session_cache_limiter to nocache (bug#347) - fetchmail.pl: honor the (newly added) active column + - change fetchmail.date field to date (no auto-update) (bug#351) - several small changes and fixes at various places - too many to list them here Version 3.0 beta2 (2.92) - 2014/10/28 - SVN r1706 Modified: trunk/debian/changelog =================================================================== --- trunk/debian/changelog 2015-09-18 05:10:13 UTC (rev 1798) +++ trunk/debian/changelog 2015-09-26 10:39:05 UTC (rev 1799) @@ -1,3 +1,9 @@ +postfixadmin (2.93-1) unstable; urgency=low + + * New upstream release (effectively beta3 for v3.0) + + -- David Goodwin <da...@pa...> Sat, 26 Sep 2015 12:36:00 +0100 + postfixadmin (2.92-1) unstable; urgency=low * New upstream release (effectively beta2 for v3.0) Modified: trunk/functions.inc.php =================================================================== --- trunk/functions.inc.php 2015-09-18 05:10:13 UTC (rev 1798) +++ trunk/functions.inc.php 2015-09-26 10:39:05 UTC (rev 1799) @@ -15,7 +15,7 @@ * Contains re-usable code. */ -$version = '2.92'; +$version = '2.93'; /** * check_session This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2016-09-10 20:02:36
|
Revision: 1861 http://sourceforge.net/p/postfixadmin/code/1861 Author: christian_boltz Date: 2016-09-10 20:02:33 +0000 (Sat, 10 Sep 2016) Log Message: ----------- prepare PostfixAdmin 3.0 release Modified Paths: -------------- trunk/CHANGELOG.TXT trunk/debian/changelog trunk/functions.inc.php Modified: trunk/CHANGELOG.TXT =================================================================== --- trunk/CHANGELOG.TXT 2016-09-09 20:20:09 UTC (rev 1860) +++ trunk/CHANGELOG.TXT 2016-09-10 20:02:33 UTC (rev 1861) @@ -9,7 +9,7 @@ # Last update: # $Id$ -Changes since 3.0 beta3 +Version 3.0 - 2016/09/11 - SVN r1861 ------------------------------------------------- - add sqlite backend option Modified: trunk/debian/changelog =================================================================== --- trunk/debian/changelog 2016-09-09 20:20:09 UTC (rev 1860) +++ trunk/debian/changelog 2016-09-10 20:02:33 UTC (rev 1861) @@ -1,3 +1,9 @@ +postfixadmin (3.0-1) unstable; urgency=low + + * New upstream release + + -- David Goodwin <da...@pa...> Sun, 11 Sep 2016 18:42:00 +0100 + postfixadmin (2.93-2) unstable; urgency=low * Replace debian/ using Debian v2.3.7-2. See Debian's #821643 Modified: trunk/functions.inc.php =================================================================== --- trunk/functions.inc.php 2016-09-09 20:20:09 UTC (rev 1860) +++ trunk/functions.inc.php 2016-09-10 20:02:33 UTC (rev 1861) @@ -15,7 +15,7 @@ * Contains re-usable code. */ -$version = '2.93'; +$version = '3.0'; $min_db_version = 1835; # update (at least) before a release with the latest function numbrer in upgrade.php /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Gin...@us...> - 2010-03-24 13:01:43
|
Revision: 816 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=816&view=rev Author: GingerDog Date: 2010-03-24 13:01:36 +0000 (Wed, 24 Mar 2010) Log Message: ----------- see #2915887 - minor related changes Modified Paths: -------------- trunk/edit-alias.php trunk/edit-domain.php trunk/edit-mailbox.php trunk/edit-vacation.php trunk/list-virtual.php trunk/smarty.inc.php Modified: trunk/edit-alias.php =================================================================== --- trunk/edit-alias.php 2010-03-24 12:43:51 UTC (rev 815) +++ trunk/edit-alias.php 2010-03-24 13:01:36 UTC (rev 816) @@ -165,15 +165,14 @@ } } } +// never used? +//$fDomain = htmlentities($fDomain, ENT_QUOTES); -$fAddress = htmlentities($fAddress, ENT_QUOTES); -$fDomain = htmlentities($fDomain, ENT_QUOTES); - $array = preg_split ('/,/', $tGoto); // TOCHECK $array = $alias_list; -$smarty->assign ('fAddress', $fAddress, false); +$smarty->assign ('fAddress', $fAddress); $smarty->assign ('array', $array, false); $smarty->assign ('tMessage', $tMessage, false); $smarty->assign ('smarty_template', 'edit-alias'); Modified: trunk/edit-domain.php =================================================================== --- trunk/edit-domain.php 2010-03-24 12:43:51 UTC (rev 815) +++ trunk/edit-domain.php 2010-03-24 13:01:36 UTC (rev 816) @@ -114,17 +114,15 @@ } $smarty->assign ('domain', $domain); -$smarty->assign ('tDescription', htmlspecialchars($tDescription, ENT_QUOTES), false); +$smarty->assign ('tDescription', $tDescription); $smarty->assign ('tAliases', $tAliases); $smarty->assign ('tMailboxes', $tMailboxes); $smarty->assign ('tMaxquota', $tMaxquota); -$smarty->assign ('select_options', select_options ($CONF ['transport_options'], array ($tTransport)), false); +$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"'); $smarty->assign ('tMessage', $tMessage,false); $smarty->assign ('smarty_template', 'admin_edit-domain'); $smarty->display ('index.tpl'); - /* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ -?> Modified: trunk/edit-mailbox.php =================================================================== --- trunk/edit-mailbox.php 2010-03-24 12:43:51 UTC (rev 815) +++ trunk/edit-mailbox.php 2010-03-24 13:01:36 UTC (rev 816) @@ -177,9 +177,7 @@ $smarty->assign ('fUsername', $fUsername); $smarty->assign ('fPassword', $user_details ['password'], false); -//$smarty->assign ('pEdit_mailbox_username_text', $pEdit_mailbox_username_text); $smarty->assign ('pEdit_mailbox_password_text', $pEdit_mailbox_password_text, false); -//$smarty->assign ('tName', htmlspecialchars ($tName,ENT_QUOTES)); $smarty->assign ('tName', $tName, false); $smarty->assign ('pEdit_mailbox_name_text', $pEdit_mailbox_name_text,false); $smarty->assign ('tMaxquota', $tMaxquota); Modified: trunk/edit-vacation.php =================================================================== --- trunk/edit-vacation.php 2010-03-24 12:43:51 UTC (rev 815) +++ trunk/edit-vacation.php 2010-03-24 13:01:36 UTC (rev 816) @@ -209,8 +209,8 @@ $tActiveUntil = date ("Y-m-d"); $smarty->assign ('tUseremail', $tUseremail); -$smarty->assign ('tSubject', htmlentities(stripslashes($tSubject), ENT_QUOTES, 'UTF-8'),false); -$smarty->assign ('tBody', htmlentities(stripslashes($tBody), ENT_QUOTES , 'UTF-8'),false); +$smarty->assign ('tSubject', $tSubject); +$smarty->assign ('tBody', $tBody ,false); $smarty->assign ('tMessage', $tMessage, false); $smarty->assign ('tActiveFrom', date ("d.m.Y", strtotime ($tActiveFrom))); $smarty->assign ('tActiveUntil', date ("d.m.Y", strtotime ($tActiveUntil))); Modified: trunk/list-virtual.php =================================================================== --- trunk/list-virtual.php 2010-03-24 12:43:51 UTC (rev 815) +++ trunk/list-virtual.php 2010-03-24 13:01:36 UTC (rev 816) @@ -435,7 +435,7 @@ $smarty->assign ('nav_bar_alias', array ('top' => $nav_bar_alias->display_top (), 'bottom' => $nav_bar_alias->display_bottom ()), false); $smarty->assign ('nav_bar_mailbox', array ('top' => $nav_bar_mailbox->display_top (), 'bottom' => $nav_bar_mailbox->display_bottom ()), false); -$smarty->assign ('fDomain', $fDomain); +$smarty->assign ('fDomain', $fDomain, false); $smarty->assign ('list_domains', $list_domains); $smarty->assign ('limit', $limit); Modified: trunk/smarty.inc.php =================================================================== --- trunk/smarty.inc.php 2010-03-24 12:43:51 UTC (rev 815) +++ trunk/smarty.inc.php 2010-03-24 13:01:36 UTC (rev 816) @@ -22,7 +22,7 @@ * */ public function sanitise($data) { if(!is_array($data)) { - return htmlentities($data, ENT_QUOTES, 'UTF-8'); + return htmlentities($data, ENT_QUOTES, 'UTF-8', false); } if(is_array($data)) { $clean = array(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Gin...@us...> - 2010-04-19 22:26:24
|
Revision: 819 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=819&view=rev Author: GingerDog Date: 2010-04-19 22:26:18 +0000 (Mon, 19 Apr 2010) Log Message: ----------- patch from https://sourceforge.net/tracker/?func=detail&aid=2976213&group_id=191583&atid=937966 - maildir_name_hook function - allow a user specified function to be used to create the maildir path - thanks to W. Rossmann Modified Paths: -------------- trunk/config.inc.php trunk/create-mailbox.php trunk/functions.inc.php Removed Paths: ------------- trunk/ADDITIONS/postfixadmin-0.3-1.4.tar.gz Deleted: trunk/ADDITIONS/postfixadmin-0.3-1.4.tar.gz =================================================================== (Binary files differ) Modified: trunk/config.inc.php =================================================================== --- trunk/config.inc.php 2010-03-24 16:46:34 UTC (rev 818) +++ trunk/config.inc.php 2010-04-19 22:26:18 UTC (rev 819) @@ -147,6 +147,12 @@ // NO: /usr/local/virtual/domain.tld/username // Note: If $CONF['domain_path'] is set to NO, this setting will be forced to YES. $CONF['domain_in_mailbox'] = 'YES'; +// If you want to define your own function to generate a maildir path set this to the name of the function. +// Notes: +// - this configuration directive will override both domain_path and domain_in_mailbox +// - the maildir_name_hook() function example is present in functions.inc.php comments +// - if the function does not exist the program will default to the above domain_path and domain_in_mailbox settings +$CONF['maildir_name_hook'] = 'NO'; // Default Domain Values // Specify your default values below. Quota in MB. Modified: trunk/create-mailbox.php =================================================================== --- trunk/create-mailbox.php 2010-03-24 16:46:34 UTC (rev 818) +++ trunk/create-mailbox.php 2010-04-19 22:26:18 UTC (rev 819) @@ -158,7 +158,11 @@ { $password = pacrypt ($fPassword); - if ($CONF['domain_path'] == "YES") + if($CONF['maildir_name_hook'] != 'NO' && function_exists($CONF['maildir_name_hook'])) { + $hook_func = $CONF['maildir_name_hook']; + $maildir = $hook_func ($fDomain, $fUsername); + } + else if ($CONF['domain_path'] == "YES") { if ($CONF['domain_in_mailbox'] == "YES") { Modified: trunk/functions.inc.php =================================================================== --- trunk/functions.inc.php 2010-03-24 16:46:34 UTC (rev 818) +++ trunk/functions.inc.php 2010-04-19 22:26:18 UTC (rev 819) @@ -2372,7 +2372,28 @@ } } ++/* + maildir_name_hook + + Called by create-mailbox.php if $CONF['maildir_name_hook'] == 'YES' + - allows for customized maildir paths determined by a custom function + - the below example will return append a single-character directory to the + beginning of the maildir, splitting domains more or less evenly over + 36 directories for improved filesystem performance with large numbers + of domains. + + Returns: maildir path + ie. I/example.com/user/ + */ +/* +function maildir_name_hook($domain, $user) { + $chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + $dir_index = hexdec(substr(md5($domain), 28)) % strlen($chars); + $dir = substr($chars, $dir_index, 1); + return sprintf("%s/%s/%s/", $dir, $domain, $user); +} + */ $table_admin = table_by_key ('admin'); $table_alias = table_by_key ('alias'); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2010-05-17 21:32:27
|
Revision: 826 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=826&view=rev Author: christian_boltz Date: 2010-05-17 21:32:21 +0000 (Mon, 17 May 2010) Log Message: ----------- - move maildir_name_hook example function to config.inc.php - write to error_log if imap folder creation fails Modified Paths: -------------- trunk/config.inc.php trunk/functions.inc.php Modified: trunk/config.inc.php =================================================================== --- trunk/config.inc.php 2010-05-17 20:52:20 UTC (rev 825) +++ trunk/config.inc.php 2010-05-17 21:32:21 UTC (rev 826) @@ -150,10 +150,34 @@ // If you want to define your own function to generate a maildir path set this to the name of the function. // Notes: // - this configuration directive will override both domain_path and domain_in_mailbox -// - the maildir_name_hook() function example is present in functions.inc.php comments +// - the maildir_name_hook() function example is present below, commented out // - if the function does not exist the program will default to the above domain_path and domain_in_mailbox settings $CONF['maildir_name_hook'] = 'NO'; +/* + maildir_name_hook example function + + Called by create-mailbox.php if $CONF['maildir_name_hook'] == '<name_of_the_function>' + - allows for customized maildir paths determined by a custom function + - the example below will prepend a single-character directory to the + beginning of the maildir, splitting domains more or less evenly over + 36 directories for improved filesystem performance with large numbers + of domains. + + Returns: maildir path + ie. I/example.com/user/ +*/ +/* +function maildir_name_hook($domain, $user) { + $chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + + $dir_index = hexdec(substr(md5($domain), 28)) % strlen($chars); + $dir = substr($chars, $dir_index, 1); + return sprintf("%s/%s/%s/", $dir, $domain, $user); +} +*/ + + // Default Domain Values // Specify your default values below. Quota in MB. $CONF['aliases'] = '10'; Modified: trunk/functions.inc.php =================================================================== --- trunk/functions.inc.php 2010-05-17 20:52:20 UTC (rev 825) +++ trunk/functions.inc.php 2010-05-17 21:32:21 UTC (rev 826) @@ -2113,6 +2113,7 @@ $f='{'.$s_host.'}'.$s_prefix.$f; $res=imap_createmailbox($i,$f); if (!$res) { + error_log('Could not create IMAP folder $f: '.imap_last_error()); @imap_close($i); return FALSE; } @@ -2372,29 +2373,6 @@ } } -+/* - maildir_name_hook - - Called by create-mailbox.php if $CONF['maildir_name_hook'] == 'YES' - - allows for customized maildir paths determined by a custom function - - the below example will return append a single-character directory to the - beginning of the maildir, splitting domains more or less evenly over - 36 directories for improved filesystem performance with large numbers - of domains. - - Returns: maildir path - ie. I/example.com/user/ - */ -/* -function maildir_name_hook($domain, $user) { - $chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - - $dir_index = hexdec(substr(md5($domain), 28)) % strlen($chars); - $dir = substr($chars, $dir_index, 1); - return sprintf("%s/%s/%s/", $dir, $domain, $user); -} - */ - $table_admin = table_by_key ('admin'); $table_alias = table_by_key ('alias'); $table_alias_domain = table_by_key ('alias_domain'); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <va...@us...> - 2010-05-23 14:17:14
|
Revision: 831 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=831&view=rev Author: valkum Date: 2010-05-23 14:17:07 +0000 (Sun, 23 May 2010) Log Message: ----------- * Added my PostfixAdmin CLI based on PostfixAdmin 2.4 * Changed 'smpt_mail' to use php comformer hostname php_uname("n"); * Added function getRemoteAddr for db_log. If $_SERVER is not set Remote Addr should be localhost. See php-cli doc. Modified Paths: -------------- trunk/functions.inc.php trunk/languages/de.lang trunk/languages/en.lang Added Paths: ----------- trunk/scripts/ trunk/scripts/common.php trunk/scripts/inflector.php trunk/scripts/models-ext/ trunk/scripts/models-ext/AliasHandler.php trunk/scripts/models-ext/DomainHandler.php trunk/scripts/models-ext/UserHandler.php trunk/scripts/postfixadmin-cli trunk/scripts/postfixadmin-cli.php trunk/scripts/shells/ trunk/scripts/shells/alias.php trunk/scripts/shells/domain.php trunk/scripts/shells/shell.php trunk/scripts/shells/user.php Modified: trunk/functions.inc.php =================================================================== --- trunk/functions.inc.php 2010-05-18 21:12:19 UTC (rev 830) +++ trunk/functions.inc.php 2010-05-23 14:17:07 UTC (rev 831) @@ -1362,7 +1362,8 @@ global $CONF; $smtpd_server = $CONF['smtp_server']; $smtpd_port = $CONF['smtp_port']; - $smtp_server = $_SERVER["SERVER_NAME"]; + //$smtp_server = $_SERVER["SERVER_NAME"]; + $smtp_server = php_uname("n"); $errno = "0"; $errstr = "0"; $timeout = "30"; @@ -1736,12 +1737,15 @@ * Action: Logs actions from admin * Call: db_log (string username, string domain, string action, string data) * Possible actions are: + * 'create_domain' * 'create_alias' * 'create_alias_domain' * 'create_mailbox' + * 'delete_domain' * 'delete_alias' * 'delete_alias_domain' * 'delete_mailbox' + * 'edit_domain' * 'edit_alias' * 'edit_alias_state' * 'edit_alias_domain_state' @@ -1753,9 +1757,9 @@ { global $CONF; global $table_log; - $REMOTE_ADDR = $_SERVER['REMOTE_ADDR']; + $REMOTE_ADDR = getRemoteAddr(); - $action_list = array('create_alias', 'create_alias_domain', 'delete_alias', 'delete_alias_domain', 'edit_alias', 'create_mailbox', 'delete_mailbox', 'edit_mailbox', 'edit_alias_state', 'edit_alias_domain_state', 'edit_mailbox_state', 'edit_password'); + $action_list = array( 'create_domain', 'create_alias', 'create_alias_domain','delete_domain', 'delete_alias', 'delete_alias_domain','edit_domain', 'edit_alias', 'create_mailbox', 'delete_mailbox', 'edit_mailbox', 'edit_alias_state', 'edit_alias_domain_state', 'edit_mailbox_state', 'edit_password'); if(!in_array($action, $action_list)) { die("Invalid log action : $action"); // could do with something better? @@ -2350,6 +2354,12 @@ } +function getRemoteAddr() { + $REMOTE_ADDR = 'localhost'; + if (isset($_SERVER['REMOTE_ADDR'])) + $REMOTE_ADDR = $_SERVER['REMOTE_ADDR']; + return $REMOTE_ADDR; +} Modified: trunk/languages/de.lang =================================================================== --- trunk/languages/de.lang 2010-05-18 21:12:19 UTC (rev 830) +++ trunk/languages/de.lang 2010-05-23 14:17:07 UTC (rev 831) @@ -194,6 +194,9 @@ $PALANG['pViewlog_action'] = 'Aktion'; $PALANG['pViewlog_data'] = 'Daten'; +$PALANG['pViewlog_action_create_domain'] = 'Domain erstellen'; +$PALANG['pViewlog_action_edit_domain'] = 'Domain bearbeiten'; +$PALANG['pViewlog_action_delete_domain'] = 'Domain löschen'; $PALANG['pViewlog_action_create_mailbox'] = 'Mailbox erstellen'; $PALANG['pViewlog_action_delete_mailbox'] = 'Mailbox löschen'; $PALANG['pViewlog_action_edit_mailbox'] = 'Mailbox bearbeiten'; Modified: trunk/languages/en.lang =================================================================== --- trunk/languages/en.lang 2010-05-18 21:12:19 UTC (rev 830) +++ trunk/languages/en.lang 2010-05-23 14:17:07 UTC (rev 831) @@ -196,6 +196,9 @@ $PALANG['pViewlog_action'] = 'Action'; $PALANG['pViewlog_data'] = 'Data'; +$PALANG['pViewlog_action_create_domain'] = 'create domain'; +$PALANG['pViewlog_action_delete_domain'] = 'delete domain'; +$PALANG['pViewlog_action_edit_domain'] = 'edit domain'; $PALANG['pViewlog_action_create_mailbox'] = 'create mailbox'; $PALANG['pViewlog_action_delete_mailbox'] = 'delete mailbox'; $PALANG['pViewlog_action_edit_mailbox'] = 'edit mailbox'; Added: trunk/scripts/common.php =================================================================== --- trunk/scripts/common.php (rev 0) +++ trunk/scripts/common.php 2010-05-23 14:17:07 UTC (rev 831) @@ -0,0 +1,389 @@ +<?php +/** + * Postfix Admin + * + * LICENSE + * This source file is subject to the GPL license that is bundled with + * this package in the file LICENSE.TXT. + * + * Further details on the project are available at : + * http://www.postfixadmin.com or http://postfixadmin.sf.net + * + * @version $Id: common.php 733 2009-10-20 19:25:20Z christian_boltz $ + * @license GNU GPL v2 or later. + * + * File: common.php + * All pages should include this file - which itself sets up the necessary + * environment and ensures other functions are loaded. + */ + + + +$incpath = PATH; +(ini_get('magic_quotes_gpc') ? ini_set('magic_quotes_runtime', '0') : '1'); +(ini_get('magic_quotes_gpc') ? ini_set('magic_quotes_sybase', '0') : '1'); + +if(ini_get('register_globals') == 'on') { + die("Please turn off register_globals; edit your php.ini"); +} +require_once("$incpath/variables.inc.php"); +/* +if(!is_file("$incpath/config.inc.php")) { + die("config.inc.php is missing!"); +} +require_once("$incpath/config.inc.php"); +*/ +if(isset($CONF['configured'])) { + if($CONF['configured'] == FALSE) { + die("Please edit config.inc.php - change \$CONF['configured'] to true after setting your database settings"); + } +} + +/* +require_once("$incpath/languages/language.php"); +require_once("$incpath/functions.inc.php"); +require_once("$incpath/languages/en.lang"); +*/ +/** + * @param string $class + * __autoload implementation, for use with spl_autoload_register(). + */ +function postfixadmin_autoload2($class) { + $PATH = CORE_INCLUDE_PATH.'/models-ext/' . $class . '.php'; + + if(is_file($PATH)) { + require_once($PATH); + return true; + } + return false; +} +spl_autoload_register('postfixadmin_autoload2'); + + + + +/** + * Convenience method for strtolower(). + * + * @param string $str String to lowercase + * @return string Lowercased string + */ + function low($str) { + return strtolower($str); + } +/** + * Convenience method for strtoupper(). + * + * @param string $str String to uppercase + * @return string Uppercased string + */ + function up($str) { + return strtoupper($str); + } +/** + * Convenience method for str_replace(). + * + * @param string $search String to be replaced + * @param string $replace String to insert + * @param string $subject String to search + * @return string Replaced string + */ + function r($search, $replace, $subject) { + return str_replace($search, $replace, $subject); + } +/** + * Print_r convenience function, which prints out <PRE> tags around + * the output of given array. Similar to debug(). + * + * @see debug() + * @param array $var Variable to print out + * @param boolean $showFrom If set to true, the method prints from where the function was called + */ + function pr($var) { + if (Configure::read() > 0) { + echo "<pre>"; + print_r($var); + echo "</pre>"; + } + } + + + + +class Config { +/** + * Determine if $__objects cache should be wrote + * + * @var boolean + * @access private + */ + var $__cache = false; +/** + * Holds and key => value array of objects type + * + * @var array + * @access private + */ + var $__objects = array(); + +/** + * Return a singleton instance of Configure. + * + * @return Configure instance + * @access public + */ + + function &getInstance() { + static $instance = array(); + if (!$instance) { + $instance[0] =& new Config(); + //$instance[0]->__loadBootstrap($boot); + } + return $instance[0]; + } +/** + * Used to write a dynamic var in the Configure instance. + * + * Usage + * Configure::write('One.key1', 'value of the Configure::One[key1]'); + * Configure::write(array('One.key1' => 'value of the Configure::One[key1]')); + * Configure::write('One', array('key1'=>'value of the Configure::One[key1]', 'key2'=>'value of the Configure::One[key2]'); + * Configure::write(array('One.key1' => 'value of the Configure::One[key1]', 'One.key2' => 'value of the Configure::One[key2]')); + * + * @param array $config Name of var to write + * @param mixed $value Value to set for var + * @return void + * @access public + */ + function write($config, $value = null) { + $_this =& Config::getInstance(); + + if (!is_array($config)) { + $config = array($config => $value); + } + + foreach ($config as $names => $value) { + $name = $_this->__configVarNames($names); + + switch (count($name)) { + case 3: + $_this->{$name[0]}[$name[1]][$name[2]] = $value; + break; + case 2: + $_this->{$name[0]}[$name[1]] = $value; + break; + case 1: + $_this->{$name[0]} = $value; + break; + } + } + + } + +/** + * Used to read Configure::$var + * + * Usage + * Configure::read('Name'); will return all values for Name + * Configure::read('Name.key'); will return only the value of Configure::Name[key] + * + * @param string $var Variable to obtain + * @return string value of Configure::$var + * @access public + */ + function read($var) { + $_this =& Config::getInstance(); + + if ($var === 'all') { + $return = array(); + foreach ($_this AS $key =>$var) { + $return[$key] = $var; + } + return $return; + } + + $name = $_this->__configVarNames($var); + + switch (count($name)) { + case 3: + if (isset($_this->{$name[0]}[$name[1]][$name[2]])) { + return $_this->{$name[0]}[$name[1]][$name[2]]; + } + break; + case 2: + if (isset($_this->{$name[0]}[$name[1]])) { + return $_this->{$name[0]}[$name[1]]; + } + break; + case 1: + if (isset($_this->{$name[0]})) { + return $_this->{$name[0]}; + } + break; + } + return null; + } + + + function getAll() { + $output = $this->config; + return $output; + } +/** + * Checks $name for dot notation to create dynamic Configure::$var as an array when needed. + * + * @param mixed $name Name to split + * @return array Name separated in items through dot notation + * @access private + */ + function __configVarNames($name) { + if (is_string($name)) { + if (strpos($name, ".")) { + return explode(".", $name); + } + return array($name); + } + return $name; + } + +} + +class Lang { +/** + * Determine if $__objects cache should be wrote + * + * @var boolean + * @access private + */ + var $__cache = false; +/** + * Holds and key => value array of objects type + * + * @var array + * @access private + */ + var $__objects = array(); + +/** + * Return a singleton instance of Configure. + * + * @return Configure instance + * @access public + */ + + function &getInstance() { + static $instance = array(); + if (!$instance) { + $instance[0] =& new Config(); + //$instance[0]->__loadBootstrap($boot); + } + return $instance[0]; + } +/** + * Used to write a dynamic var in the Configure instance. + * + * Usage + * Configure::write('One.key1', 'value of the Configure::One[key1]'); + * Configure::write(array('One.key1' => 'value of the Configure::One[key1]')); + * Configure::write('One', array('key1'=>'value of the Configure::One[key1]', 'key2'=>'value of the Configure::One[key2]'); + * Configure::write(array('One.key1' => 'value of the Configure::One[key1]', 'One.key2' => 'value of the Configure::One[key2]')); + * + * @param array $config Name of var to write + * @param mixed $value Value to set for var + * @return void + * @access public + */ + function write($config, $value = null) { + $_this =& Config::getInstance(); + + if (!is_array($config)) { + $config = array($config => $value); + } + + foreach ($config as $names => $value) { + $name = $_this->__configVarNames($names); + + switch (count($name)) { + case 3: + $_this->{$name[0]}[$name[1]][$name[2]] = $value; + break; + case 2: + $_this->{$name[0]}[$name[1]] = $value; + break; + case 1: + $_this->{$name[0]} = $value; + break; + } + } + + } + +/** + * Used to read Configure::$var + * + * Usage + * Configure::read('Name'); will return all values for Name + * Configure::read('Name.key'); will return only the value of Configure::Name[key] + * + * @param string $var Variable to obtain + * @return string value of Configure::$var + * @access public + */ + function read($var) { + $_this =& Config::getInstance(); + + if ($var === 'all') { + $return = array(); + foreach ($_this AS $key =>$var) { + $return[$key] = $var; + } + return $return; + } + + $name = $_this->__configVarNames($var); + + switch (count($name)) { + case 3: + if (isset($_this->{$name[0]}[$name[1]][$name[2]])) { + return $_this->{$name[0]}[$name[1]][$name[2]]; + } + break; + case 2: + if (isset($_this->{$name[0]}[$name[1]])) { + return $_this->{$name[0]}[$name[1]]; + } + break; + case 1: + if (isset($_this->{$name[0]})) { + return $_this->{$name[0]}; + } + break; + } + return null; + } + + + function getAll() { + $output = $this->config; + return $output; + } +/** + * Checks $name for dot notation to create dynamic Configure::$var as an array when needed. + * + * @param mixed $name Name to split + * @return array Name separated in items through dot notation + * @access private + */ + function __configVarNames($name) { + if (is_string($name)) { + if (strpos($name, ".")) { + return explode(".", $name); + } + return array($name); + } + return $name; + } + +} + +/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ Added: trunk/scripts/inflector.php =================================================================== --- trunk/scripts/inflector.php (rev 0) +++ trunk/scripts/inflector.php 2010-05-23 14:17:07 UTC (rev 831) @@ -0,0 +1,151 @@ +<?php +/** + * -. + * + * Used by Cake's naming conventions throughout the framework. + * + * PHP versions 4 and 5 + * + * CakePHP(tm) : Rapid Development Framework <http://www.cakephp.org/> + * Copyright 2005-2008, Cake Software Foundation, Inc. + * 1785 E. Sahara Avenue, Suite 490-204 + * Las Vegas, Nevada 89104 + * Modified for Postfixadmin by Valkum + * + * Copyright 2010 + * + * Licensed under The MIT License + * Redistributions of files must retain the above copyright notice. + * + * @filesource + * @copyright Copyright 2005-2008, Cake Software Foundation, Inc. + * @link http://postfixadmin.sourceforge.net/ Postfixadmin on Sourceforge + * @package postfixadmin + * @subpackage - + * @since - + * @version $Revision$ + * @modifiedby $LastChangedBy$ + * @lastmodified $Date$ + * @license http://www.opensource.org/licenses/mit-license.php The MIT License + */ +class Inflector { +/** + * Returns given $lower_case_and_underscored_word as a CamelCased word. + * + * @param string $lower_case_and_underscored_word Word to camelize + * @return string Camelized word. LikeThis. + * @access public + * @static + */ + function camelize($lowerCaseAndUnderscoredWord) { + $replace = str_replace(" ", "", ucwords(str_replace("_", " ", $lowerCaseAndUnderscoredWord))); + return $replace; + } +/** + * Returns an underscore-syntaxed ($like_this_dear_reader) version of the $camel_cased_word. + * + * @param string $camel_cased_word Camel-cased word to be "underscorized" + * @return string Underscore-syntaxed version of the $camel_cased_word + * @access public + * @static + */ + function underscore($camelCasedWord) { + $replace = strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $camelCasedWord)); + return $replace; + } +/** + * Returns a human-readable string from $lower_case_and_underscored_word, + * by replacing underscores with a space, and by upper-casing the initial characters. + * + * @param string $lower_case_and_underscored_word String to be made more readable + * @return string Human-readable string + * @access public + * @static + */ + function humanize($lowerCaseAndUnderscoredWord) { + $replace = ucwords(str_replace("_", " ", $lowerCaseAndUnderscoredWord)); + return $replace; + } +/** + * Returns corresponding table name for given $class_name. ("posts" for the model class "Post"). + * + * @param string $class_name Name of class to get database table name for + * @return string Name of the database table for given class + * @access public + * @static + */ + function tableize($className) { + $replace = Inflector::pluralize(Inflector::underscore($className)); + return $replace; + } +/** + * Returns Cake model class name ("Post" for the database table "posts".) for given database table. + * + * @param string $tableName Name of database table to get class name for + * @return string Class name + * @access public + * @static + */ + function classify($tableName) { + $replace = Inflector::camelize(Inflector::singularize($tableName)); + return $replace; + } +/** + * Returns camelBacked version of a string. + * + * @param string $string + * @return string in variable form + * @access public + * @static + */ + function variable($string) { + $string = Inflector::camelize(Inflector::underscore($string)); + $replace = strtolower(substr($string, 0, 1)); + $variable = preg_replace('/\\w/', $replace, $string, 1); + return $variable; + } +/** + * Returns a string with all spaces converted to $replacement and non word characters removed. + * + * @param string $string + * @param string $replacement + * @return string + * @access public + * @static + */ + function slug($string, $replacement = '_') { + if (!class_exists('String')) { + require LIBS . 'string.php'; + } + $map = array( + '/à|á|å|â/' => 'a', + '/è|é|ê|ẽ|ë/' => 'e', + '/ì|í|î/' => 'i', + '/ò|ó|ô|ø/' => 'o', + '/ù|ú|ů|û/' => 'u', + '/ç/' => 'c', + '/ñ/' => 'n', + '/ä|æ/' => 'ae', + '/ö/' => 'oe', + '/ü/' => 'ue', + '/Ä/' => 'Ae', + '/Ü/' => 'Ue', + '/Ö/' => 'Oe', + '/ß/' => 'ss', + '/[^\w\s]/' => ' ', + '/\\s+/' => $replacement, + String::insert('/^[:replacement]+|[:replacement]+$/', array('replacement' => preg_quote($replacement, '/'))) => '', + ); + $string = preg_replace(array_keys($map), array_values($map), $string); + return $string; + } +} +/** + * Enclose a string for preg matching. + * + * @param string $string String to enclose + * @return string Enclosed string + */ + function __enclose($string) { + return '(?:' . $string . ')'; + } Added: trunk/scripts/models-ext/AliasHandler.php =================================================================== --- trunk/scripts/models-ext/AliasHandler.php (rev 0) +++ trunk/scripts/models-ext/AliasHandler.php 2010-05-23 14:17:07 UTC (rev 831) @@ -0,0 +1,189 @@ +<?php + +/** + * Handlers User level alias actions - e.g. add alias, get aliases, update etc. + */ +class AliasHandler { + + private $username = null; + + /** + * @param string $username + */ + public function __construct($username) { + $this->username = $username; + } + + /** + * @return array - list of email addresses the user's mail is forwarded to. + * (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); + $table_alias = table_by_key('alias'); + + $sql = "SELECT * FROM $table_alias WHERE address='$username'"; + $result = db_query($sql); + if($result['rows'] == 1) { + $row = db_array ($result['result']); + // At the moment Postfixadmin stores aliases in it's database in a comma seperated list; this may change one day. + $list = explode(',', $row['goto']); + if($all) { + return $list; + } + + $new_list = array(); + /* if !$all, remove vacation & mailbox aliases */ + foreach($list as $address) { + if($address != '' ) { + if($this->is_vacation_address($address) || $this->is_mailbox_alias($address)) { + } + else { + $new_list[] = $address; + } + } + } + $list = $new_list; + return $list; + } + return array(); + } + + /** + * @param string $address + * @param string $username + * @return boolean true if the username is an alias for the mailbox AND we have alias_control turned off. + */ + public function is_mailbox_alias($address) { + global $CONF; + $username = $this->username; + if($address == $username) { + return true; + } + return false; + } + + /** + * @param string $address + * @return boolean true if the address contains the vacation domain + */ + public function is_vacation_address($address) { + global $CONF; + if($CONF['vacation'] == 'YES') { + if(stripos($address, '@' . $CONF['vacation_domain'])) { + return true; + } + } + return false; + } + /** + * @return boolean true on success + * @param string $username + * @param array $addresses - list of aliases to set for the user. + * @param string flags - forward_and_store or remote_only or '' + * @param boolean $vacation_persist - set to false to stop the vacation address persisting across updates + * Set the user's aliases to those provided. If $addresses ends up being empty the alias record is removed. + */ + public function update($addresses, $flags = '', $vacation_persist=true) { + // find out if the user is on vacation or not; if they are, + // then the vacation alias needs adding to the db (as we strip it out in the get method) + // likewise with the alias_control address. + + $valid_flags = array('', 'forward_and_store', 'remote_only'); + if(!in_array($flags, $valid_flags)) { + die("Invalid flag passed into update()... : $flag - valid options are :" . implode(',', $valid_flags)); + } + $addresses = array_unique($addresses); + + $original = $this->get(true); + $tmp = preg_split('/@/', $this->username); + $domain = $tmp[1]; + + foreach($original as $address) { + if($vacation_persist) { + if($this->is_vacation_address($address)) { + $addresses[] = $address; + } + } + if($flags != 'remote_only') { + if($this->is_mailbox_alias($address)) { + $addresses[] = $address; + } + } + } + $addresses = array_unique($addresses); + + $new_list = array(); + if($flags == 'remote_only') { + foreach($addresses as $address) { + // strip out our username... if it's in the list given. + if($address != $this->username) { + $new_list[] = $address; + } + } + $addresses = $new_list; + } + + if($flags == 'forward_and_store') { + if(!in_array($this->username, $addresses)) { + $addresses[] = $this->username; + } + } + $new_list = array(); + foreach($addresses as $address) { + if($address != '') { + $new_list[] = $address; + } + } + $addresses = array_unique($new_list); + $username = escape_string($this->username); + $goto = escape_string(implode(',', $addresses)); + $table_alias = table_by_key('alias'); + if(sizeof($addresses) == 0) { + $sql = "DELETE FROM $table_alias WHERE address = '$username'"; + } + if($this->hasAliasRecord() == false) { + $true = db_get_boolean(True); + $sql = "INSERT INTO $table_alias (address, goto, domain, created, modified, active) VALUES ('$username', '$goto', '$domain', NOW(), NOW(), '$true')"; + } + else { + $sql = "UPDATE $table_alias SET goto = '$goto', modified = NOW() WHERE address = '$username'"; + } + $result = db_query($sql); + if($result['rows'] != 1) { + return false; + } + db_log($username, $domain, 'edit_alias', "$username -> $goto"); + return true; + } + + /** + * Determine whether a local delivery address is present. This is + * stores as an alias with the same name as the mailbox name (username) + * @return boolean true if local delivery is enabled + */ + public function hasStoreAndForward() { + $aliases = $this->get(true); + if(in_array($this->username, $aliases)) { + return true; + } + return false; + } + + /** + * @return boolean true if the user has an alias record (i.e row in alias table); else false. + */ + public function hasAliasRecord() { + $username = escape_string($this->username); + $table_alias = table_by_key('alias'); + $sql = "SELECT * FROM $table_alias WHERE address = '$username'"; + $result = db_query($sql); + if($result['rows'] == 1) { + return true; + } + return false; + } +} + +/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ Added: trunk/scripts/models-ext/DomainHandler.php =================================================================== --- trunk/scripts/models-ext/DomainHandler.php (rev 0) +++ trunk/scripts/models-ext/DomainHandler.php 2010-05-23 14:17:07 UTC (rev 831) @@ -0,0 +1,78 @@ +<?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){ + + $table_domain = table_by_key('domain'); + $table_alias = table_by_key('alias'); + + + ($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($table_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 ($table_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; + } +} + +/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ Added: trunk/scripts/models-ext/UserHandler.php =================================================================== --- trunk/scripts/models-ext/UserHandler.php (rev 0) +++ trunk/scripts/models-ext/UserHandler.php 2010-05-23 14:17:07 UTC (rev 831) @@ -0,0 +1,308 @@ +<?php + +/** + * Simple class to represent a user. + */ +class UserHandler { + + protected $username = null; + + public $errormsg = array(); + + public function __construct($username) { + $this->username = strtolower($username); + + + } + + /** + * @return boolean true on success; false on failure + * @param string $username + * @param string $old_password + * @param string $new_passwords + * + * 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) { + global $config; + $username = $this->username; + $tmp = preg_split ('/@/', $username); + $domain = $tmp[1]; + + $username = escape_string($username); + $table_mailbox = table_by_key('mailbox'); + + $new_db_password = escape_string(pacrypt($new_password)); + + 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']) { + $this->errormsg[] = 'Passwords do not Match'; + return 1; + } + } + + $set = array( + 'password' => $new_db_password + ); + + $result = db_update('mailbox', 'username=\''.$username.'\'', $set, array('modified') ); + + db_log ('CONSOLE', $domain, 'edit_password', "$username"); + if ($result != 1) { + $this->errormsg[] = Lang::read('pEdit_mailbox_result_error'); + return 1; + } + + return 0; + + } + + /** + * 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) { + global $config; + $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 = 0, $active = true, $mail = true ) { + global $config; + $username = $this->username; + $tmp = preg_split ('/@/', $username); + $domain = $tmp[1]; + $address = escape_string($username); + $username = $tmp[0]; + + $table_mailbox = table_by_key('mailbox'); + $table_alias = table_by_key('alias'); + + $active = db_get_boolean($active); + + if(!check_mailbox ($domain)) { + $this->errormsg[] = Lang::read('pCreate_mailbox_username_text_error3'); + return 1; + } + $result = db_query ("SELECT * FROM $table_alias WHERE address='$address'"); + if ($result['rows'] == 1){ + $this->errormsg[] = Lang::read('pCreate_mailbox_username_text_error2'); + return 1; + } + + + $plain = $password; + $password = pacrypt ($password); + + if ( preg_match("/^dovecot:/", Config::read('encrypt')) ) { + $split_method = preg_split ('/:/', Config::read('encrypt')); + $method = strtoupper($split_method[1]); + $password = '{' . $method . '}' . $password; + } + + if (Config::read('domain_path') == "YES") + { + if (Config::read('domain_in_mailbox') == "YES") + { + $maildir = $domain . "/" . $address . "/"; + } + else + { + $maildir = $domain . "/" . $username . "/"; + } + } + else + { + $maildir = $address . "/"; + } + + $quota = multiply_quota ($quota); + + + if ('pgsql'== Config::read('database_type')) + { + db_query('BEGIN'); + } + + //$result = db_query ("INSERT INTO $table_alias (address,goto,domain,created,modified,active) VALUES ('$address','$address','$domain',NOW(),NOW(),'$active')"); + $arr = array( + 'address' => $address, + 'goto' => $address, + 'domain' => $domain, + 'active' => $active, + ); + + $result = db_insert($table_alias, $arr, array('created', 'modified') ); + if ($result != 1) + { + $this->errormsg[] = Lang::read('pAlias_result_error') . "\n($address -> $address)\n"; + return 1; + } + + // apparently uppercase usernames really confuse some IMAP clients. + $local_part = ''; + if(preg_match('/^(.*)@/', $address, $matches)) { + $local_part = $matches[1]; + } + + //$result = db_query ("INSERT INTO $table_mailbox (username,password,name,maildir,local_part,quota,domain,created,modified,active) VALUES ('$username','$password','$name','$maildir','$local_part','$quota','$domain',NOW(),NOW(),'$active')"); + + + $arr2 = array( + 'username' => $address, + 'password' => $password, + 'name' => $name, + 'maildir' => $maildir, + 'local_part' => $local_part, + 'quota' => $quota, + 'domain' => $domain, + 'active' => $active, + ); + $result = db_insert($table_mailbox, $arr2, array('created', 'modified') ); + if ($result != 1 || !mailbox_postcreation($address,$domain,$maildir, $quota)) + { + $this->errormsg[] = Lang::read('pCreate_mailbox_result_error') . "\n($address)\n"; + db_query('ROLLBACK'); + return 1; + } + else + { + db_query('COMMIT'); + db_log ('CONSOLE', $domain, 'create_mailbox', "$address"); + + + if ($mail == true) + { + $fTo = $address; + $fFrom = Config::read('admin_email'); + $fHeaders = "To: " . $fTo . "\n"; + $fHeaders .= "From: " . $fFrom . "\n"; + + $fHeaders .= "Subject: " . encode_header (Lang::read('pSendmail_subject_text')) . "\n"; + $fHeaders .= "MIME-Version: 1.0\n"; + $fHeaders .= "Content-Type: text/plain; charset=utf-8\n"; + $fHeaders .= "Content-Transfer-Encoding: 8bit\n"; + + $fHeaders .= Config::read('welcome_text'); + + if (!smtp_mail ($fTo, $fFrom, $fHeaders)) + { + $this->errormsg[] = Lang::read('pSendmail_result_error'); + return 1; + } + } + + create_mailbox_subfolders($address,$plain); + + } + return 0; + } + + + + + public function view() { + global $config; + + + + $username = $this->username; + $table_mailbox = table_by_key('mailbox'); + + $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 0; + } + $this->errormsg = $result['error']; + return 1; + } + + public function delete() { + global $config; + $username = $this->username; + $tmp = preg_split ('/@/', $username); + $domain = $tmp[1]; + $username = escape_string($username); + + + + $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'); + + if (Config::read('database_type') == "pgsql") db_query('BEGIN'); + /* there may be no aliases to delete */ + $result = db_query("SELECT * FROM $table_alias WHERE address = '$username' AND domain = '$domain'"); + if($result['rows'] == 1) { + //$result = db_query ("DELETE FROM $table_alias WHERE address='$username' AND domain='$domain'"); + $result = db_delete($table_alias, 'address', $username); + db_log ('CONSOLE', $domain, 'delete_alias', $username); + } + + /* 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='$username' AND domain='$domain'"); + if ($result['rows'] == 1) + { + //$result = db_query ("DELETE FROM $table_mailbox WHERE username='$username' AND domain='$domain'"); + $result = db_delete($table_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) + { + $tMessage.='mailbox'; + if (!$postdel_res) $tMessage.=', '; + } + if (!$postdel_res) + { + $tMessage.='post-deletion'; + } + $this->errormsg[] = $tMessage.')'; + return 1; + } + db_log ('CONSOLE', $domain, 'delete_mailbox', $username); + } + $result = db_query("SELECT * FROM $table_vacation WHERE email = '$username' AND domain = '$domain'"); + if($result['rows'] == 1) { + //db_query ("DELETE FROM $table_vacation WHERE email='$username' AND domain='$domain'"); + db_delete($table_vacation, 'email', $username); + //db_query ("DELETE FROM $table_vacation_notification WHERE on_vacation ='$username' "); /* should be caught by cascade, if PgSQL */ + db_delete($table_vacation_notification, 'on_vacation', $username); + } + return 0; + } + +} + +/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ Added: trunk/scripts/postfixadmin-cli =================================================================== --- trunk/scripts/postfixadmin-cli (rev 0) +++ trunk/scripts/postfixadmin-cli 2010-05-23 14:17:07 UTC (rev 831) @@ -0,0 +1,31 @@ +#!/bin/bash +################################################################################ +# +# Bake is a shell script for running CakePHP bake script +# PHP versions 4 and 5 +# +# CakePHP(tm) : Rapid Development Framework (http://www.cakephp.org) +# Copyright 2005-2007, Cake Software Foundation, Inc. +# +# Licensed under The MIT License +# Redistributions of files must retain the above copyright notice. +# +# @filesource +# @copyright Copyright 2005-2007, Cake Software Foundation, Inc. +# @link http://www.cakefoundation.org/projects/info/cakephp CakePHP(tm) Project +# @package cake +# @subpackage cake.cake.console +# @since CakePHP(tm) v 1.2.0.5012 +# @version $Revision$ +# @modifiedby $LastChangedBy$ +# @lastmodified $Date$ +# @license http://www.opensource.org/licenses/mit-license.php The MIT License +# +################################################################################ +clear + +LIB=${0/%postfixadmin-cli/} + +exec php -q ${LIB}postfixadmin-cli.php "$@" + +exit; \ No newline at end of file Added: trunk/scripts/postfixadmin-cli.php =================================================================== --- trunk/scripts/postfixadmin-cli.php (rev 0) +++ trunk/scripts/postfixadmin-cli.php 2010-05-23 14:17:07 UTC (rev 831) @@ -0,0 +1,580 @@ +#!/usr/bin/php +<?php +/** + * Command-line code generation utility to automate administrator tasks. + * + * Shell dispatcher class + * + * PHP versions 4 and 5 + * + * CakePHP(tm) : Rapid Development Framework <http://www.cakephp.org/> + * Copyright 2005-2008, Cake Software Foundation, Inc. + * 1785 E. Sahara Avenue, Suite 490-204 + * Las Vegas, Nevada 89104 + * Modified for Postfixadmin by Valkum + * + * Copyright 2010 + * + * Licensed under The MIT License + * Redistributions of files must retain the above copyright notice. + * + * @filesource + * @copyright Copyright 2005-2008, Cake Software Foundation, Inc. + * @link http://postfixadmin.sourceforge.net/ Postfixadmin on Sourceforge + * @package postfixadmin + * @subpackage - + * @since - + * @version $Revision$ + * @modifiedby $LastChangedBy$ + * @lastmodified $Date$ + * @license http://www.opensource.org/licenses/mit-license.php The MIT License + */ + + +class PostfixAdmin { +/** + * Version + * + * @var string + * @access protected + */ + var $version ='0.2'; + +/** + * Standard input stream. + * + * @var filehandle + * @access public + */ + var $stdin; +/** + * Standard output stream. + * + * @var filehandle + * @access public + */ + var $stdout; +/** + * Standard error stream. + * + * @var filehandle + * @access public + */ + var $stderr; +/** + * Contains command switches parsed from the command line. + * + * @var array + * @access public + */ + var $params = array(); +/** + * Contains arguments parsed from the command line. + * + * @var array + * @access public + */ + var $args = array(); +/** + * The file name of the shell that was invoked. + * + * @var string + * @access public + */ + var $shell = null; +/** + * The class name of the shell that was invoked. + * + * @var string + * @access public + */ + var $shellClass = null; +/** + * The command called if public methods are available. + * + * @var string + * @access public + */ + var $shellCommand = null; +/** + * The path locations of shells. + * + * @var array + * @access public + */ + var $shellPaths = array(); +/** + * The path to the current shell location. + * + * @var string + * @access public + */ + var $shellPath = null; +/** + * The name of the shell in camelized. + * + * @var string + * @access public + */ + var $shellName = null; +/** + * Constructs this ShellDispatcher instance. + * + * @param array $args the argv. + */ + function PostfixAdmin($args = array()) { + $this->__construct($args); + } +/** + * Constructor + * + * @param array $args the argv. + */ + function __construct($args = array()) { + set_time_limit(0); + $this->__initConstants(); + $this->parseParams($args); + $this->__initEnvironment(); + /*$this->dispatch(); + die("\n");*/ + } +/** + * Defines core configuration. + * + * @access private + */ + function __initConstants() { + if (function_exists('ini_set')) { + ini_set('display_errors', '1'); + ini_set('error_reporting', E_ALL); + ini_set('html_errors', false); + ini_set('implicit_flush', true); + ini_set('max_execution_time', 0); + } + + define('DS', DIRECTORY_SEPARATOR); + define('PHP5', (PHP_VERSION >= 5)); + define('CORE_INCLUDE_PATH', dirname(__FILE__)); + define('CORE_PATH', substr(CORE_INCLUDE_PATH, 0, -8) ); + + if(!defined('POSTFIXADMIN')) { # already defined if called from setup.php + define('POSTFIXADMIN', 1); # checked in included files + } + + + } +/** + * Defines current working environment. + * + * @access private + */ + function __initEnvironment() { + $this->stdin = fopen('php://stdin', 'r'); + $this->stdout = fopen('php://stdout', 'w'); + $this->stderr = fopen('php://stderr', 'w'); + + if (!$this->__bootstrap()) { + $this->stderr(""); + $this->stderr("Unable to load."); + $this->stderr("\tMake sure /config.inc.php exists in " . PATH); + exit(); + } + + + if (basename(__FILE__) != basename($this->args[0])) { + $this->stderr("\nCakePHP Console: "); + $this->stderr('Warning: the dispatcher may have been loaded incorrectly, which could lead to unexpected results...'); + if ($this->getInput('Continue anyway?', array('y', 'n'), 'y') == 'n') { + exit(); + } + } + + $this->shiftArgs(); + + + + } +/** + * Initializes the environment and loads the Cake core. + * + * @return boolean Success. + * @access private + */ + function __bootstrap() { + if ($this->params['webroot'] != '' ) { + define('PATH', $this->params['webroot'] ); + } else { + define('PATH', CORE_PATH); + } + if (!file_exists(PATH)) { + $this->stderr( PATH . " don't exists"); + return false; + + } + $includes = array( + PATH.'/config.inc.php', + PATH.'/languages/language.php', + PATH.'/functions.inc.php', + PATH.'/languages/en.lang', + CORE_INCLUDE_PATH.'/common.php', + CORE_INCLUDE_PATH.'/inflector.php', + ); + + foreach ($includes as $inc) { + if (!require_once($inc)) { + $this->stderr("Failed to load {$inc}"); + return false; + } + } + Config::getInstance(); + Config::write($CONF); + + Lang::getInstance(); + Lang::write($PALANG); + + return true; + } + +/** + * Dispatches a CLI request + * + * @access public + */ + function dispatch() { + $CONF = Config::read('all'); + if (isset($this->args[0])) { + $plugin = null; + $shell = $this->args[0]; + if (strpos($shell, '.') !== false) { + list($plugin, $shell) = explode('.', $this->args[0]); + } + + $this->shell = $shell; + $this->shiftArgs(); + $this->shellName = Inflector::camelize($this->shell); + $this->shellClass = 'PostfixAdmin'.$this->shellName; + + + if ($this->shell == 'help') { + $this->help(); + } else { + $loaded = false; + $paths = array(); + + if ($plugin !== null) { + $pluginPaths = Config::read('pluginPaths'); + $count = count($pluginPaths); + for ($i = 0; $i < $count; $i++) { + $paths[] = $pluginPaths[$i] . $plugin . DS . 'vendors' . DS . 'shells' . DS; + } + } + + + $paths[] = CORE_INCLUDE_PATH . DS . "shells" . DS; + + $this->shellPaths = $paths; + foreach ($this->shellPaths as $path) { + $this->shellPath = $path . $this->shell . ".php"; + if (file_exists($this->shellPath)) { + $loaded = true; + break; + } + } + if ($loaded) { + if (!class_exists('Shell')) { + require CORE_INCLUDE_PATH . DS . "shells" . DS . 'shell.php'; + } + + require $this->shellPath; + if (class_exists($this->shellClass)) { + $command = null; + if (isset($this->args[0])) { + $command = $this->args[0]; + } + $this->shellCommand = $command; + $shell = new $this->shellClass($this); + + if (strtolower(get_parent_class($shell)) == 'shell') { + $shell->initialize(); + $shell->loadTasks(); + + foreach ($shell->taskNames as $task) { + if (strtolower(get_parent_class($shell)) == 'shell') { + $shell->{$task}->initialize(); + $shell->{$task}->loadTasks(); + } + } + + $task = Inflector::camelize($command); + if (in_array($task, $shell->taskNames)) { + $this->shiftArgs(); + $shell->{$task}->startup(); + if (isset($this->args[0]) && $this->args[0] == 'help') { + if (method_exists($shell->{$task}, 'help')) { + $shell->{$task}->help(); + exit(); + } else { + $this->help(); + } + } + $shell->{$task}->execute(); + return; + } + } + + $classMethods = get_class_methods($shell); + + $privateMethod = $missingCommand = false; + if ((in_array($command, $classMethods) || in_array(strtolower($command), $classMethods)) && strpos($command, '_', 0) === 0) { + $privateMethod = true; + } + + if (!in_array($command, $classMethods) && !in_array(strtolower($command), $classMethods)) { + $missingCommand = true; + } + + $protectedCommands = array( + 'initialize','in','out','err','hr', + 'createfile', 'isdir','copydir','object','tostring', + 'requestaction','log','cakeerror', 'shelldispatcher', + '__initconstants','__initenvironment','__construct', + 'dispatch','__bootstrap','getinput','stdout','stderr','parseparams','shiftargs' + ); + + if (in_array(strtolower($command), $protectedCommands)) { + $missingCommand = true; + } + + if ($missingCommand && method_exists($shell, 'main')) { + $shell->startup(); + $shell->main(); + } elseif (!$privateMethod && method_exists($shell, $command)) { + $this->shiftArgs(); + $shell->startup(); + $shell->{$command}(); + } else { + $this->stderr("Unknown {$this->shellName} command '$command'.\nFor usage, try 'cake {$this->shell} help'.\n\n"); + } + } else { + $this->stderr('Class '.$this->shellClass.' could not be loaded'); + } + } else { + $this->help(); + } + } + } else { + $this->help(); + } + } + +/** + * Prompts the user for input, and returns it. + * + * @param string $prompt Prompt text. + * @param mixed $options Array or string of options. + * @param string $default Default input value. + * @return Either the default value, or the user-provided input. + * @access public + */ + function getInp... [truncated message content] |
From: <chr...@us...> - 2010-09-11 21:48:32
|
Revision: 862 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=862&view=rev Author: christian_boltz Date: 2010-09-11 21:48:26 +0000 (Sat, 11 Sep 2010) Log Message: ----------- merged all fixes from the 2.3 branch into trunk (r847-860) (see CHANGELOG.TXT changes for details.) - r847 and the CHANGELOG.TXT entries for 2.3.1 were left from the 2.3.1 release - all other changes merged in this commit are the diff between 2.3.1 and 2.3.2 Modified Paths: -------------- trunk/CHANGELOG.TXT trunk/css/default.css trunk/debian/changelog trunk/debian/control trunk/delete.php trunk/functions.inc.php trunk/list-domain.php trunk/list-virtual.php trunk/login.php trunk/templates/login.tpl trunk/users/edit-alias.php Property Changed: ---------------- trunk/ trunk/debian/apache.conf trunk/debian/postfixadmin.docs Property changes on: trunk ___________________________________________________________________ Added: svn:mergeinfo + /branches/postfixadmin-2.3:847,849-860 Modified: trunk/CHANGELOG.TXT =================================================================== --- trunk/CHANGELOG.TXT 2010-08-24 20:36:23 UTC (rev 861) +++ trunk/CHANGELOG.TXT 2010-09-11 21:48:26 UTC (rev 862) @@ -10,7 +10,6 @@ # Last update: # $Id$ - Version ***svn*** - 2009/12/26 - SVN r*** ----------------------------------- @@ -19,11 +18,66 @@ - add ability to choose activation date for vacation message in user module - merge search functionality into list-virtual.php -Version ***svn 2.3 branch*** - 2009/12/26 - SVN r*** ------------------------------------ +Version 2.3.2 - 2010/08/24 - SVN r860 (postfixadmin-2.3 branch) +--------------------------------------------------------------- -*** see 2.3 branch CHANGELOG.TXT, will be added here after 2.3.1 release *** + - SUMMARY: PostfixAdmin 2.3.2 is a bugfix-only release for Postfix Admin 2.3.1 + - SECURITY: attackers could find out if a admin exists (login pre-filled the + username after "only" a wrong password was entered) + - SECURITY: fix sql injection in list-domain (only exploitable by superadmins) + - alias targets in users/edit-alias are now validated + - invalid alias targets in users/edit-alias are shown to the user again + instead of dropping them + - fix dovecot:* password encryption (was broken in 2.3.1) + - fix displaying used quota for dovecot <= 1.1 (was broken in 2.3.1) + - when deleting a domain that is an alias domain (on the "from" side), the + alias domain is deleted +Version 2.3.1 - 2010/07/09 - SVN r847 (postfixadmin-2.3 branch) +--------------------------------------------------------------- + + - SUMMARY: PostfixAdmin 2.3.1 is a bugfix-only release for Postfix Admin 2.3. + The only visible change is displaying the alias target for mailboxes which + was a longstanding issue/"missing feature". + The ADDITIONS directory contains some new scripts. + - SECURITY: users could bypass checking the old password when changing the + password by entering a too short new password. Fortunately only + "exploitable" by authentificated users. + - merge in changes to /debain (thanks normes) from trunk + - display alias targets for mailboxes (if $CONF['special_alias_control'] = YES) + - add hook for custom maildir path generation + - add import_users_from_csv.py script (by Simone Piccardi) + - add mailbox_post* scripts for cyrus + - handle dovecot passwords without any tempfile (prevents safe_mode issues) + - fix MySQL 6.0 compatibility + - fix quota display (for dovecot >= 1.2) + - fix short open tags ("<?") + - translation updates and fixes + - documentation updates and fixes + - document commandline parameters for $CONF[*_script] options in config.inc.php + - list-virtual: added error message if the check_owner query returns more + than one result (can happen with pre-2.3 databases and prevents access for + superadmins) + - add in_array() check to avoid that superadmins can enter invalid domains + - fix delete link for alias domains (when on target domain) + - delete values from quota and quota2 table when deleting a mailbox + - fix hardcoded table names in list-domain.php + - fixed edit-alias.php not to drop alias to the mailbox if + special_alias_control = NO + - fix alias handling for mailboxes (special_alias_control vs. + alias_control_admin confusion) + - fix typo in upgrade.php that broke index creation and deletion when using + non-default table names + - fix creating 'ALL' domain (dummy for superadmins) when using non-default + table names + - fix: db_query did not return number of SELECTed rows if query starts with + with whitespace + - check for $CONF['encrypt'] = 'dovecot:md5-crypt' (postfixadmin login not + working because dovecotpw uses a new salt each time), recommend + internal md5crypt instead + - replaced terribly outdated, broken squirrelmail plugin with a fresh version. + Note: The new plugin version requires the Zend framework. + Version 2.3 - 2009/10/24 - SVN r739 ----------------------------------- @@ -99,8 +153,8 @@ - added support for domain aliases (from lenix) (can be disabled with $CONF['alias_domain']) Important: If you update from a previous version, you'll have to adapt your postfix - configuration (see DOCUMENTS/POSTFIX_CONF.txt) - or just disable alias domain support, - your postfix configuration will continue to work + configuration (see DOCUMENTS/POSTFIX_CONF.txt) - or just disable alias domain support, + your postfix configuration will continue to work - updated postfix example configuration for domain aliases and to use the new mysql map format - vacation.pl: - add option for re-notification after definable timeout (patch from Luxten) Modified: trunk/css/default.css =================================================================== --- trunk/css/default.css 2010-08-24 20:36:23 UTC (rev 861) +++ trunk/css/default.css 2010-09-11 21:48:26 UTC (rev 862) @@ -36,7 +36,7 @@ font-size: 11px; } -.button:hover { +.button:hover, .button:focus { background: #BCFF36; color: #888888; } Property changes on: trunk/debian/apache.conf ___________________________________________________________________ Deleted: svn:mergeinfo - Modified: trunk/debian/changelog =================================================================== --- trunk/debian/changelog 2010-08-24 20:36:23 UTC (rev 861) +++ trunk/debian/changelog 2010-09-11 21:48:26 UTC (rev 862) @@ -1,3 +1,16 @@ +postfixadmin (2.3.2) unstable; urgency=low + + * New upstream release + + -- David Goodwin <dav...@pa...> Mon, 23 Aug 2010 11:24:00 +0100 + +postfixadmin (2.3.1) unstable; urgency=low + + * New upstream release + * Updated .deb standards (thanks normes) + + -- David Goodwin <dav...@pa...> Thu, 08 Jul 2010 22:20:14 +0100 + postfixadmin (2.3) unstable; urgency=low * Initial release (Closes: #247225) Modified: trunk/debian/control =================================================================== --- trunk/debian/control 2010-08-24 20:36:23 UTC (rev 861) +++ trunk/debian/control 2010-09-11 21:48:26 UTC (rev 862) @@ -9,7 +9,7 @@ Package: postfixadmin Architecture: all -Depends: debconf (>= 0.5), dbconfig-common, wwwconfig-common, apache2 | lighttpd, libapache2-mod-php5 | php5-cgi | php5, php5-imap, php5-mysql | php5-pgsql, mysql-client | postgresql-client, ${misc:Depends} +Depends: debconf (>= 0.5), dbconfig-common, wwwconfig-common, apache2 | lighttpd | httpd, libapache2-mod-php5 | php5-cgi | php5, php5-imap, php5-mysql | php5-pgsql, mysql-client | postgresql-client, ${misc:Depends} Recommends: postfix-mysql | postfix-pgsql, mysql-server | postgresql-server Suggests: squirrelmail-postfixadmin, dovecot-common | courier-authlib-mysql | courier-authlib-postgresql Description: Virtual mail hosting interface for Postfix Property changes on: trunk/debian/postfixadmin.docs ___________________________________________________________________ Deleted: svn:mergeinfo - Modified: trunk/delete.php =================================================================== --- trunk/delete.php 2010-08-24 20:36:23 UTC (rev 861) +++ trunk/delete.php 2010-09-11 21:48:26 UTC (rev 862) @@ -68,6 +68,7 @@ $result_domain_admins = db_delete ($table_domain_admins,$fWhere,$fDelete); $result_alias = db_delete ($table_alias,$fWhere,$fDelete); $result_mailbox = db_delete ($table_mailbox,$fWhere,$fDelete); + $result_alias_domain = db_delete($table_alias_domain,'alias_domain',$fDelete); $result_log = db_delete ($table_log,$fWhere,$fDelete); if ($CONF['vacation'] == "YES") { Modified: trunk/functions.inc.php =================================================================== --- trunk/functions.inc.php 2010-08-24 20:36:23 UTC (rev 861) +++ trunk/functions.inc.php 2010-09-11 21:48:26 UTC (rev 862) @@ -450,7 +450,8 @@ //while loop to figure index names. use page_size and loop of queries $i=0; $current=0; - $page_size = $CONF['page_size']; + $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; Modified: trunk/list-domain.php =================================================================== --- trunk/list-domain.php 2010-08-24 20:36:23 UTC (rev 861) +++ trunk/list-domain.php 2010-09-11 21:48:26 UTC (rev 862) @@ -32,7 +32,7 @@ //if (authentication_has_role('admin')) { $list_admins = list_admins (); $is_superadmin = 1; - $fUsername = safepost('fUsername', safeget('username')); # prefer POST over GET variable + $fUsername = escape_string(safepost('fUsername', safeget('username'))); # prefer POST over GET variable if ($fUsername != "") $admin_properties = get_admin_properties($fUsername); } else { $list_admins = array(authentication_get_username()); Modified: trunk/list-virtual.php =================================================================== --- trunk/list-virtual.php 2010-08-24 20:36:23 UTC (rev 861) +++ trunk/list-virtual.php 2010-09-11 21:48:26 UTC (rev 862) @@ -196,7 +196,7 @@ # mailboxes # -$display_mailbox_aliases = boolconf('special_alias_control'); # TODO: is this condition correct? - I'm slightly confused with alias_control, alias_control_admin and special_alias_control +$display_mailbox_aliases = boolconf('alias_control_admin'); # build the sql query $sql_select = " SELECT $table_mailbox.* "; @@ -234,7 +234,7 @@ if (boolconf('used_quotas') && ( ! boolconf('new_quota_table') ) ) { $sql_select .= ", $table_quota.current "; $sql_join .= " LEFT JOIN $table_quota ON $table_mailbox.username=$table_quota.username "; - $sql_where .= " ( $table_quota.path='quota/storage' OR $table_quota.path IS NULL ) "; + $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"; Modified: trunk/login.php =================================================================== --- trunk/login.php 2010-08-24 20:36:23 UTC (rev 861) +++ trunk/login.php 2010-09-11 21:48:26 UTC (rev 862) @@ -19,7 +19,6 @@ * Template Variables: * * tMessage - * tUsername * * Form POST \ GET Variables: * @@ -67,7 +66,6 @@ { $error = 1; $tMessage = '<span class="error_msg">' . $PALANG['pLogin_failed'] . '</span>'; - $tUsername = $fUsername; } } else @@ -96,7 +94,6 @@ exit(0); } - $smarty->assign ('tUsername', $tUsername); $smarty->assign ('tMessage', $tMessage, false); $smarty->assign ('smarty_template', 'login'); Modified: trunk/templates/login.tpl =================================================================== --- trunk/templates/login.tpl 2010-08-24 20:36:23 UTC (rev 861) +++ trunk/templates/login.tpl 2010-09-11 21:48:26 UTC (rev 862) @@ -6,7 +6,7 @@ </tr> <tr> <td>{$PALANG.pLogin_username}:</td> - <td><input class="flat" type="text" name="fUsername" value="{$tUsername}" /></td> + <td><input class="flat" type="text" name="fUsername" /></td> </tr> <tr> <td>{$PALANG.pLogin_password}:</td> Modified: trunk/users/edit-alias.php =================================================================== --- trunk/users/edit-alias.php 2010-08-24 20:36:23 UTC (rev 861) +++ trunk/users/edit-alias.php 2010-09-11 21:48:26 UTC (rev 862) @@ -79,14 +79,17 @@ $goto = explode(",",$goto); + $error = 0; $goto = array_merge(array_unique($goto)); $good_goto = array(); + if($fForward_and_store == 'NO' && sizeof($goto) == 1 && $goto[0] == '') { $tMessage = $PALANG['pEdit_alias_goto_text_error1']; $error += 1; } if($error === 0) { foreach($goto as $address) { + if ($address != "") { # $goto[] may contain a "" element if(!check_email($address)) { $error += 1; $tMessage = $PALANG['pEdit_alias_goto_text_error2'] . " $address</font>"; @@ -94,8 +97,8 @@ else { $good_goto[] = $address; } + } } - $goto = $good_goto; } if ($error == 0) { @@ -103,7 +106,7 @@ if($fForward_and_store == "YES" ) { $flags = 'forward_and_store'; } - $updated = $ah->update($goto, $flags); + $updated = $ah->update($good_goto, $flags); if($updated) { header ("Location: main.php"); exit; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2010-09-12 18:48:55
|
Revision: 864 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=864&view=rev Author: christian_boltz Date: 2010-09-12 18:48:49 +0000 (Sun, 12 Sep 2010) Log Message: ----------- Several small bugfixes, all of them caused by switching to smarty (not relevant for the 2.3 branch) edit-mailbox.php, templates/edit-mailbox.tpl: - do NOT display the old password (that's insecure - or useless with encrypted passwords) users/edit-alias.php: - add a TODO note about code cleanup users/password.php: - username was not displayed because of a wrong variable name list-virtual.php: - don't escape mailbox and alias status flags templates/users_main.tpl: - don't display template name Modified Paths: -------------- trunk/edit-mailbox.php trunk/list-virtual.php trunk/templates/edit-mailbox.tpl trunk/templates/users_main.tpl trunk/users/edit-alias.php trunk/users/password.php Modified: trunk/edit-mailbox.php =================================================================== --- trunk/edit-mailbox.php 2010-09-11 22:44:49 UTC (rev 863) +++ trunk/edit-mailbox.php 2010-09-12 18:48:49 UTC (rev 864) @@ -176,7 +176,6 @@ } $smarty->assign ('fUsername', $fUsername); -$smarty->assign ('fPassword', $user_details ['password'], false); $smarty->assign ('pEdit_mailbox_password_text', $pEdit_mailbox_password_text, false); $smarty->assign ('tName', $tName, false); $smarty->assign ('pEdit_mailbox_name_text', $pEdit_mailbox_name_text,false); Modified: trunk/list-virtual.php =================================================================== --- trunk/list-virtual.php 2010-09-11 22:44:49 UTC (rev 863) +++ trunk/list-virtual.php 2010-09-12 18:48:49 UTC (rev 864) @@ -199,7 +199,7 @@ $display_mailbox_aliases = boolconf('alias_control_admin'); # build the sql query -$sql_select = " SELECT $table_mailbox.* "; +$sql_select = "SELECT $table_mailbox.* "; $sql_from = " FROM $table_mailbox "; $sql_join = ""; $sql_where = " WHERE "; @@ -454,11 +454,11 @@ $smarty->assign ('PALANG_pOverview_alias_domain_target', sprintf($PALANG['pOverview_alias_domain_target'], $fDomain)); } $smarty->assign ('tAlias', $tAlias); -$smarty->assign ('gen_show_status', $gen_show_status); +$smarty->assign ('gen_show_status', $gen_show_status, false); $smarty->assign ('check_alias_owner', $check_alias_owner); $smarty->assign ('tCanAddAlias', $tCanAddAlias); $smarty->assign ('tMailbox', $tMailbox); -$smarty->assign ('gen_show_status_mailbox', $gen_show_status_mailbox); +$smarty->assign ('gen_show_status_mailbox', $gen_show_status_mailbox, false); $smarty->assign ('boolconf_used_quotas', boolconf('used_quotas')); $smarty->assign ('divide_quota', $divide_quota); $smarty->assign ('tCanAddMailbox', $tCanAddMailbox); Modified: trunk/templates/edit-mailbox.tpl =================================================================== --- trunk/templates/edit-mailbox.tpl 2010-09-11 22:44:49 UTC (rev 863) +++ trunk/templates/edit-mailbox.tpl 2010-09-12 18:48:49 UTC (rev 864) @@ -11,11 +11,6 @@ <td>{$pEdit_mailbox_username_text}</td> </tr> <tr> - <td>{$PALANG.pPassword_password_current}:</td> - <td>{$fPassword}</td> - <td> </td> - </tr> - <tr> <td>{$PALANG.pEdit_mailbox_password}:</td> <td><input class="flat" type="password" name="fPassword" /></td> <td>{$pEdit_mailbox_password_text}</td> @@ -53,4 +48,4 @@ </tr> </table> </form> -</div> \ No newline at end of file +</div> Modified: trunk/templates/users_main.tpl =================================================================== --- trunk/templates/users_main.tpl 2010-09-11 22:44:49 UTC (rev 863) +++ trunk/templates/users_main.tpl 2010-09-12 18:48:49 UTC (rev 864) @@ -24,4 +24,3 @@ </tr> </table> </div> -{$smarty_template} \ No newline at end of file Modified: trunk/users/edit-alias.php =================================================================== --- trunk/users/edit-alias.php 2010-09-11 22:44:49 UTC (rev 863) +++ trunk/users/edit-alias.php 2010-09-12 18:48:49 UTC (rev 864) @@ -90,6 +90,11 @@ if($error === 0) { foreach($goto as $address) { if ($address != "") { # $goto[] may contain a "" element + # TODO - from https://sourceforge.net/tracker/?func=detail&aid=3027375&group_id=191583&atid=937964 + # The not-so-good news is that some internals of edit-alias aren't too nice + # - for example, $goto[] can contain an element with empty string. I added a + # check for that in the 2.3 branch, but we should use a better solution + # (avoid empty elements in $goto) in trunk ;-) if(!check_email($address)) { $error += 1; $tMessage = $PALANG['pEdit_alias_goto_text_error2'] . " $address</font>"; Modified: trunk/users/password.php =================================================================== --- trunk/users/password.php 2010-09-11 22:44:49 UTC (rev 863) +++ trunk/users/password.php 2010-09-12 18:48:49 UTC (rev 864) @@ -73,7 +73,7 @@ } } -$smarty->assign ('USERID_USERNAME', $USERID_USERNAME); +$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); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2010-09-26 23:14:48
|
Revision: 868 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=868&view=rev Author: christian_boltz Date: 2010-09-26 23:14:42 +0000 (Sun, 26 Sep 2010) Log Message: ----------- list-virtual.php: - hand over $search to smarty templates templates/list-virtual_alias.tpl, templates/list-virtual_alias_domain.tpl: - add search result highlighting templates/list-virtual_mailbox.tpl: - add search result highlighting - move output of "Mailbox" / "Forward only" outside the foreach loop (was displayed once per mailbox alias target) css/default.css: - add style for ".searchresult" Modified Paths: -------------- trunk/css/default.css trunk/list-virtual.php trunk/templates/list-virtual_alias.tpl trunk/templates/list-virtual_alias_domain.tpl trunk/templates/list-virtual_mailbox.tpl Modified: trunk/css/default.css =================================================================== --- trunk/css/default.css 2010-09-26 13:23:42 UTC (rev 867) +++ trunk/css/default.css 2010-09-26 23:14:42 UTC (rev 868) @@ -311,6 +311,10 @@ padding-bottom:1em; } +.searchresult { + background:lightgreen; +} + div.nav_bar { text-align: left; width: 750px; Modified: trunk/list-virtual.php =================================================================== --- trunk/list-virtual.php 2010-09-26 13:23:42 UTC (rev 867) +++ trunk/list-virtual.php 2010-09-26 23:14:42 UTC (rev 868) @@ -437,6 +437,8 @@ $smarty->assign ('fDomain', $fDomain, false); +$smarty->assign ('search', $search); + $smarty->assign ('list_domains', $list_domains); $smarty->assign ('limit', $limit); $smarty->assign ('tDisplay_back_show', $tDisplay_back_show); Modified: trunk/templates/list-virtual_alias.tpl =================================================================== --- trunk/templates/list-virtual_alias.tpl 2010-09-26 13:23:42 UTC (rev 867) +++ trunk/templates/list-virtual_alias.tpl 2010-09-26 23:14:42 UTC (rev 868) @@ -13,11 +13,23 @@ {if $CONF.show_status===YES} <td>{$gen_show_status[$i]}</td> {/if} - <td>{$item.address}</td> + <td> + {if $search eq ""} + {$item.address} + {else} + {$item.address|replace:$search:"<span class='searchresult'>$search</span>"} + {/if} + </td> {if $CONF.alias_goto_limit>0} <td><i>sorry, alias_goto_limit > 0 not handled</i></td> {else} - <td>{$item.goto|replace:",":"<br/>"}</td> + <td> + {if $search eq ""} + {$item.goto|replace:",":"<br/>"} + {else} + {$item.goto|replace:",":"<br/>"|replace:$search:"<span class='searchresult'>$search</span>"} + {/if} + </td> {/if} <td>{$item.modified}</td> {if $authentication_has_role.global_admin==true} Modified: trunk/templates/list-virtual_alias_domain.tpl =================================================================== --- trunk/templates/list-virtual_alias_domain.tpl 2010-09-26 13:23:42 UTC (rev 867) +++ trunk/templates/list-virtual_alias_domain.tpl 2010-09-26 23:14:42 UTC (rev 868) @@ -13,7 +13,13 @@ </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"}">{$item.alias_domain}</a></td> + <td><a href="{$smarty.config.url_list_virtual}?domain={$item.alias_domain|escape:"url"}&limit={$current_limit|escape:"url"}"> + {if $search eq ""} + {$item.alias_domain} + {else} + {$item.alias_domain|replace:$search:"<span class='searchresult'>$search</span>"} + {/if} + </a></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> Modified: trunk/templates/list-virtual_mailbox.tpl =================================================================== --- trunk/templates/list-virtual_mailbox.tpl 2010-09-26 13:23:42 UTC (rev 867) +++ trunk/templates/list-virtual_mailbox.tpl 2010-09-26 23:14:42 UTC (rev 868) @@ -16,16 +16,27 @@ {if $CONF.show_status===YES} <td>{$gen_show_status_mailbox[$i]}</td> {/if} - <td>{$item.username}</td> + <td> + {if $search eq ""} + {$item.username} + {else} + {$item.username|replace:$search:"<span class='searchresult'>$search</span>"} + {/if} + </td> {if $display_mailbox_aliases==true} <td> + {if $item.goto_mailbox == 1} + Mailbox<br/> + {else} + Forward only<br/> + {/if} {foreach from=$item.goto_other item=item2 key=j} - {if $item.goto_mailbox == 1} - Mailbox<br/> - {else} - Forward only<br/> - {/if} - {$item2}<br/> + {if $search eq ""} + {$item2} + {else} + {$item2|replace:$search:"<span class='searchresult'>$search</span>"} + {/if} + <br/> {/foreach} </td> {/if} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2010-09-27 00:13:34
|
Revision: 869 http://postfixadmin.svn.sourceforge.net/postfixadmin/?rev=869&view=rev Author: christian_boltz Date: 2010-09-27 00:13:28 +0000 (Mon, 27 Sep 2010) Log Message: ----------- Another step in code cleanup: replaced search.php with search mode in list-virtual.php. We now have two file less to maintain without loosing functionality :-) Only remaining bug: in search mode, no page browser is displayed. This means that you'll only see the first $CONF['page_size'] search results *without* the possibility to see the next page of results. (BTW: search.php simply ignored $CONF['page_size'] ;-) search.php, templates/search.tpl: - deleted, RIP ;-) configs/menu.conf: - change search form to use list-virtual.php instead of search.php list-virtual.php: - added TODO note about the "no page browser in search mode" bug templates/list-virtual.tpl: - hand over $search to all tabs Modified Paths: -------------- trunk/configs/menu.conf trunk/list-virtual.php trunk/templates/list-virtual.tpl Removed Paths: ------------- trunk/search.php trunk/templates/search.tpl Modified: trunk/configs/menu.conf =================================================================== --- trunk/configs/menu.conf 2010-09-26 23:14:42 UTC (rev 868) +++ trunk/configs/menu.conf 2010-09-27 00:13:28 UTC (rev 869) @@ -38,8 +38,8 @@ tr_hilightoff = <tr class="hilightoff" onmouseover="className='hilighton';" onmouseout="className='hilightoff';"> url_delete = delete.php -url_search = search.php -form_search = <form name="search" method="post" action="search.php"><input name="search" size="10" /></form> +url_search = list-virtual.php +form_search = <form name="search" method="post" action="list-virtual.php"><input name="search" size="10" /></form> [main] _txt_list_domain = pMenu_overview Modified: trunk/list-virtual.php =================================================================== --- trunk/list-virtual.php 2010-09-26 23:14:42 UTC (rev 868) +++ trunk/list-virtual.php 2010-09-27 00:13:28 UTC (rev 869) @@ -279,6 +279,16 @@ $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) { Deleted: trunk/search.php =================================================================== --- trunk/search.php 2010-09-26 23:14:42 UTC (rev 868) +++ trunk/search.php 2010-09-27 00:13:28 UTC (rev 869) @@ -1,188 +0,0 @@ -<?php -/** - * Postfix Admin - * - * LICENSE - * This source file is subject to the GPL license that is bundled with - * this package in the file LICENSE.TXT. - * - * Further details on the project are available at : - * http://www.postfixadmin.com or http://postfixadmin.sf.net - * - * @version $Id$ - * @license GNU GPL v2 or later. - * - * File: search.php - * Provides a method for searching for a user/mailbox - * Template File: search.tpl - * - * Template Variables: - * - * tAlias - * tMailbox - * - * Form POST \ GET Variables: - * - * fSearch - * fGo - * fDomain - */ - -require_once('common.php'); - -authentication_require_role('admin'); -$SESSID_USERNAME = authentication_get_username(); -if(authentication_has_role('global-admin')) { - $list_domains = list_domains (); -} -else { - $list_domains = list_domains_for_admin ($SESSID_USERNAME); -} - - -$tAlias = array(); -$tMailbox = array(); - -if ($_SERVER['REQUEST_METHOD'] == "GET") -{ - if (isset ($_GET['search'])) $fSearch = escape_string ($_GET['search']); - if (isset ($_GET['fGo'])) $fGo = escape_string ($_GET['fGo']); - if (isset ($_GET['fDomain'])) $fDomain = escape_string ($_GET['domain']); -} - -if ($_SERVER['REQUEST_METHOD'] == "POST") -{ - if (isset ($_POST['search'])) $fSearch = escape_string ($_POST['search']); - if (isset ($_POST['fGo'])) $fGo = escape_string ($_POST['fGo']); - if (isset ($_POST['fDomain'])) $fDomain = escape_string ($_POST['fDomain']); -} - -if (empty ($fSearch) /* && !empty ($fGo) */) -{ - header("Location: list-virtual.php?domain=" . $fDomain ) && exit; -} - -if ($CONF['alias_control_admin'] == "YES") -{ - $query = "SELECT $table_alias.address AS address, $table_alias.goto AS goto, - $table_alias.modified AS modified, $table_alias.domain AS domain, $table_alias.active AS active - FROM $table_alias - WHERE address LIKE '%$fSearch%' OR goto LIKE '%$fSearch%' ORDER BY address"; -} -else -{ - // find all aliases which don't have a matching entry in table_mailbox - $query = "SELECT $table_alias.address AS address, $table_alias.goto AS goto, - $table_alias.modified AS modified, $table_alias.domain AS domain, $table_alias.active AS active - FROM $table_alias LEFT JOIN $table_mailbox ON $table_alias.address=$table_mailbox.username - WHERE address LIKE '%$fSearch%' AND $table_mailbox.maildir IS NULL ORDER BY $table_alias.address"; - -} - -$result = db_query ($query); -if ($result['rows'] > 0) -{ - while ($row = db_array ($result['result'])) - { - if (check_owner ($SESSID_USERNAME, $row['domain']) || authentication_has_role('global-admin')) - { - if ('pgsql'==$CONF['database_type']) - { - $row['modified']=gmstrftime('%c %Z',$row['modified']); - $row['active']=('t'==$row['active']) ? 1 : 0; - } - $tAlias[] = $row; - } - } -} - - -if ($CONF['vacation_control_admin'] == 'YES' && $CONF['vacation'] == 'YES') -{ - $query = ("SELECT $table_mailbox.*, $table_vacation.active AS v_active FROM $table_mailbox LEFT JOIN $table_vacation ON $table_mailbox.username=$table_vacation.email WHERE $table_mailbox.username LIKE '%$fSearch%' OR $table_mailbox.name LIKE '%$fSearch%' ORDER BY $table_mailbox.username"); -} -else -{ - $query = "SELECT * FROM $table_mailbox WHERE username LIKE '%$fSearch%' OR name LIKE '%$fSearch%' ORDER BY username"; -} - -$result = db_query ($query); -if ($result['rows'] > 0) -{ - while ($row = db_array ($result['result'])) - { - if (check_owner ($SESSID_USERNAME, $row['domain']) || authentication_has_role('global-admin')) - { - if ('pgsql'==$CONF['database_type']) - { - $row['created']=gmstrftime('%c %Z',strtotime($row['created'])); - $row['modified']=gmstrftime('%c %Z',strtotime($row['modified'])); - $row['active']=('t'==$row['active']) ? 1 : 0; - } - $tMailbox[] = $row; - } - } -} - -$check_alias_owner = array (); - -if ((is_array ($tAlias) and sizeof ($tAlias) > 0)) - for ($i = 0; $i < sizeof ($tAlias); $i++) - $check_alias_owner [$i] = check_alias_owner ($SESSID_USERNAME, $tAlias[$i]['address']); - -$divide_quota = array (); -if ((is_array ($tMailbox) and sizeof ($tMailbox) > 0)) - for ($i = 0; $i < sizeof ($tMailbox); $i++) - { - $divide_quota ['quota'][$i] = divide_quota ($tMailbox[$i]['quota']); - } - -for ($i = 0; $i < sizeof ($tAlias); $i++) -{ - if ((is_array ($tAlias) and sizeof ($tAlias) > 0)) - { - $tAlias[$i]['display_address'] = $tAlias[$i]['address']; - if (stristr($tAlias[$i]['display_address'],$fSearch)) - { - $new_address = str_ireplace($fSearch, "<span style='background-color: lightgreen'>".$fSearch."</span>", $tAlias[$i]['display_address']); - $tAlias[$i]['display_address'] = $new_address; - } - if (stristr($tAlias[$i]['goto'], $fSearch)) - { - $tAlias[$i]['goto'] = str_ireplace($fSearch, "<span style='background-color: lightgreen'>".$fSearch."</span>", $tAlias[$i]['goto']); - } - ($tAlias [$i]['active'] == 1) ? $tAlias [$i]['active'] = $PALANG ['YES'] : $tAlias [$i]['active'] = $PALANG ['NO']; - } -} -for ($i = 0; $i < sizeof ($tMailbox); $i++) -{ - if ((is_array ($tMailbox) and sizeof ($tMailbox) > 0)) - { - $tMailbox[$i]['display_username'] = $tMailbox[$i]['username']; - if (stristr($tMailbox[$i]['display_username'],$fSearch)) - { - $new_name = str_ireplace ($fSearch, "<span style='background-color: lightgreen'>".$fSearch."</span>", $tMailbox[$i]['display_username']); - $tMailbox [$i]['display_username'] = $new_name; - } - if (stristr($tMailbox[$i]['name'],$fSearch)) - { - $tMailbox[$i]['name'] = str_ireplace($fSearch, "<span style='background-color: lightgreen'>".$fSearch."</span>", $tMailbox[$i]['name']); - } - ($tMailbox [$i]['active'] == 1) ? $tMailbox [$i]['active'] = $PALANG ['YES'] : $tMailbox [$i]['active'] = $PALANG ['NO']; - ($tMailbox [$i]['v_active'] == 1) ? $tMailbox [$i]['v_active'] = $PALANG ['pOverview_vacation_edit'] : $tMailbox [$i]['v_active'] = ''; - } -} - -$smarty->assign ('fSearch', $fSearch); -$smarty->assign ('select_options', select_options ($list_domains, array ($list_domains[0])), false); -$smarty->assign ('tAlias', $tAlias, false); - -$smarty->assign ('check_alias_owner', $check_alias_owner); -$smarty->assign ('tMailbox', $tMailbox, false); -$smarty->assign ('divide_quota', $divide_quota); - -$smarty->assign ('smarty_template', 'search'); -$smarty->display ('index.tpl'); - -/* vim: set expandtab softtabstop=4 tabstop=4 shiftwidth=4: */ -?> Modified: trunk/templates/list-virtual.tpl =================================================================== --- trunk/templates/list-virtual.tpl 2010-09-26 23:14:42 UTC (rev 868) +++ trunk/templates/list-virtual.tpl 2010-09-27 00:13:28 UTC (rev 869) @@ -14,10 +14,10 @@ </div> <div id="tabbar"> <ul> -<li><a href="?domain={$smarty.get.domain}&tab=mailbox">{$PALANG.pOverview_mailbox_title}</a></li> -<li><a href="?domain={$smarty.get.domain}&tab=alias">{$PALANG.pOverview_alias_title}</a></li> +<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">{$PALANG.pOverview_alias_domain_title}</a></li> + <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> Deleted: trunk/templates/search.tpl =================================================================== --- trunk/templates/search.tpl 2010-09-26 23:14:42 UTC (rev 868) +++ trunk/templates/search.tpl 2010-09-27 00:13:28 UTC (rev 869) @@ -1,96 +0,0 @@ -<div id="overview"> -<form name="search" method="post" action="{#url_search#}"> -<table width="750"> - <tr> - <td> - <h4>{$PALANG.pSearch_welcome}{$fSearch}</h4> - </td> - <td>{$PALANG.pSearch}:<input name="search" /></td> -{if $authentication_has_role.global_admin} - <td></td> -{/if} - <td align="right"> - <select class="flat" name="fDomain" >{$select_options}</select> -{if $authentication_has_role.global_admin} - <input class="button" type="submit" name="fGo" value="{$PALANG.pReturn_to} {$PALANG.pAdminMenu_list_virtual}" /></td> -{else} - <input class="button" type="submit" name="fGo" value="{$PALANG.pReturn_to} {$PALANG.pMenu_overview}" /></td> -{/if} - </tr> -</table> -</form> -</div> -{if $tAlias} -<table id="alias_table"> - <tr> - <td colspan="5"><h3>{$PALANG.pOverview_alias_title}</h3></td> - </tr> - {#tr_header#} - <td>{$PALANG.pOverview_alias_address}</td> - <td>{$PALANG.pOverview_alias_goto}</td> - <td>{$PALANG.pOverview_alias_modified}</td> - <td>{$PALANG.pOverview_alias_active}</td> - <td colspan="2"> </td> - </tr> - {foreach from=$tAlias item=item key=i} - {#tr_hilightoff#} - <td>{$item.display_address}</td> - <td>{$item.goto}</td> - <td>{$item.modified}</td> - {if $CONF.special_alias_control===YES || $authentication_has_role.global_admin} - <td><a href="edit-active.php?alias={$item.address|escape:"url"}&domain={$item.domain|escape:"url"}&return=search.php?search={$fSearch|escape:"url"}">{$item.active}</a></td> - <td><a href="edit-alias.php?address={$item.address|escape:"url"}&domain={$item.domain|escape:"url"}">{$PALANG.edit}</a></td> - <td><a href="delete.php?table=alias&delete={$item.address|escape:"url"}&domain={$item.domain|escape:"url"}" onclick="return confirm ('{$PALANG.confirm}{$PALANG.pOverview_get_aliases|escape:"url"}: {$item.address|escape:"url"}');">{$PALANG.del}</a></td> - {else} - {if $check_alias_owner[$i]} - <td><a href="edit-active.php?alias={$item.address|escape:"url"}&domain={$item.domain|escape:"url"}&return=search.php?search={$fSearch|escape:"url"}">{$item.active}</a></td> - <td><a href="edit-alias.php?address={$item.address|escape:"url"}&domain={$item.domain|escape:"url"}">{$PALANG.edit}</a></td> - <td><a href="delete.php?table=alias&delete={$item.address|escape:"url"}&domain={$item.domain|escape:"url"}" onclick="return confirm ('{$PALANG.confirm}{$PALANG.pOverview_get_aliases}: {$item.address}');">{$PALANG.del}</a></td> - {else} - <td> </td> - <td> </td> - {/if} - {/if} - </tr> - {/foreach} -</table> -{/if} -{if $tMailbox} - <table id="mailbox_table"> - <tr> - <td colspan="7"><h3>{$PALANG.pOverview_mailbox_title}</h3></td> - </tr> - <tr class="header"> - <td>{$PALANG.pOverview_mailbox_username}</td> - <td>{$PALANG.pOverview_mailbox_name}</td> - {if $CONF.quota===YES}<td>{$PALANG.pOverview_mailbox_quota}</td>{/if} - <td>{$PALANG.pOverview_mailbox_modified}</td> - <td>{$PALANG.pOverview_mailbox_active}</td> - <td colspan="2"> </td> - {assign var="colspan" value=2} - {if $CONF.vacation_control_admin===YES}{assign var="colspan" value=$colspan+1}{/if} - {if $CONF.alias_control_admin===YES}{assign var="colspan" value=$colspan+1}{/if} - {if $authentication_has_role.global_admin && $CONF.alias_control===YES}{assign var="colspan" value=3}{/if} - <td colspan="{$colspan}"> </td> - </tr> - {foreach from=$tMailbox item=item key=i} - {#tr_hilightoff#} - <td>{$item.display_username}</td> - <td>{$item.name}</td> - {if $CONF.quota===YES} - <td>{$divide_quota.quota[$i]}</td> - {/if} - <td>{$item.modified}</td> - <td><a href="edit-active.php?username={$item.username|escape:"url"}&domain={$item.domain}&return=search.php?search={$fSearch|escape:"url"}">{$item.active}</a></td> - {if $CONF.vacation_control_admin===YES} - <td><a href="edit-vacation.php?username={$item.username|escape:"url"}&domain={$item.domain}">{$item.v_active}</a></td> - {/if} - {if $CONF.alias_control===YES || $CONF.alias_control_admin===YES} - <td><a href="edit-alias.php?address={$item.username|escape:"url"}&domain={$item.domain}">{$PALANG.pOverview_alias_edit}</a></td> - {/if} - <td><a href="edit-mailbox.php?username={$item.username|escape:"url"}&domain={$item.domain}">{$PALANG.edit}</a></td> - <td><a href="delete.php?table=mailbox&delete={$item.username|escape:"url"}&domain={$item.domain}" onclick="return confirm ('{$PALANG.confirm}{$PALANG.pOverview_get_mailboxes}: {$item.username}');">{$PALANG.del}</a></td> - </tr> - {/foreach} - </table> -{/if} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |