function requireDomainAdmin()
{
    $userId = requireLogin();
    if (!isDomainAdmin()) {
        header('HTTP/1.1 403 Forbidden: Not a domain administrator');
        exit;
    }
    return $userId;
}
function getForwards()
{
    if (!isDomainAdmin()) {
        return FALSE;
    }
    $sql = 'SELECT' . '  alias_id,' . '  (username || \'@\' || domain) AS email,' . '  domain,' . '  destination,' . '  active' . '  FROM virtual_aliases' . '  JOIN virtual_domains USING(domain_id)' . '  WHERE domain IN (' . quotedAdminDomainString() . '  )' . '  AND (username || \'@\' || domain) IN (' . quotedAdminUserString() . '  )' . '  AND (username || \'@\' || domain) != destination' . '  AND (username || \'@\' || domain || \'@autoreply.\' || domain) != destination' . '  ORDER BY domain, username, destination';
    $rows = db_getrows($sql);
    $i = 0;
    foreach ($rows as $row) {
        if ($row['active'] == 't') {
            $rows[$i]['active'] = TRUE;
        } else {
            $rows[$i]['active'] = FALSE;
        }
        $i++;
    }
    return $rows;
}
function modifyDomainPerm($domainId, $userId, $admin)
{
    if (!$domainId || !$userId) {
        return FALSE;
    }
    if (!isDomainAdmin()) {
        return FALSE;
    }
    if ($userId == $_SESSION['user']['user_id']) {
        return FALSE;
    }
    if (!userIsActive($userId)) {
        return FALSE;
    }
    $user = getUserEmail($userId);
    if (!$user) {
        return FALSE;
    }
    $domain = getDomain($domainId);
    if (!$domain) {
        return FALSE;
    }
    $adminDomains = getAdminDomains();
    if (!in_array($domain, $adminDomains)) {
        return FALSE;
    }
    $params = array('user_id' => $userId, 'domain_id' => $domainId);
    if ($admin) {
        return db_insert('domain_administrators', $params, 'admin_id');
    } else {
        return db_delete('domain_administrators', $params);
    }
}
Exemple #4
0
if (!isSiteAdmin()) {
    $yourSettings[] = array('text' => 'Local Delivery', 'id' => 'local', 'leaf' => TRUE);
}
$tree[] = array('text' => 'Your Settings', 'id' => 'your-settings', 'children' => $yourSettings);
$siteAdministration = array();
$domainAdministration = array();
$siteAdministration[] = array('text' => 'Domains', 'id' => 'manage-domains', 'leaf' => TRUE);
$domainAdministration[] = array('text' => 'Users', 'id' => 'manage-users', 'leaf' => TRUE);
$domainAdministration[] = array('text' => 'User Forwards', 'id' => 'manage-forwards', 'leaf' => TRUE);
$domainAdministration[] = array('text' => 'Aliases', 'id' => 'manage-aliases', 'leaf' => TRUE);
$domainAdministration[] = array('text' => 'Catch All Forwards', 'id' => 'catchall-addresses', 'leaf' => TRUE);
$domainAdministration[] = array('text' => 'Domain Administrators', 'id' => 'manage-domain-permissions', 'leaf' => TRUE);
$siteAdministration[] = array('text' => 'Site Administrators', 'id' => 'manage-site-administrators', 'leaf' => TRUE);
$siteAdministration[] = array('text' => 'Virtual to Local Forwards', 'id' => 'manage-local-forwards', 'leaf' => TRUE);
$siteAdministration[] = array('text' => 'Local Aliases', 'id' => 'manage-local-aliases', 'leaf' => TRUE);
if (isDomainAdmin()) {
    $tree[] = array('text' => 'Domain Administration', 'id' => 'domain-administration', 'children' => $domainAdministration);
}
if (isSiteAdmin()) {
    $tree[] = array('text' => 'Site Administration', 'id' => 'site-administration', 'children' => $siteAdministration);
    $stats = array();
    if ($config['stats']['pflogsumm']['enabled']) {
        $stats[] = array('text' => 'Log Summary', 'id' => 'log-summary', 'leaf' => TRUE);
    }
    if ($config['stats']['mailgraph']['enabled']) {
        $stats[] = array('text' => 'Graphs', 'id' => 'graphs', 'children' => array(array('text' => 'Last Day', 'id' => 'last-day-stats', 'leaf' => TRUE), array('text' => 'Last Week', 'id' => 'last-week-stats', 'leaf' => TRUE), array('text' => 'Last Month', 'id' => 'last-month-stats', 'leaf' => TRUE), array('text' => 'Last Year', 'id' => 'last-year-stats', 'leaf' => TRUE)));
    }
    if ($config['stats']['enabled']) {
        $tree[] = array('text' => 'Mail Server Stats', 'id' => 'server-stats', 'children' => $stats);
    }
    if ($config['logs']['enabled']) {
function removeAlias($aliasId)
{
    if (!$aliasId) {
        return FALSE;
    }
    if (!isDomainAdmin()) {
        return FALSE;
    }
    $alias = loadAlias($aliasId);
    if (!$alias) {
        return FALSE;
    }
    $domain = $alias['domain'];
    $adminDomains = getAdminDomains();
    if (!in_array($domain, $adminDomains)) {
        return FALSE;
    }
    $destinationParts = split('@', $alias['destination']);
    $destinationDomain = $destinationParts[1];
    if (!in_array($destinationDomain, $adminDomains)) {
        return FALSE;
    }
    $conditions = array('alias_id' => $aliasId);
    return db_delete('virtual_aliases', $conditions);
}