From d03e23951537a9874e4324d8b6fe38ae04d76a97 Mon Sep 17 00:00:00 2001 From: Christian Boltz Date: Sun, 8 Apr 2012 22:20:55 +0000 Subject: [PATCH] list-virtual.php: - use AliasdomainHander instead of doing direct database queries - add search support for alias domains - display "create alias domain" button only if this is possible - always assign $tAliasDomains smarty variable (even if empty) to avoid warnings - always escape $fDomain (even if it comes from $list_domains) - rename $SESSID_USERNAME to $admin_username templates/list-virtual_alias_domain.tpl: - remove reference to non-existing variable $tTargetDomain git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@1352 a1433add-5e2c-0410-b055-b7f2511e0802 --- list-virtual.php | 52 +++++++++++-------------- templates/list-virtual_alias_domain.tpl | 2 +- 2 files changed, 23 insertions(+), 31 deletions(-) diff --git a/list-virtual.php b/list-virtual.php index b6f2e3ca..521fd11e 100644 --- a/list-virtual.php +++ b/list-virtual.php @@ -33,7 +33,7 @@ require_once('common.php'); authentication_require_role('admin'); $fDomain = false; -$SESSID_USERNAME = authentication_get_username(); +$admin_username = authentication_get_username(); if (authentication_has_role('global-admin')) { $list_domains = list_domains (); @@ -69,7 +69,7 @@ if (count($list_domains) == 0) { if ((is_array ($list_domains) and sizeof ($list_domains) > 0)) { if (empty ($fDomain)) { - $fDomain = $list_domains[0]; + $fDomain = escape_string($list_domains[0]); } } @@ -95,35 +95,29 @@ if($fDomain) { # alias domain # -# TODO: add search support for alias domains - if (boolconf('alias_domain')) { - $modified_field = 'modified'; - if ('pgsql'==$CONF['database_type']) { # TODO: do we really need the extract(epoch from modified) for pgsql? We ust gmstrftime anyway (see below) - $modified_field = 'extract(epoch from modified) as modified'; + if ($search == "") { + $list_param = "alias_domain='$fDomain' OR target_domain='$fDomain'"; + } else { + $list_param = "alias_domain LIKE '%$search%' OR target_domain LIKE '%$search%'"; } - $query = " - SELECT alias_domain,target_domain,$modified_field,active FROM $table_alias_domain - WHERE alias_domain='$fDomain' OR target_domain='$fDomain' - ORDER BY alias_domain - LIMIT $page_size OFFSET $fDisplay - "; + $handler = new AliasdomainHandler(0, $admin_username); + if ($handler->getList($list_param)) { + $tAliasDomains = $handler->result(); + } else { + $tAliasDomains = array(); + # TODO: check if there was an error or simply no alias domains + } - $result = db_query ($query); - $tAliasDomains = array(); $can_create_alias_domain = 1; - if ($result['rows'] > 0) { - while ($row = db_array ($result['result'])) { - if ('pgsql'==$CONF['database_type']) { - $row['modified']=gmstrftime('%c %Z',$row['modified']); - $row['active']=('t'==$row['active']) ? 1 : 0; - } - $tAliasDomains[] = $row; - if ($row['target_domain'] == $fDomain) $can_create_alias_domain = 0; - } - } - # TODO: set $can_create_alias_domain = 0; if all domains (of this admin) are already used as alias domains + foreach ($tAliasDomains as $row) { + if ($row['alias_domain'] == $fDomain) $can_create_alias_domain = 0; # domain is already an alias domain + } + # set $can_create_alias_domain = 0 if all domains (of this admin) are already used as alias domains + if ($handler->getList("1=1")) { + if ( count($handler->result()) + 1 >= count($list_domains) ) $can_create_alias_domain = 0; # all domains (of this admin) are already alias domains + } } # @@ -303,7 +297,7 @@ $check_alias_owner = array (); if ((is_array ($tAlias) and sizeof ($tAlias) > 0)) for ($i = 0; $i < sizeof ($tAlias); $i++) { $gen_show_status [$i] = gen_show_status($tAlias[$i]['address']); - $check_alias_owner [$i] = check_alias_owner($SESSID_USERNAME, $tAlias[$i]['address']); + $check_alias_owner [$i] = check_alias_owner($admin_username, $tAlias[$i]['address']); } $gen_show_status_mailbox = array (); @@ -448,9 +442,7 @@ $smarty->assign ('tDisplay_up_show', $tDisplay_up_show); $smarty->assign ('tDisplay_next_show', $tDisplay_next_show); $smarty->assign ('tDisplay_next', $tDisplay_next); -if(sizeof ($tAliasDomains) > 0) - $smarty->assign ('tAliasDomains', $tAliasDomains); - +$smarty->assign ('tAliasDomains', $tAliasDomains); $smarty->assign ('can_create_alias_domain', $can_create_alias_domain); $smarty->assign ('tAlias', $tAlias); $smarty->assign ('gen_show_status', $gen_show_status, false); diff --git a/templates/list-virtual_alias_domain.tpl b/templates/list-virtual_alias_domain.tpl index c3588d91..3d555713 100644 --- a/templates/list-virtual_alias_domain.tpl +++ b/templates/list-virtual_alias_domain.tpl @@ -3,7 +3,7 @@ {$PALANG.pOverview_alias_domain_title} - {if $tAliasDomains|@count>0 || $tTargetDomain|@count>1} + {if $tAliasDomains|@count>0} {if $tAliasDomains|@count>0} {* -> HAT alias-domains *} {#tr_header#} {$PALANG.pOverview_alias_address}