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); }
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')); }
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)); }
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); }
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); }
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"); } }
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; }