diff --git a/list-virtual.php b/list-virtual.php index bfdb9c55..20f91b3a 100644 --- a/list-virtual.php +++ b/list-virtual.php @@ -37,35 +37,32 @@ $fDomain = false; $SESSID_USERNAME = authentication_get_username(); if (authentication_has_role('global-admin')) { - $list_domains = list_domains (); - $is_superadmin = 1; + $list_domains = list_domains (); + $is_superadmin = 1; } else { - $list_domains = list_domains_for_admin(authentication_get_username()); - $is_superadmin = 0; + $list_domains = list_domains_for_admin(authentication_get_username()); + $is_superadmin = 0; } $tAlias = array(); $tMailbox = array(); $fDisplay = 0; $page_size = $CONF['page_size']; -if ($_SERVER['REQUEST_METHOD'] == "GET") -{ - 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')); +if ($_SERVER['REQUEST_METHOD'] == "GET") { + 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')); } 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; + flash_error( $PALANG['invalid_parameter'] ); + 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)) { @@ -75,15 +72,15 @@ if ((is_array ($list_domains) and sizeof ($list_domains) > 0)) { } if(!in_array($fDomain, $list_domains)) { - flash_error( $PALANG['invalid_parameter'] ); - header("Location: list-domain.php"); # invalid domain, or not owned by this admin - exit; + flash_error( $PALANG['invalid_parameter'] ); + header("Location: list-domain.php"); # invalid domain, or not owned by this admin + exit; } if (!check_owner(authentication_get_username(), $fDomain)) { - flash_error( $PALANG['invalid_parameter'] . " If you see this message, please open a bugreport"); # this check is most probably obsoleted by the in_array() check above - header("Location: list-domain.php"); # domain not owned by this admin - exit(0); + flash_error( $PALANG['invalid_parameter'] . " If you see this message, please open a bugreport"); # this check is most probably obsoleted by the in_array() check above + header("Location: list-domain.php"); # domain not owned by this admin + exit(0); } // store fDomain in $_SESSION so after adding/editing aliases/mailboxes we can @@ -102,7 +99,7 @@ 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'; - } + } $query = " SELECT alias_domain,target_domain,$modified_field,active FROM $table_alias_domain @@ -111,35 +108,32 @@ if (boolconf('alias_domain')) { LIMIT $page_size OFFSET $fDisplay "; - $result = db_query ($query); - $tAliasDomains = array(); + $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 ($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 - } +} # # aliases # if ($search == "") { - $sql_domain = " $table_alias.domain='$fDomain' "; - $sql_where = ""; + $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%' ) "; + $sql_domain = db_in_clause("$table_alias.domain", $list_domains); + $sql_where = " AND ( address LIKE '%$search%' OR goto LIKE '%$search%' ) "; } $alias_pagebrowser_query = " @@ -155,20 +149,17 @@ $query = " "; $result = db_query ($query); -if ($result['rows'] > 0) -{ - while ($row = db_array ($result['result'])) - { - if ('pgsql'==$CONF['database_type']) - { - //. at least in my database, $row['modified'] already looks like : 2009-04-11 21:38:10.75586+01, - // while gmstrftime expects an integer value. strtotime seems happy though. - //$row['modified']=gmstrftime('%c %Z',$row['modified']); - $row['modified'] = date('Y-m-d H:i', strtotime($row['modified'])); - $row['active']=('t'==$row['active']) ? 1 : 0; - } - $tAlias[] = $row; - } +if ($result['rows'] > 0) { + while ($row = db_array ($result['result'])) { + if ('pgsql'==$CONF['database_type']) { + //. at least in my database, $row['modified'] already looks like : 2009-04-11 21:38:10.75586+01, + // while gmstrftime expects an integer value. strtotime seems happy though. + //$row['modified']=gmstrftime('%c %Z',$row['modified']); + $row['modified'] = date('Y-m-d H:i', strtotime($row['modified'])); + $row['active']=('t'==$row['active']) ? 1 : 0; + } + $tAlias[] = $row; + } } @@ -222,11 +213,9 @@ $query = "$sql_select\n$mailbox_pagebrowser_query\n$sql_limit"; $result = db_query ($query); -if ($result['rows'] > 0) -{ - while ($row = db_array ($result['result'])) - { - if ($display_mailbox_aliases) { +if ($result['rows'] > 0) { + while ($row = db_array ($result['result'])) { + if ($display_mailbox_aliases) { $goto_split = explode(",", $row['goto']); $row['goto_mailbox'] = 0; $row['goto_other'] = array(); @@ -240,20 +229,19 @@ if ($result['rows'] > 0) $row['goto_other'][] = $goto_single; } } - } - if ('pgsql'==$CONF['database_type']) - { - // XXX - $row['modified'] = date('Y-m-d H:i', strtotime($row['modified'])); - $row['created'] = date('Y-m-d H:i', strtotime($row['created'])); - $row['active']=('t'==$row['active']) ? 1 : 0; - if($row['v_active'] == NULL) { - $row['v_active'] = 'f'; - } - $row['v_active']=('t'==$row['v_active']) ? 1 : 0; - } - $tMailbox[] = $row; - } + } + if ('pgsql'==$CONF['database_type']) { + // XXX + $row['modified'] = date('Y-m-d H:i', strtotime($row['modified'])); + $row['created'] = date('Y-m-d H:i', strtotime($row['created'])); + $row['active']=('t'==$row['active']) ? 1 : 0; + if($row['v_active'] == NULL) { + $row['v_active'] = 'f'; + } + $row['v_active']=('t'==$row['v_active']) ? 1 : 0; + } + $tMailbox[] = $row; + } } $tCanAddAlias = false; @@ -261,53 +249,52 @@ $tCanAddMailbox = false; $limit = get_domain_properties($fDomain); if (isset ($limit)) { - if ($fDisplay >= $page_size) { - $tDisplay_back_show = 1; - $tDisplay_back = $fDisplay - $page_size; - } - if (($limit['alias_count'] > $page_size) or ($limit['mailbox_count'] > $page_size)) { - $tDisplay_up_show = 1; - } - if ((($fDisplay + $page_size) < $limit['alias_count']) or - (($fDisplay + $page_size) < $limit['mailbox_count'])) - { - $tDisplay_next_show = 1; - $tDisplay_next = $fDisplay + $page_size; - } - - if($limit['aliases'] == 0) { - $tCanAddAlias = true; - } - elseif($limit['alias_count'] < $limit['aliases']) { - $tCanAddAlias = true; - } - if($limit['mailboxes'] == 0) { - $tCanAddMailbox = true; - } - elseif($limit['mailbox_count'] < $limit['mailboxes']) { - $tCanAddMailbox = true; - } - - $limit ['aliases'] = eval_size ($limit ['aliases']); - $limit ['mailboxes'] = eval_size ($limit ['mailboxes']); - $limit ['maxquota'] = eval_size ($limit ['maxquota']); + if ($fDisplay >= $page_size) { + $tDisplay_back_show = 1; + $tDisplay_back = $fDisplay - $page_size; + } + if (($limit['alias_count'] > $page_size) or ($limit['mailbox_count'] > $page_size)) { + $tDisplay_up_show = 1; + } + if ( + (($fDisplay + $page_size) < $limit['alias_count']) or + (($fDisplay + $page_size) < $limit['mailbox_count']) + ) { + $tDisplay_next_show = 1; + $tDisplay_next = $fDisplay + $page_size; + } + + if($limit['aliases'] == 0) { + $tCanAddAlias = true; + } + elseif($limit['alias_count'] < $limit['aliases']) { + $tCanAddAlias = true; + } + if($limit['mailboxes'] == 0) { + $tCanAddMailbox = true; + } + elseif($limit['mailbox_count'] < $limit['mailboxes']) { + $tCanAddMailbox = true; + } + + $limit ['aliases'] = eval_size ($limit ['aliases']); + $limit ['mailboxes'] = eval_size ($limit ['mailboxes']); + $limit ['maxquota'] = eval_size ($limit ['maxquota']); } $gen_show_status = array (); $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']); - } + 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']); + } $gen_show_status_mailbox = array (); $divide_quota = array ('current' => array(), 'quota' => array()); if ((is_array ($tMailbox) and sizeof ($tMailbox) > 0)) - for ($i = 0; $i < sizeof ($tMailbox); $i++) - { + for ($i = 0; $i < sizeof ($tMailbox); $i++) { $gen_show_status_mailbox [$i] = gen_show_status($tMailbox[$i]['username']); if(isset($tMailbox[$i]['current'])) { $divide_quota ['current'][$i] = divide_quota ($tMailbox[$i]['current']); @@ -315,98 +302,98 @@ if ((is_array ($tMailbox) and sizeof ($tMailbox) > 0)) if(isset($tMailbox[$i]['quota'])) { $divide_quota ['quota'][$i] = divide_quota ($tMailbox[$i]['quota']); } - } - + } + class cNav_bar { - var $count, $title, $limit, $page_size, $pages, $search; //* arguments - var $url; //* manually - var $fInit, $arr_prev, $arr_next, $arr_top; //* internal - var $anchor; - function cNav_bar ($aTitle, $aLimit, $aPage_size, $aPages, $aSearch) - { - $this->count = count($aPages); - $this->title = $aTitle; - $this->limit = $aLimit; - $this->page_size = $aPage_size; - $this->pages = $aPages; + var $count, $title, $limit, $page_size, $pages, $search; //* arguments + var $url; //* manually + var $fInit, $arr_prev, $arr_next, $arr_top; //* internal + var $anchor; + + function cNav_bar ($aTitle, $aLimit, $aPage_size, $aPages, $aSearch) { + $this->count = count($aPages); + $this->title = $aTitle; + $this->limit = $aLimit; + $this->page_size = $aPage_size; + $this->pages = $aPages; if ($aSearch == "") { $this->search = ""; } else { $this->search = "&search=" . htmlentities($aSearch); } - $this->url = ''; - $this->fInit = false; - } - function init () - { - $this->anchor = 'a'.substr ($this->title, 3); - $this->url .= '#'.$this->anchor; - ($this->limit >= $this->page_size) ? $this->arr_prev = ' ' : $this->arr_prev = ''; - ($this->limit > 0) ? $this->arr_top = ' ' : $this->arr_top = ''; - (($this->limit + $this->page_size) < ($this->count * $this->page_size)) ? $this->arr_next = ' ' : $this->arr_next = ''; - $this->fInit = true; - } - function display_pre () - { - $ret_val = '
'; - return $ret_val; - } - function display_top () - { - $ret_val = ''; - if ($this->count < 1) - return $ret_val; - if (!$this->fInit) - $this->init (); - - $ret_val .= ''; - $ret_val .= $this->display_pre (); - $ret_val .= ''.$this->title.' '; - ($this->limit >= $this->page_size) ? $highlight_at = $this->limit / $this->page_size : $highlight_at = 0; - - for ($i = 0; $i < count ($this->pages); $i++) - { - $lPage = $this->pages [$i]; - if ($i == $highlight_at) - $lPage = ''.$lPage.''; - $ret_val .= ''.$lPage.''."\n"; - } - $ret_val .= '