function CreateMBX($uid, $MailBoxMaxSize = 0)
{
    $cyrus = new cyrus();
    if (!$cyrus->MailBoxExists($uid)) {
        build_progress("Check privileges...", 10);
        if (!checkrights($uid, $MailBoxMaxSize)) {
            build_progress("{error_creating_mailbox}", 110);
            return;
        }
        build_progress("{create_mailbox2}", 50);
        if (!$cyrus->CreateMailbox($uid, 1, 50)) {
            build_progress("{error_creating_mailbox}", 110);
            return;
        }
        build_progress("Building privileges", 80);
        $cyrus = new cyrus();
        $cyrus->CreateACLS($uid);
        build_progress("{success}", 100);
        echo $cyrus->cyrus_infos . "\n";
        return;
    }
    build_progress("Building privileges", 80);
    $cyrus = new cyrus();
    $cyrus->CreateACLS($uid);
    build_progress("{$uid}: {mailbox_already_exists} {success}", 100);
}
Example #2
0
function ApplyConfigMbx()
{
    $artica = new artica_general();
    $tpl = new templates();
    if ($artica->RelayType == "single") {
        echo $tpl->_parse_body(Infos('mailbox_main_settings', 'feature_disabled'));
        exit;
    }
    $ldap = new clladp();
    $hash = $ldap->Hash_all_mailboxesActives();
    if (!is_array($hash)) {
        echo $tpl->_parse_body(Infos('mailbox_main_settings', 'no_mailboxes'));
        exit;
    }
    $cyrus = new cyrus();
    $cyrconf = new cyrus_conf();
    $cyrconf->SaveToLdap();
    while (list($uid, $password) = each($hash)) {
        writelogs("Creating Mailbox {$uid}", __FUNCTION__, __FILE__);
        if (!$cyrus->CreateMailbox($uid, 1)) {
            writelogs("Creating Mailbox {$uid} failed aborting", __FUNCTION__, __FILE__);
            echo $tpl->_parse_body(InfosError('mailbox_main_settings', "{error_creating_mailbox} <strong>{$uid}</strong>"));
            exit;
        }
    }
    echo $tpl->_ENGINE_parse_body(Success('mailbox_main_settings'));
}
Example #3
0
function Cyrus_mailbox_apply_settings()
{
    $usr = new usersMenus();
    $tpl = new Templates();
    $uid = $_GET["Cyrus_mailbox_apply_settings"];
    if ($usr->AsMailBoxAdministrator == false) {
        echo $tpl->_ENGINE_parse_body('{no_privileges}');
        exit;
    }
    $cyrus = new cyrus();
    $ldap = new clladp();
    $hash = $ldap->UserDatas($uid);
    if ($hash["MailboxActive"] == "TRUE") {
        $createMailbox = true;
        if ($cyrus->CreateMailbox($uid) == false) {
            $createMailbox = false;
            $error = "{failed}:{creating_mailbox}:{$uid}\n{$cyrus->cyrus_last_error}\n";
        } else {
            $error = "{success}:{creating_mailbox}:{$uid}\n";
        }
    }
    echo html_entity_decode($tpl->_ENGINE_parse_body($error));
}
Example #4
0
function CreateMBX()
{
    $tpl = new templates();
    $uid = $_GET["CreateMBX"];
    $cyrus = new cyrus();
    if (!$cyrus->MailBoxExists($uid)) {
        echo $tpl->_ENGINE_parse_body("{$uid}: {$cyrus->cyrus_infos}");
        $cyrus->CreateMailbox($uid, 1);
        echo $tpl->_ENGINE_parse_body($cyrus->cyrus_infos);
    } else {
        echo $tpl->_ENGINE_parse_body("{$uid}: {mailbox_already_exists}\n");
    }
}
function rebuild_all_mailboxes($ou_encoded)
{
    if (!Build_pid_func(__FILE__, "rebuild_all_mailboxes_{$ou_encoded}")) {
        rebuild_all_mailboxes_events("Already executed", $ou_encoded);
        return;
    }
    $ldap = new clladp();
    $filter = "(&(objectClass=userAccount)(|(cn=*)(mail=*)))";
    $attrs = array("displayName", "uid", "mail", "givenname", "telephoneNumber", "title", "sn", "mozillaSecondEmail", "employeeNumber");
    $dn = "ou=" . base64_decode($ou_encoded) . ",dc=organizations,{$ldap->suffix}";
    $hash = $ldap->Ldap_search($dn, $filter, $attrs);
    $number = $hash["count"];
    rebuild_all_mailboxes_events("{$number} user(s) in {$dn}", $ou_encoded);
    for ($i = 0; $i < $number; $i++) {
        $userARR = $hash[$i];
        $uid = $userARR["uid"][0];
        $ct = new user($uid);
        if (strpos($uid, '$') > 0) {
            rebuild_all_mailboxes_events("{$ct->DisplayName} SKIP {computer}=TRUE", $ou_encoded);
            continue;
        }
        if ($ct->MailboxActive != 'TRUE') {
            rebuild_all_mailboxes_events("{$ct->DisplayName} SKIP MailboxActive=FALSE", $ou_encoded);
            continue;
        }
        $cyrus = new cyrus();
        if ($cyrus->MailBoxExists($uid)) {
            rebuild_all_mailboxes_events("[{$number}/{$i}]:: {$uid}: {mailbox_already_exists}", $ou_encoded);
            continue;
        }
        $cyrus->CreateMailbox($uid);
        rebuild_all_mailboxes_events("[{$number}/{$i}]::{$uid}: {$cyrus->cyrus_infos}", $ou_encoded);
    }
    rebuild_all_mailboxes_events("{success}", $ou_encoded);
}
Example #6
0
function users_create_mailbox()
{
    $dn = $_GET["users_create_mailbox"];
    $cyrus = new cyrus();
    $cyrus->CreateMailbox($_GET["uid"]);
    echo users_mailbox($dn);
}
function Cyrus_mailbox_apply_settings()
{
    $usr = new usersMenus();
    $tpl = new Templates();
    $show = array();
    $uid = $_GET["Cyrus_mailbox_apply_settings"];
    if ($usr->AsMailBoxAdministrator == false) {
        echo $tpl->_ENGINE_parse_body('{no_privileges}');
        exit;
    }
    $cyrus = new cyrus();
    $ldap = new clladp();
    $show[] = "{mailbox_creation_results}: {$uid}";
    $hash = $ldap->UserDatas($uid);
    if ($hash["MailboxActive"] == "TRUE") {
        $show[] = "{mailbox_enabled}";
        $createMailbox = true;
        if ($cyrus->CreateMailbox($uid) == false) {
            $createMailbox = false;
            $error = "{failed}:{creating_mailbox}:{$uid}\n{$cyrus->cyrus_last_error}\n";
        } else {
            $error = "{success}:{creating_mailbox}:{$uid}\n";
        }
        $show[] = $cyrus->cyrus_infos;
    } else {
        $show[] = "{mailbox_not_enabled}";
    }
    while (list($num, $ligne) = each($show)) {
        $html = $html . "<div style='font-size:12px;font-weight:bold;'>{$ligne}</div>\n";
    }
    echo "<div style='width:100%;height:250px;overflow:auto'>" . $tpl->_ENGINE_parse_body($html) . "</div>";
}
function MBXSetACL()
{
    $tpl = new templates();
    $uid = $_GET["MBXSetACL"];
    $cyrus = new cyrus();
    $cyrus->CreateMailbox($uid);
    echo $tpl->_ENGINE_parse_body($cyrus->cyrus_infos);
}
Example #9
0
function ActiveDirectorySync()
{
    $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".pid";
    $cache_file = "/etc/artica-postfix/pids/mailboxes.sync.ad.cache";
    $sock = new sockets();
    $unix = new unix();
    $users = new usersMenus();
    if (!$users->cyrus_imapd_installed) {
        echo "Sync client:: Cyrus-imapd is not installed\n";
        return;
    }
    $CyrusToAD = $sock->GET_INFO("CyrusToAD");
    if (!is_numeric($CyrusToAD)) {
        echo "Sync client:: Connexion to Active Directory is not enabled\n";
        return;
    }
    if ($CyrusToAD == 0) {
        echo "Sync client:: Connexion to Active Directory is not enabled\n";
        return;
    }
    $oldpid = @file_get_contents($pidfile);
    if ($unix->process_exists($oldpid)) {
        echo "Sync client:: Already {$oldpid} process executed\n";
        return;
    }
    @file_put_contents($pidfile, getmypid());
    $CyrusToADSyncTime = $sock->GET_INFO("CyrusToADSyncTime");
    if (!is_numeric($CyrusToADSyncTime)) {
        $CyrusToADSyncTime = 10;
    }
    if ($CyrusToADSyncTime < 3) {
        $CyrusToADSyncTime = 3;
    }
    if (!$GLOBALS["FORCE"]) {
        $time = file_time_min($cache_file);
        if ($time < $CyrusToADSyncTime) {
            echo "Sync client:: {$time}Mn, need {$CyrusToADSyncTime}Mn, aborting\n";
            return;
        }
    }
    @unlink($cache_file);
    $ldap = new clladp();
    $hashUsers = $ldap->Hash_GetALLUsers();
    if (!is_array($hashUsers)) {
        echo "Sync client:: no users\n";
    }
    $failed = 0;
    while (list($uid, $emailaddr) = each($hashUsers)) {
        if ($emailaddr == null) {
            echo "Sync client:: {$uid} skip (no email address set)\n";
            continue;
        }
        $cyrus = new cyrus();
        if ($cyrus->MailBoxExists($uid)) {
            echo "Sync client:: {$uid} Mailbox already exists\n";
            continue;
        }
        echo "Sync client:: {$uid} Creating mailbox\n";
        if ($cyrus->CreateMailbox($uid)) {
            $array[$uid] = "OK";
        } else {
            $array[$uid] = "Failed";
            $failed++;
        }
    }
    if (count($array) > 0) {
        while (list($uid, $rr) = each($array)) {
            $result[] = "{$uid}:{$rr}";
        }
        $unix = new unix();
        if ($failed > 0) {
            $failed_text = " {$failed} failed";
        }
        $unix->send_email_events(count($array) . " new created mailboxes {$failed_text} ", @implode("\n", $result), "mailboxes");
    }
}
Example #10
0
    die;
}
$sock = new sockets();
$ArticaFirstWizard = $sock->GET_INFO('ArticaFirstWizard');
if ($ArticaFirstWizard == 1) {
    die;
}
if ($users->POSTFIX_INSTALLED) {
    $ldap->AddDomainEntity($domainname, "{$domainname}");
    $main = new main_cf();
    $main->save_conf();
    $main->save_conf_to_server();
}
if ($users->cyrus_imapd_installed) {
    $cyr = new cyrus();
    $cyr->CreateMailbox("postmaster");
}
$sock->SET_INFO("ArticaFirstWizard", 1);
die;
function events($text)
{
    $logFile = "/var/log/artica-postfix/artica-status.debug";
    $pid = getmypid();
    $date = date('Y-m-d H:i:s');
    $size = @filesize($logFile);
    if ($size > 1000000) {
        @unlink($logFile);
    }
    $f = @fopen($logFile, 'a');
    $page = CurrentPageName();
    @fwrite($f, "{$date} [{$pid}] {$page} {$text}\n");
function create_mbx()
{
    if (!islogged(1)) {
        return false;
    }
    $users = new usersMenus();
    $cyrus = new cyrus();
    $uid = $_GET["mbx"];
    if ($cyrus->CreateMailbox($uid) == false) {
        $error = "{failed}:{creating_mailbox}:{$uid}\n{$cyrus->cyrus_last_error}\n";
    } else {
        $error = "{success}:{creating_mailbox}:{$uid}\n";
    }
    echo "Message from: {$users->hostname}\n";
    echo $error;
    echo "\n";
    echo $cyrus->cyrus_infos_cleaned;
}