2007-03-24 08:27:00 +01:00
< ? php
//
// Postfix Admin
// by Mischa Peters <mischa at high5 dot net>
// Copyright (c) 2002 - 2005 High5!
// Licensed under GPL for more info check GPL-LICENSE.TXT
//
// File: list-virtual.php
//
// Template File: admin_list-virtual.tpl
//
// Template Variables:
//
// tMessage
// tAlias
// tMailbox
//
// Form POST \ GET Variables:
//
// fDomain
2007-08-13 23:26:54 +02:00
// fDisplay
2007-03-24 08:27:00 +01:00
//
require ( " ../variables.inc.php " );
require ( " ../config.inc.php " );
require ( " ../functions.inc.php " );
include ( " ../languages/ " . check_language () . " .lang " );
$SESSID_USERNAME = check_session ();
( ! check_admin ( $SESSID_USERNAME ) ? header ( " Location: " . $CONF [ 'postfix_admin_url' ] . " /main.php " ) && exit : '1' );
$list_domains = list_domains ();
2007-06-20 00:38:05 +02:00
2007-03-24 08:27:00 +01:00
$tAlias = array ();
$tMailbox = array ();
2007-08-13 23:26:54 +02:00
$fDisplay = 0 ;
$page_size = $CONF [ 'page_size' ];
2007-03-24 08:27:00 +01:00
if ( $_SERVER [ 'REQUEST_METHOD' ] == " GET " )
{
if ( isset ( $_GET [ 'domain' ])) $fDomain = escape_string ( $_GET [ 'domain' ]);
if ( isset ( $_GET [ 'limit' ])) $fDisplay = intval ( $_GET [ 'limit' ]);
2007-08-13 23:26:54 +02:00
}
else
{
if ( isset ( $_POST [ 'fDomain' ])) $fDomain = escape_string ( $_POST [ 'fDomain' ]);
if ( isset ( $_POST [ 'limit' ])) $fDisplay = intval ( $_POST [ 'limit' ]);
}
2007-03-24 08:27:00 +01:00
2007-08-13 23:29:33 +02:00
if (( is_array ( $list_domains ) and sizeof ( $list_domains ) > 0 )) if ( empty ( $fDomain )) $fDomain = $list_domains [ 0 ];
2007-03-24 08:27:00 +01:00
2007-08-13 23:29:33 +02:00
$limit = get_domain_properties ( $fDomain );
if (( is_array ( $list_domains ) and sizeof ( $list_domains ) > 0 )) if ( empty ( $fDomain )) $fDomain = $list_domains [ 1 ];
$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 ORDER BY $table_alias .address LIMIT $fDisplay , $page_size " ;
if ( 'pgsql' == $CONF [ 'database_type' ])
{
$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) ORDER BY address LIMIT $page_size OFFSET $fDisplay " ;
}
2007-03-24 08:27:00 +01:00
2007-08-13 23:29:33 +02:00
$result = db_query ( $query );
if ( $result [ 'rows' ] > 0 )
{
while ( $row = db_array ( $result [ 'result' ]))
2007-03-24 08:27:00 +01:00
{
2007-08-13 23:29:33 +02:00
if ( 'pgsql' == $CONF [ 'database_type' ])
2007-03-24 08:27:00 +01:00
{
2007-08-13 23:29:33 +02:00
$row [ 'modified' ] = gmstrftime ( '%c %Z' , $row [ 'modified' ]);
$row [ 'active' ] = ( 't' == $row [ 'active' ]) ? 1 : 0 ;
2007-03-24 08:27:00 +01:00
}
2007-08-13 23:29:33 +02:00
$tAlias [] = $row ;
2007-03-24 08:27:00 +01:00
}
2007-08-13 23:29:33 +02:00
}
2007-03-24 08:27:00 +01:00
2007-08-13 23:29:33 +02:00
if ( $CONF [ 'vacation_control_admin' ] == '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 .domain=' $fDomain ' ORDER BY $table_mailbox .username LIMIT $fDisplay , $page_size " );
if ( 'pgsql' == $CONF [ 'database_type' ])
2007-06-20 00:38:05 +02:00
{
2007-08-13 23:29:33 +02:00
//FIXME: postgres query needs to be rewrited
$query = " SELECT *,extract(epoch from created) as uts_created,extract(epoch from modified) as uts_modified FROM $table_mailbox WHERE domain=' $fDomain ' ORDER BY username LIMIT $page_size OFFSET $fDisplay " ;
2007-06-20 00:38:05 +02:00
}
2007-08-13 23:29:33 +02:00
}
else
{
$query = " SELECT * FROM $table_mailbox WHERE domain=' $fDomain ' ORDER BY username LIMIT $fDisplay , $page_size " ;
if ( 'pgsql' == $CONF [ 'database_type' ])
2007-03-24 08:27:00 +01:00
{
2007-08-13 23:29:33 +02:00
$query = " SELECT *,extract(epoch from created) as uts_created,extract(epoch from modified) as uts_modified FROM $table_mailbox WHERE domain=' $fDomain ' ORDER BY username LIMIT $page_size OFFSET $fDisplay " ;
}
2007-06-20 00:38:05 +02:00
2007-08-13 23:29:33 +02:00
}
$result = db_query ( $query );
if ( $result [ 'rows' ] > 0 )
{
while ( $row = db_array ( $result [ 'result' ]))
{
2007-06-20 00:38:05 +02:00
if ( 'pgsql' == $CONF [ 'database_type' ])
{
2007-08-13 23:29:33 +02:00
$row [ 'created' ] = gmstrftime ( '%c %Z' , $row [ 'uts_created' ]);
$row [ 'modified' ] = gmstrftime ( '%c %Z' , $row [ 'uts_modified' ]);
$row [ 'active' ] = ( 't' == $row [ 'active' ]) ? 1 : 0 ;
2007-08-17 17:12:39 +02:00
$row [ 'v_active' ] = 1 ; // default to off...
if ( isset ( $row [ 'v_active' ])) { /* key may not be present in results due to query from above */
$row [ 'v_active' ] = ( 't' == $row [ 'v_active' ]) ? 1 : 0 ;
}
2007-06-20 00:38:05 +02:00
}
2007-08-13 23:29:33 +02:00
$tMailbox [] = $row ;
2007-03-24 08:27:00 +01:00
}
2007-08-13 23:29:33 +02:00
}
if ( isset ( $limit ))
{
if ( $fDisplay >= $page_size )
2007-03-24 08:27:00 +01:00
{
2007-08-13 23:29:33 +02:00
$tDisplay_back_show = 1 ;
$tDisplay_back = $fDisplay - $page_size ;
2007-03-24 08:27:00 +01:00
}
2007-08-13 23:29:33 +02:00
if (( $limit [ 'alias_count' ] > $page_size ) or ( $limit [ 'mailbox_count' ] > $page_size ))
2007-03-24 08:27:00 +01:00
{
2007-08-13 23:29:33 +02:00
$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 ;
2007-03-24 08:27:00 +01:00
}
2007-08-13 23:29:33 +02:00
}
2007-03-24 08:27:00 +01:00
2007-08-31 02:31:35 +02:00
2007-08-13 23:29:33 +02:00
include ( " ../templates/header.tpl " );
include ( " ../templates/admin_menu.tpl " );
include ( " ../templates/admin_list-virtual.tpl " );
include ( " ../templates/footer.tpl " );
2007-03-24 08:27:00 +01:00
/* vim: set expandtab softtabstop=3 tabstop=3 shiftwidth=3: */
?>