501 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			501 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
require_once "inc/prerequisites.inc.php";
 | 
						|
 | 
						|
if ($_SESSION['mailcow_cc_role'] == "admin" || $_SESSION['mailcow_cc_role'] == "domainadmin") {
 | 
						|
require_once "inc/header.inc.php";
 | 
						|
$_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
 | 
						|
?>
 | 
						|
<div class="container">
 | 
						|
	<div class="row">
 | 
						|
		<div class="col-md-12">
 | 
						|
			<div class="panel panel-default">
 | 
						|
				<div class="panel-heading">
 | 
						|
				<h3 class="panel-title"><?=$lang['mailbox']['domains'];?> <span class="badge" id="numRowsDomain"></span></h3>
 | 
						|
				<div class="pull-right">
 | 
						|
					<span class="clickable filter" data-toggle="tooltip" title="<?=$lang['mailbox']['filter_table'];?>" data-container="body">
 | 
						|
						<i class="glyphicon glyphicon-filter"></i>
 | 
						|
					</span>
 | 
						|
				<?php
 | 
						|
				if ($_SESSION['mailcow_cc_role'] == "admin"):
 | 
						|
				?>
 | 
						|
					<a href="/add.php?domain"><span class="glyphicon glyphicon-plus"></span></a>
 | 
						|
				<?php
 | 
						|
				endif;
 | 
						|
				?>
 | 
						|
				</div>
 | 
						|
				</div>
 | 
						|
				<div class="panel-body">
 | 
						|
					<input type="text" class="form-control" id="domaintable-filter" data-action="filter" data-filters="#domaintable" placeholder="Filter" />
 | 
						|
				</div>
 | 
						|
				<div class="table-responsive">
 | 
						|
				<table class="table table-striped sortable-theme-bootstrap" data-sortable id="domaintable">
 | 
						|
					<thead>
 | 
						|
						<tr>
 | 
						|
							<th class="sort-table" style="min-width: 86px;"><?=$lang['mailbox']['domain'];?></th>
 | 
						|
							<th class="sort-table" style="min-width: 81px;"><?=$lang['mailbox']['aliases'];?></th>
 | 
						|
							<th class="sort-table" style="min-width: 99px;"><?=$lang['mailbox']['mailboxes'];?></th>
 | 
						|
							<th class="sort-table" style="min-width: 172px;"><?=$lang['mailbox']['mailbox_quota'];?></th>
 | 
						|
							<th class="sort-table" style="min-width: 117px;"><?=$lang['mailbox']['domain_quota'];?></th>
 | 
						|
							<?php
 | 
						|
							if ($_SESSION['mailcow_cc_role'] == "admin"):
 | 
						|
							?>
 | 
						|
								<th class="sort-table" style="min-width: 105px;"><?=$lang['mailbox']['backup_mx'];?></th>
 | 
						|
							<?php
 | 
						|
							endif;
 | 
						|
							?>
 | 
						|
							<th class="sort-table" style="min-width: 76px;"><?=$lang['mailbox']['active'];?></th>
 | 
						|
							<th style="text-align: right; min-width: 200px;" data-sortable="false"><?=$lang['mailbox']['action'];?></th>
 | 
						|
						</tr>
 | 
						|
					</thead>
 | 
						|
					<tbody>
 | 
						|
					<?php
 | 
						|
					try {
 | 
						|
						$stmt = $pdo->prepare("SELECT 
 | 
						|
								`domain`,
 | 
						|
								`aliases`,
 | 
						|
								`mailboxes`, 
 | 
						|
								`maxquota` * 1048576 AS `maxquota`,
 | 
						|
								`quota` * 1048576 AS `quota`,
 | 
						|
								CASE `backupmx` WHEN 1 THEN '".$lang['mailbox']['yes']."' ELSE '".$lang['mailbox']['no']."' END AS `backupmx`,
 | 
						|
								CASE `active` WHEN 1 THEN '".$lang['mailbox']['yes']."' ELSE '".$lang['mailbox']['no']."' END AS `active`
 | 
						|
									FROM `domain` WHERE
 | 
						|
										`domain` IN (
 | 
						|
											SELECT `domain` FROM `domain_admins` WHERE `username`= :username AND `active`='1'
 | 
						|
										)
 | 
						|
										OR 'admin'= :admin");
 | 
						|
						$stmt->execute(array(
 | 
						|
							':username' => $_SESSION['mailcow_cc_username'],
 | 
						|
							':admin' => $_SESSION['mailcow_cc_role'],
 | 
						|
						));
 | 
						|
						$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
 | 
						|
					}
 | 
						|
					catch (PDOException $e) {
 | 
						|
						$_SESSION['return'] = array(
 | 
						|
							'type' => 'danger',
 | 
						|
							'msg' => 'MySQL: '.$e
 | 
						|
						);
 | 
						|
						return false;
 | 
						|
					}
 | 
						|
	        if(!empty($rows)):
 | 
						|
					while($row = array_shift($rows)):
 | 
						|
						try {
 | 
						|
							$stmt = $pdo->prepare("SELECT COUNT(*) AS `count` FROM `alias`
 | 
						|
								WHERE `domain`= :domain
 | 
						|
								AND `address` NOT IN (
 | 
						|
									SELECT `username` FROM `mailbox`)");
 | 
						|
							$stmt->execute(array(':domain' => $row['domain']));
 | 
						|
							$AliasData = $stmt->fetch(PDO::FETCH_ASSOC);
 | 
						|
			
 | 
						|
							$stmt = $pdo->prepare("SELECT 
 | 
						|
								COUNT(*) AS `count`,
 | 
						|
								COALESCE(SUM(`quota`), '0') AS `quota`
 | 
						|
									FROM `mailbox`
 | 
						|
										WHERE `domain` = :domain");
 | 
						|
							$stmt->execute(array(':domain' => $row['domain']));
 | 
						|
							$MailboxData = $stmt->fetch(PDO::FETCH_ASSOC);
 | 
						|
						}
 | 
						|
						catch (PDOException $e) {
 | 
						|
							$_SESSION['return'] = array(
 | 
						|
								'type' => 'danger',
 | 
						|
								'msg' => 'MySQL: '.$e
 | 
						|
							);
 | 
						|
							return false;
 | 
						|
						}
 | 
						|
					?>
 | 
						|
						<tr id="data">
 | 
						|
							<td><?=htmlspecialchars($row['domain']);?></td>
 | 
						|
							<td><?=intval($AliasData['count']);?> / <?=intval($row['aliases']);?></td>
 | 
						|
							<td><?=$MailboxData['count'];?> / <?=$row['mailboxes'];?></td>
 | 
						|
							<td><?=formatBytes(intval($row['maxquota']), 2);?></td>
 | 
						|
							<td><?=formatBytes(intval($MailboxData['quota']), 2);?> / <?=formatBytes(intval($row['quota']));?></td>
 | 
						|
							<?php
 | 
						|
							if ($_SESSION['mailcow_cc_role'] == "admin"):
 | 
						|
							?>
 | 
						|
								<td><?=$row['backupmx'];?></td>
 | 
						|
							<?php
 | 
						|
							endif;
 | 
						|
							?>
 | 
						|
							<td><?=$row['active'];?></td>
 | 
						|
							<?php
 | 
						|
							if ($_SESSION['mailcow_cc_role'] == "admin"):
 | 
						|
							?>
 | 
						|
								<td style="text-align: right;">
 | 
						|
									<div class="btn-group">
 | 
						|
										<a href="/edit.php?domain=<?=urlencode($row['domain']);?>" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> <?=$lang['mailbox']['edit'];?></a>
 | 
						|
										<a href="/delete.php?domain=<?=urlencode($row['domain']);?>" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> <?=$lang['mailbox']['remove'];?></a>
 | 
						|
									</div>
 | 
						|
								</td>
 | 
						|
							<?php
 | 
						|
							else:
 | 
						|
							?>
 | 
						|
								<td style="text-align: right;">
 | 
						|
									<div class="btn-group">
 | 
						|
										<a href="/edit.php?domain=<?=urlencode($row['domain']);?>" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> <?=$lang['mailbox']['edit'];?></a>
 | 
						|
									</div>
 | 
						|
								</td>
 | 
						|
						</tr>
 | 
						|
							<?php
 | 
						|
							endif;
 | 
						|
							endwhile;
 | 
						|
	            else:
 | 
						|
							?>
 | 
						|
							  <tr id="no-data"><td colspan="8" style="text-align: center; font-style: italic;"><?=$lang['mailbox']['no_record'];?></td></tr>
 | 
						|
							<?php
 | 
						|
							endif;
 | 
						|
							?>
 | 
						|
					</tbody>
 | 
						|
						<?php
 | 
						|
						if ($_SESSION['mailcow_cc_role'] == "admin"):
 | 
						|
						?>
 | 
						|
					<tfoot>
 | 
						|
						<tr id="no-data">
 | 
						|
							<td colspan="8" style="text-align: center; font-style: normal; border-top: 1px solid #e7e7e7;">
 | 
						|
								<a href="/add.php?domain" class="btn btn-xs btn-primary"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_domain'];?></a>
 | 
						|
							</td>
 | 
						|
						</tr>
 | 
						|
					</tfoot>
 | 
						|
						<?php
 | 
						|
						endif;
 | 
						|
						?>
 | 
						|
				</table>
 | 
						|
				</div>
 | 
						|
			</div>
 | 
						|
		</div>
 | 
						|
	</div>
 | 
						|
	<div class="row">
 | 
						|
		<div class="col-md-12">
 | 
						|
			<div class="panel panel-default">
 | 
						|
				<div class="panel-heading">
 | 
						|
					<h3 class="panel-title"><?=$lang['mailbox']['domain_aliases'];?> <span class="badge" id="numRowsDomainAlias"></span></h3>
 | 
						|
					<div class="pull-right">
 | 
						|
						<span class="clickable filter" data-toggle="tooltip" title="<?=$lang['mailbox']['filter_table'];?>" data-container="body">
 | 
						|
							<i class="glyphicon glyphicon-filter"></i>
 | 
						|
						</span>
 | 
						|
						<a href="/add.php?aliasdomain"><span class="glyphicon glyphicon-plus"></span></a>
 | 
						|
					</div>
 | 
						|
				</div>
 | 
						|
				<div class="panel-body">
 | 
						|
					<input type="text" class="form-control" id="domainaliastable-filter" data-action="filter" data-filters="#domainaliastable" placeholder="Filter" />
 | 
						|
				</div>
 | 
						|
				<div class="table-responsive">
 | 
						|
				<table class="table table-striped sortable-theme-bootstrap" data-sortable id="domainaliastable">
 | 
						|
					<thead>
 | 
						|
						<tr>
 | 
						|
							<th class="sort-table" style="min-width: 67px;"><?=$lang['mailbox']['alias'];?></th>
 | 
						|
							<th class="sort-table" style="min-width: 127px;"><?=$lang['mailbox']['target_domain'];?></th>
 | 
						|
							<th class="sort-table" style="min-width: 76px;"><?=$lang['mailbox']['active'];?></th>
 | 
						|
							<th style="text-align: right; min-width: 200px;" data-sortable="false"><?=$lang['mailbox']['action'];?></th>
 | 
						|
						</tr>
 | 
						|
					</thead>
 | 
						|
					<tbody>
 | 
						|
					<?php
 | 
						|
					try {
 | 
						|
						$stmt = $pdo->prepare("SELECT 
 | 
						|
								`alias_domain`,
 | 
						|
								`target_domain`,
 | 
						|
								CASE `active` WHEN 1 THEN '".$lang['mailbox']['yes']."' ELSE '".$lang['mailbox']['no']."' END AS `active`
 | 
						|
									FROM `alias_domain`
 | 
						|
										WHERE `target_domain` IN (
 | 
						|
											SELECT `domain` FROM `domain_admins`
 | 
						|
												WHERE `username`= :username 
 | 
						|
												AND `active`='1'
 | 
						|
										)
 | 
						|
										OR 'admin' = :admin");
 | 
						|
						$stmt->execute(array(
 | 
						|
							':username' => $_SESSION['mailcow_cc_username'],
 | 
						|
							':admin' => $_SESSION['mailcow_cc_role'],
 | 
						|
						));
 | 
						|
						$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
 | 
						|
					} catch(PDOException $e) {
 | 
						|
						$_SESSION['return'] = array(
 | 
						|
							'type' => 'danger',
 | 
						|
							'msg' => 'MySQL: '.$e
 | 
						|
						);
 | 
						|
					}
 | 
						|
	        if(!empty($rows)):
 | 
						|
					while($row = array_shift($rows)):
 | 
						|
					?>
 | 
						|
						<tr id="data">
 | 
						|
							<td><?=htmlspecialchars($row['alias_domain']);?></td>
 | 
						|
							<td><?=htmlspecialchars($row['target_domain']);?></td>
 | 
						|
							<td><?=$row['active'];?></td>
 | 
						|
							<td style="text-align: right;">
 | 
						|
								<div class="btn-group">
 | 
						|
									<a href="/edit.php?aliasdomain=<?=urlencode($row['alias_domain']);?>" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> <?=$lang['mailbox']['edit'];?></a>
 | 
						|
									<a href="/delete.php?aliasdomain=<?=urlencode($row['alias_domain']);?>" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> <?=$lang['mailbox']['remove'];?></a>
 | 
						|
								</div>
 | 
						|
							</td>
 | 
						|
						</tr>
 | 
						|
					<?php
 | 
						|
					endwhile;
 | 
						|
	        else:
 | 
						|
	        ?>
 | 
						|
						<tr id="no-data"><td colspan="4" style="text-align: center; font-style: italic;"><?=$lang['mailbox']['no_record'];?></td></tr>
 | 
						|
	        <?php
 | 
						|
	        endif;
 | 
						|
					?>
 | 
						|
					</tbody>
 | 
						|
					<tfoot>
 | 
						|
						<tr id="no-data">
 | 
						|
							<td colspan="8" style="text-align: center; border-top: 1px solid #e7e7e7;">
 | 
						|
								<a href="/add.php?aliasdomain" class="btn btn-xs btn-primary"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_domain_alias'];?></a>
 | 
						|
							</td>
 | 
						|
						</tr>
 | 
						|
					</tfoot>
 | 
						|
				</table>
 | 
						|
				</div>
 | 
						|
			</div>
 | 
						|
		</div>
 | 
						|
	</div>
 | 
						|
	<div class="row">
 | 
						|
		<div class="col-md-12">
 | 
						|
			<div class="panel panel-default">
 | 
						|
				<div class="panel-heading">
 | 
						|
					<h3 class="panel-title"><?=$lang['mailbox']['mailboxes'];?> <span class="badge" id="numRowsMailbox"></span></h3>
 | 
						|
					<div class="pull-right">
 | 
						|
						<span class="clickable filter" data-toggle="tooltip" title="<?=$lang['mailbox']['filter_table'];?>" data-container="body">
 | 
						|
							<i class="glyphicon glyphicon-filter"></i>
 | 
						|
						</span>
 | 
						|
						<a href="/add.php?mailbox"><span class="glyphicon glyphicon-plus"></span></a>
 | 
						|
					</div>
 | 
						|
				</div>
 | 
						|
				<div class="panel-body">
 | 
						|
					<input type="text" class="form-control" id="mailboxtable-filter" data-action="filter" data-filters="#mailboxtable" placeholder="Filter" />
 | 
						|
				</div>
 | 
						|
				<div class="table-responsive">
 | 
						|
				<table class="table table-striped sortable-theme-bootstrap" data-sortable id="mailboxtable">
 | 
						|
					<thead>
 | 
						|
						<tr>
 | 
						|
							<th class="sort-table" style="min-width: 100px;"><?=$lang['mailbox']['username'];?></th>
 | 
						|
							<th class="sort-table" style="min-width: 98px;"><?=$lang['mailbox']['fname'];?></th>
 | 
						|
							<th class="sort-table" style="min-width: 86px;"><?=$lang['mailbox']['domain'];?></th>
 | 
						|
							<th class="sort-table" style="min-width: 75px;"><?=$lang['mailbox']['quota'];?></th>
 | 
						|
							<th class="sort-table" style="min-width: 99px;"><?=$lang['mailbox']['in_use'];?></th>
 | 
						|
							<th class="sort-table" style="min-width: 100px;"><?=$lang['mailbox']['msg_num'];?></th>
 | 
						|
							<th class="sort-table" style="min-width: 76px;"><?=$lang['mailbox']['active'];?></th>
 | 
						|
							<th style="text-align: right; min-width: 200px;" data-sortable="false"><?=$lang['mailbox']['action'];?></th>
 | 
						|
						</tr>
 | 
						|
					</thead>
 | 
						|
					<tbody>
 | 
						|
						<?php
 | 
						|
						try {
 | 
						|
							$stmt = $pdo->prepare("SELECT
 | 
						|
									`domain`.`backupmx`,
 | 
						|
									`mailbox`.`username`,
 | 
						|
									`mailbox`.`name`,
 | 
						|
									CASE `mailbox`.`active` WHEN 1 THEN '".$lang['mailbox']['yes']."' ELSE '".$lang['mailbox']['no']."' END AS `active`,
 | 
						|
									`mailbox`.`domain`,
 | 
						|
									`mailbox`.`quota`,
 | 
						|
									`quota2`.`bytes`,
 | 
						|
									`quota2`.`messages`
 | 
						|
										FROM `mailbox`, `quota2`, `domain`
 | 
						|
											WHERE (`mailbox`.`username` = `quota2`.`username`)
 | 
						|
											AND (`domain`.`domain` = `mailbox`.`domain`)
 | 
						|
											AND (`mailbox`.`domain` IN (
 | 
						|
												SELECT `domain` FROM `domain_admins`
 | 
						|
													WHERE `username`= :username
 | 
						|
														AND `active`='1'
 | 
						|
													)
 | 
						|
													OR 'admin' = :admin)");
 | 
						|
							$stmt->execute(array(
 | 
						|
								':username' => $_SESSION['mailcow_cc_username'],
 | 
						|
								':admin' => $_SESSION['mailcow_cc_role'],
 | 
						|
							));
 | 
						|
							$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
 | 
						|
						}
 | 
						|
						catch (PDOException $e) {
 | 
						|
							$_SESSION['return'] = array(
 | 
						|
								'type' => 'danger',
 | 
						|
								'msg' => 'MySQL: '.$e
 | 
						|
							);
 | 
						|
							return false;
 | 
						|
						}
 | 
						|
	          if(!empty($rows)):
 | 
						|
						while($row = array_shift($rows)):
 | 
						|
						?>
 | 
						|
						<tr id="data">
 | 
						|
							<?php
 | 
						|
							if ($row['backupmx'] == "0"):
 | 
						|
							?>
 | 
						|
								<td><?=htmlspecialchars($row['username']);?></td>
 | 
						|
							<?php
 | 
						|
							else:
 | 
						|
							?>
 | 
						|
								<td><span data-toggle="tooltip" title="Relayed"><i class="glyphicon glyphicon-forward"></i> <?=htmlspecialchars($row['username']);?></span></td>
 | 
						|
							<?php
 | 
						|
							endif;
 | 
						|
							?>
 | 
						|
							<td><?=htmlspecialchars($row['name'], ENT_QUOTES, 'UTF-8');?></td>
 | 
						|
							<td><?=htmlspecialchars($row['domain']);?></td>
 | 
						|
							<td><?=formatBytes(intval($row['bytes']), 2);?> / <?=formatBytes(intval($row['quota']), 2);?></td>
 | 
						|
							<td style="min-width:120px;">
 | 
						|
								<?php
 | 
						|
								$percentInUse = round((intval($row['bytes']) / intval($row['quota'])) * 100);
 | 
						|
								if ($percentInUse >= 90) {
 | 
						|
									$pbar = "progress-bar-danger";
 | 
						|
								}
 | 
						|
								elseif ($percentInUse >= 75) {
 | 
						|
									$pbar = "progress-bar-warning";
 | 
						|
								}
 | 
						|
								else {
 | 
						|
									$pbar = "progress-bar-success";
 | 
						|
								}
 | 
						|
								?>
 | 
						|
								<div class="progress">
 | 
						|
									<div class="progress-bar <?=$pbar;?>" role="progressbar" aria-valuenow="<?=$percentInUse;?>" aria-valuemin="0" aria-valuemax="100" style="min-width:2em;width: <?=$percentInUse;?>%;">
 | 
						|
										<?=$percentInUse;?>%
 | 
						|
									</div>
 | 
						|
								</div>
 | 
						|
							</td>
 | 
						|
							<td><?=$row['messages'];?></td>
 | 
						|
							<td><?=$row['active'];?></td>
 | 
						|
							<td style="text-align: right;">
 | 
						|
								<div class="btn-group">
 | 
						|
									<a href="/edit.php?mailbox=<?=urlencode($row['username']);?>" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> <?=$lang['mailbox']['edit'];?></a>
 | 
						|
									<a href="/delete.php?mailbox=<?=urlencode($row['username']);?>" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> <?=$lang['mailbox']['remove'];?></a>
 | 
						|
								</div>
 | 
						|
							</td>
 | 
						|
						</tr>
 | 
						|
						<?php
 | 
						|
						endwhile;
 | 
						|
	          else:
 | 
						|
						?>
 | 
						|
						  <tr id="no-data"><td colspan="8" style="text-align: center; font-style: italic;"><?=$lang['mailbox']['no_record'];?></td></tr>
 | 
						|
						<?php
 | 
						|
						endif;
 | 
						|
						?>
 | 
						|
					</tbody>
 | 
						|
					<tfoot>
 | 
						|
						<tr id="no-data">
 | 
						|
							<td colspan="8" style="text-align: center; border-top: 1px solid #e7e7e7;">
 | 
						|
								<a href="/add.php?mailbox" class="btn btn-xs btn-primary"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_mailbox'];?></a>
 | 
						|
							</td>
 | 
						|
						</tr>
 | 
						|
					</tfoot>
 | 
						|
				</table>
 | 
						|
				</div>
 | 
						|
			</div>
 | 
						|
		</div>
 | 
						|
	</div>
 | 
						|
	<div class="row">
 | 
						|
		<div class="col-md-12">
 | 
						|
			<div class="panel panel-default">
 | 
						|
				<div class="panel-heading">
 | 
						|
					<h3 class="panel-title"><?=$lang['mailbox']['aliases'];?> <span class="badge" id="numRowsAlias"></span></h3>
 | 
						|
					<div class="pull-right">
 | 
						|
						<span class="clickable filter" data-toggle="tooltip" title="<?=$lang['mailbox']['filter_table'];?>" data-container="body">
 | 
						|
							<i class="glyphicon glyphicon-filter"></i>
 | 
						|
						</span>
 | 
						|
						<a href="/add.php?alias"><span class="glyphicon glyphicon-plus"></span></a>
 | 
						|
					</div>
 | 
						|
				</div>
 | 
						|
				<div class="panel-body">
 | 
						|
					<input type="text" class="form-control" id="aliastable-filter" data-action="filter" data-filters="#aliastable" placeholder="Filter" />
 | 
						|
				</div>
 | 
						|
				<div class="table-responsive">
 | 
						|
				<table class="table table-striped sortable-theme-bootstrap" data-sortable id="aliastable">
 | 
						|
					<thead>
 | 
						|
						<tr>
 | 
						|
							<th class="sort-table" style="min-width: 67px;"><?=$lang['mailbox']['alias'];?></th>
 | 
						|
							<th class="sort-table" style="min-width: 119px;"><?=$lang['mailbox']['target_address'];?></th>
 | 
						|
							<th class="sort-table" style="min-width: 86px;"><?=$lang['mailbox']['domain'];?></th>
 | 
						|
							<th class="sort-table" style="min-width: 76px;"><?=$lang['mailbox']['active'];?></th>
 | 
						|
							<th style="text-align: right; min-width: 200px;" data-sortable="false"><?=$lang['mailbox']['action'];?></th>
 | 
						|
						</tr>
 | 
						|
					</thead>
 | 
						|
					<tbody>
 | 
						|
					<?php
 | 
						|
					try {
 | 
						|
						$stmt = $pdo->prepare("SELECT
 | 
						|
								`address`,
 | 
						|
								`goto`,
 | 
						|
								`domain`,
 | 
						|
								CASE `active` WHEN 1 THEN '".$lang['mailbox']['yes']."' ELSE '".$lang['mailbox']['no']."' END AS `active`
 | 
						|
									FROM alias
 | 
						|
										WHERE (
 | 
						|
											`address` NOT IN (
 | 
						|
												SELECT `username` FROM `mailbox`
 | 
						|
											)
 | 
						|
											AND `address` != `goto`
 | 
						|
										) AND (`domain` IN (
 | 
						|
											SELECT `domain` FROM `domain_admins`
 | 
						|
												WHERE `username` = :username 
 | 
						|
												AND active='1'
 | 
						|
											)
 | 
						|
											OR 'admin' = :admin)");
 | 
						|
						$stmt->execute(array(
 | 
						|
							':username' => $_SESSION['mailcow_cc_username'],
 | 
						|
							':admin' => $_SESSION['mailcow_cc_role'],
 | 
						|
						));
 | 
						|
						$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
 | 
						|
					}
 | 
						|
					catch (PDOException $e) {
 | 
						|
						$_SESSION['return'] = array(
 | 
						|
							'type' => 'danger',
 | 
						|
							'msg' => 'MySQL: '.$e
 | 
						|
						);
 | 
						|
						return false;
 | 
						|
					}
 | 
						|
	        if(!empty($rows)):
 | 
						|
					while($row = array_shift($rows)):
 | 
						|
					?>
 | 
						|
						<tr id="data">
 | 
						|
							<td>
 | 
						|
							<?php
 | 
						|
							if(!filter_var($row['address'], FILTER_VALIDATE_EMAIL)):
 | 
						|
							?>
 | 
						|
								<span class="glyphicon glyphicon-pushpin" aria-hidden="true"></span> Catch-all @<?=htmlspecialchars($row['domain']);?>
 | 
						|
							<?php
 | 
						|
							else:
 | 
						|
								echo htmlspecialchars($row['address']);
 | 
						|
							endif;
 | 
						|
							?>
 | 
						|
							</td>
 | 
						|
							<td>
 | 
						|
							<?php
 | 
						|
							foreach(explode(",", $row['goto']) as $goto) {
 | 
						|
								echo nl2br(htmlspecialchars($goto.PHP_EOL));
 | 
						|
							}
 | 
						|
							?>
 | 
						|
							</td>
 | 
						|
							<td><?=htmlspecialchars($row['domain']);?></td>
 | 
						|
							<td><?=$row['active'];?></td>
 | 
						|
							<td style="text-align: right;">
 | 
						|
								<div class="btn-group">
 | 
						|
									<a href="/edit.php?alias=<?=urlencode($row['address']);?>" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> <?=$lang['mailbox']['edit'];?></a>
 | 
						|
									<a href="/delete.php?alias=<?=urlencode($row['address']);?>" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> <?=$lang['mailbox']['remove'];?></a>
 | 
						|
								</div>
 | 
						|
							</td>
 | 
						|
						</tr>
 | 
						|
					<?php
 | 
						|
					endwhile;
 | 
						|
	        else:
 | 
						|
					?>
 | 
						|
					  <tr id="no-data"><td colspan="5" style="text-align: center; font-style: italic;"><?=$lang['mailbox']['no_record'];?></td></tr>
 | 
						|
					<?php
 | 
						|
					endif;	
 | 
						|
					?>
 | 
						|
					</tbody>
 | 
						|
					<tfoot>
 | 
						|
						<tr id="no-data">
 | 
						|
							<td colspan="8" style="text-align: center; border-top: 1px solid #e7e7e7;">
 | 
						|
								<a href="/add.php?alias" class="btn btn-xs btn-primary"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_alias'];?></a>
 | 
						|
							</td>
 | 
						|
						</tr>
 | 
						|
					</tfoot>
 | 
						|
				</table>
 | 
						|
				</div>
 | 
						|
			</div>
 | 
						|
		</div>
 | 
						|
	</div>
 | 
						|
</div> <!-- /container -->
 | 
						|
<script src="js/sorttable.js"></script>
 | 
						|
<script src="js/mailbox.js"></script>
 | 
						|
<?php
 | 
						|
require_once("inc/footer.inc.php");
 | 
						|
} else {
 | 
						|
	header('Location: /');
 | 
						|
	exit();
 | 
						|
}
 | 
						|
?>
 |