Ejemplo n.º 1
0
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 page()
{
    $uid = $_GET["uid"];
    $uidenc = urlencode($uid);
    $users = new usersMenus();
    $page = CurrentPageName();
    $RealMailBox = false;
    $tpl = new templates();
    $page = CurrentPageName();
    $user = new user($uid);
    $t = time();
    $cyr = new cyrus();
    if ($GLOBALS["VERBOSE"]) {
        echo "<H1> cyrus ( ) -> IfMailBoxExists({$uid})</H1>\n";
    }
    $RealMailBox = $cyr->IfMailBoxExists($uid);
    if (!$RealMailBox) {
        if (preg_match("#Authentication failed#i", $cyr->cyrus_infos)) {
            echo USER_MAILBOX_AUTHENTICATION_FAILED($uid, nl2br($cyr->cyrus_infos));
            return;
        }
        echo USER_MAILBOX_NONEXISTENT($uid, nl2br($cyr->cyrus_infos));
        $no_mailbox = "<p class=caption style='color:#d32d2d'>{user_no_mailbox} !!</p>";
        return;
    }
    if ($user->MailboxActive == 'TRUE') {
        $MailboxActive = 1;
        $cyrus = new cyrus();
        $res = $cyrus->get_quota_array($uid);
        $size = $cyrus->MailboxInfosSize($uid);
        $orgfree = $cyrus->USER_STORAGE_LIMIT - $cyrus->USER_STORAGE_USAGE;
        $free = FormatBytes($orgfree);
        if ($cyrus->MailBoxExists($uid)) {
            $graph1 = InsertChart('js/charts.swf', "js/charts_library", "listener.graphs.php?USER_STORAGE_USAGE={$cyrus->USER_STORAGE_USAGE}&STORAGE_LIMIT={$cyrus->USER_STORAGE_LIMIT}&FREE={$orgfree}", 200, 167, "", true, $users->ChartLicence);
        } else {
            $graph1 = "<H3>{no_mailbox_user}</H3>";
        }
        $mailboxInfos = "<div>\n\t\t\t<i>" . FormatBytes($cyrus->USER_STORAGE_USAGE) . "/" . FormatBytes($cyrus->USER_STORAGE_LIMIT) . "<br>\n\t\t\t({$free} {free})</i><br><strong>" . FormatBytes($size) . " used</strong>\n\t\t\t </div>";
    }
    $export_mailbox = $tpl->_ENGINE_parse_body('{export_mailbox}');
    $import_mailbox = $tpl->_ENGINE_parse_body('{import_mailbox}');
    if (strlen($import_mailbox) > strlen($export_mailbox)) {
        $import_mailbox = substr($import_mailbox, 0, strlen($export_mailbox) - 3) . "...";
    }
    //sudo -u cyrusimap /usr/bin/cyrus/bin/reconstruct -r -f user/shortname
    $tr[] = button("{repair_mailbox}", "Loadjs('domains.edit.user.php?script=repair_mailbox&uid={$uidenc}');", 18, 286);
    $tr[] = button("{export_mailbox}", "Loadjs('domains.edit.user.php?script=export_script&uid={$uidenc}');", 18, 286);
    $tr[] = button("{empty_this_mailbox}", "Loadjs('domains.edit.user.empty.mailbox.php?&userid={$uidenc}');", 18, 286);
    $tr[] = button("{delete_this_mailbox}", "Loadjs('domains.edit.user.php?script=delete_mailbox&uid={$uidenc}');", 18, 286);
    while (list($key, $line) = each($tr)) {
        $buttons = $buttons . "\n\t<tr>\n\t\t<td><center style='margin-bottom:15px'>{$line}</center></td>\n\t</tr>\t\t\n\t\t\t\n\t";
    }
    if (!$RealMailBox) {
        $buttons = null;
    }
    $priv = new usersMenus();
    $ini = new Bs_IniHandler();
    $ini->loadString($user->MailboxSecurityParameters);
    $button = "\n      \t<tr>\n      \t\t<td colspan=2 align='right'>\n      \t\t<hr>\n      \t\t" . button("{apply}", "Save{$t}()", 26) . "\n      \t\t</td>\n      \t</tr>\n      \t";
    if ($priv->AllowAddUsers == false) {
        $button = null;
        $img_left_mbx = "<img src='img/folder-mailbox-96.png'>";
    }
    $subtitle = "{user_quota}";
    $main_graph = "<div style='border:1px solid #005447;padding:5px;margin:3px'><span id='mailbox_graph'>{$graph1}</span></div>";
    if ($user->MailBoxMaxSize == 0) {
        $subtitle = "<i>{user_has_no_quota}</i>";
        $graph1 = null;
        $mailboxInfos = "<strong>" . FormatBytes($size) . " used</strong>";
        $mailboxInfos = null;
        $main_graph = null;
    }
    if ($ldap->ldap_last_error != null) {
        return nl2br($ldap->ldap_last_error);
    }
    $ADDisable = 0;
    if ($priv->EnableManageUsersTroughActiveDirectory) {
        $ADDisable = 1;
        $button = null;
    }
    if ($subtitle != null) {
        $subtitle = "<p class=explain style='font-size:16px'>{$subtitle}</p>";
    }
    $html = "\n<div id='usermailboxformdiv'>\n<table style='width:100%'>\n<form name='FFUserMailBox'>\n<input type='hidden' name='UserMailBoxEdit' value='{$uid}'>\n<table style='width:100%'>\n<tr>\t\n\t<td valign='top' style='width:288px'><table style='width:100%'>{$buttons}</table></td>\n\t<td valign='top'>\n<table style='width:100%'>\n\t<tr>\n\t\t<td colspan=3>\n\t\t\t<div style='font-size:30px;margin-bottom:20px'>{mailbox} {mailbox account}: {$uid}</div>{$mailboxInfo}\n\t\t</td>\n\t</tr>\n\t\t<td class=legend style='font-size:18px' class=legend>{MailboxActive}</td>\n\t\t<td>" . Field_checkbox_design("MailboxActive-{$t}", 1, $MailboxActive) . "</td>\n\t\t<td>&nbsp;</td>\n\t</tr>\n\t<tr>\n\t\t<td  align='right' nowrap class=legend valign='middle' \n\t\t\tstyle='vertical-align:middle;font-size:18px'>{mailbox quota}:</td>\n\t\t<td style='font-size:18px'>" . Field_text('MailBoxMaxSize', $user->MailBoxMaxSize, 'width:95px;font-size:18px') . "&nbsp;MB</td>\n\t\t<td align='left'>" . help_icon($mailboxInfos, true) . "</td>\n\t</tr>\n\t<tr>\n\t<td colspan=3>{$subtitle}</td>\n\t</tr>\n\t<tr>\n\t<td colspan=3><div style='font-size:30px;margin-bottom:20px'>{mailbox_priv}</div></td>\n\t</tr>\n\t<tr>\n\t\t<td class=legend style='text-align:rigth;font-size:18px'>{mplt}:</td>\n\t\t<td>" . Field_checkbox_design("mp_l-{$t}", 1, $ini->_params["mailbox"]["l"], null, '{mpl}') . "</td>\n\t\t<td>&nbsp;</td>\n\t</tr>\n\t<tr>\n\t\t<td class=legend nowrap style='text-align:rigth;font-size:18px'>{mprt}:</td>\n\t\t<td>" . Field_checkbox_design("mp_r-{$t}", 1, $ini->_params["mailbox"]["r"], null, '{mpr}') . "</td>\n\t\t<td>&nbsp;</td>\n\t</tr>\n\t<tr>\n\t\t<td class=legend nowrap style='text-align:rigth;font-size:18px'>{mpst}:</td>\n\t\t<td>" . Field_checkbox_design("mp_s-{$t}", 1, $ini->_params["mailbox"]["s"], null, '{mps}') . "</td>\n\t\t<td>&nbsp;</td>\n\t</tr>\n\t<tr>\n\t\t<td class=legend nowrap style='text-align:rigth;font-size:18px'>{mpwt}:</td>\n\t\t<td>" . Field_checkbox_design("mp_w-{$t}", 1, $ini->_params["mailbox"]["w"], null, '{mpw}') . "</td>\n\t\t<td>&nbsp;</td>\n\t</tr>\n\t<tr>\n\t\t<td class=legend nowrap style='text-align:rigth;font-size:18px'>{mpit}:</td>\n\t\t<td>" . Field_checkbox_design("mp_i-{$t}", 1, $ini->_params["mailbox"]["i"], null, '{mpi}') . "</td>\n\t\t<td>&nbsp;</td>\n\t</tr>\n\t<tr>\n\t\t<td class=legend nowrap style='text-align:rigth;font-size:18px'>{mppt}:</td>\n\t\t<td>" . Field_checkbox_design("mp_p-{$t}", 1, $ini->_params["mailbox"]["p"], null, '{mpp}') . "</td>\n\t\t<td>&nbsp;</td>\n\t</tr>\n\t<tr>\n\t\t<td class=legend nowrap style='text-align:rigth;font-size:18px'>{mpct}:</td>\n\t\t<td>" . Field_checkbox_design("mp_c-{$t}", 1, $ini->_params["mailbox"]["c"], null, '{mpc}') . "</td>\n\t\t<td>&nbsp;</td>\n\t</tr>\n\t<tr>\n\t\t<td class=legend nowrap style='text-align:rigth;font-size:18px'>{mpdt}:</td>\n\t\t<td>" . Field_checkbox_design("mp_d-{$t}", 1, $ini->_params["mailbox"]["d"], null, '{mpd}') . "</td>\n\t\t<td>&nbsp;</td>\n\t</tr>\n\t<tr>\n\t<td class=legend nowrap style='text-align:rigth;font-size:18px'><strong>{mpat}</strong>:</td>\n\t<td>" . Field_checkbox_design("mp_a-{$t}", 1, $ini->_params["mailbox"]["a"], null, '{mpa}') . "</td>\n\t<td>&nbsp;</td>\n\t</tr>\n\t<tr>\n\t\t<td colspan=3 align='right'>{$button}</td>\n\t</tr>\n\t</table>\n</td>\n</tr>\n</table>\n<p>&nbsp;</p>\n\n{$main_graph}\n\n<script>\n\tvar xSave{$t}= function (obj) {\n\t\tvar MailBoxMaxSize='0';\n\t\tvar tempvalue=obj.responseText;\n\t\tif(document.getElementById('MailBoxMaxSize')){\n\t\t\tvar MailBoxMaxSize=document.getElementById('MailBoxMaxSize').value;\n\t\t}\n\t\tif(tempvalue.length>3){\n\t\t\t\n\t\t\treturn;\n\t\t}\n\t\tLoadjs('domains.edit.user.create.mbx.php?uid={$uidenc}&MailBoxMaxSize='+MailBoxMaxSize);\n\t}\t\t\n\n\tfunction Save{$t}(){\n\t\t\n\t\tvar mp_l=1;\n\t\tvar mp_r=1;\n\t\tvar mp_s=1;\n\t\tvar mp_w=1;\n\t\tvar mp_i=1;\n\t\tvar mp_p=1;\n\t\tvar mp_c=1;\n\t\tvar mp_d=1;\n\t\tvar mp_a=1;\n\t\tvar XHR = new XHRConnection();\n\t\tXHR.appendData('Save','{$uid}');\n\t\tif(document.getElementById('MailboxActive-{$t}').checked){XHR.appendData('MailboxActive','TRUE');}else{XHR.appendData('MailboxActive','FALSE');}\n\t\tXHR.appendData('MailBoxMaxSize',document.getElementById('MailBoxMaxSize').value);\n\t\tif(document.getElementById('mp_l-{$t}').checked){mp_l=1;}else{mp_l=0;}\n\t\tif(document.getElementById('mp_r-{$t}').checked){mp_r=1;}else{mp_r=0;}\n\t\tif(document.getElementById('mp_s-{$t}').checked){mp_s=1;}else{mp_s=0;}\n\t\tif(document.getElementById('mp_w-{$t}').checked){mp_w=1;}else{mp_w=0;}\n\t\tif(document.getElementById('mp_i-{$t}').checked){mp_i=1;}else{mp_i=0;}\n\t\tif(document.getElementById('mp_p-{$t}').checked){mp_p=1;}else{mp_p=0;}\n\t\tif(document.getElementById('mp_c-{$t}').checked){mp_c=1;}else{mp_c=0;}\n\t\tif(document.getElementById('mp_d-{$t}').checked){mp_d=1;}else{mp_d=0;}\n\t\tif(document.getElementById('mp_a-{$t}').checked){mp_a=1;}else{mp_a=0;}\t\n\t\t\n\t\tXHR.appendData('mp_l',mp_l);\n\t\tXHR.appendData('mp_r',mp_r);\n\t\tXHR.appendData('mp_s',mp_s);\n\t\tXHR.appendData('mp_w',mp_w);\n\t\tXHR.appendData('mp_i',mp_i);\n\t\tXHR.appendData('mp_p',mp_p);\n\t\tXHR.appendData('mp_c',mp_c);\n\t\tXHR.appendData('mp_d',mp_d);\n\t\tXHR.appendData('mp_a',mp_a);\n\t\t\n\t\t\n\t\tXHR.sendAndLoad('{$page}', 'POST',xSave{$t});\t\n\t}\n\t\t\t\t\t\t\t\n</script>\n";
    echo $tpl->_ENGINE_parse_body($html);
}
Ejemplo n.º 3
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");
    }
}
Ejemplo n.º 4
0
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);
}
Ejemplo n.º 5
0
function USER_MAILBOX($uid)
{
    $users = new usersMenus();
    if ($users->ZARAFA_INSTALLED) {
        return ZARAFA_MAILBOX($uid);
    }
    $page = CurrentPageName();
    $RealMailBox = false;
    $page = CurrentPageName();
    $user = new user($uid);
    $cyr = new cyrus();
    $sock = new sockets();
    $tpm = $sock->getfile('MbxStat:' . $uid);
    if (preg_match('#TRUE#', $tpm)) {
        $RealMailBox = true;
    }
    if (!$RealMailBox) {
        return USER_MAILBOX_NONEXISTENT($uid);
        $no_mailbox = "<p class=caption style='color:red'>{user_no_mailbox} !!</p>";
    }
    if ($user->MailboxActive == 'TRUE') {
        $cyrus = new cyrus();
        $res = $cyrus->get_quota_array($uid);
        $size = $cyrus->MailboxInfosSize($uid);
        $orgfree = $cyrus->USER_STORAGE_LIMIT - $cyrus->USER_STORAGE_USAGE;
        $free = FormatBytes($orgfree);
        if ($cyrus->MailBoxExists($uid)) {
            $graph1 = InsertChart('js/charts.swf', "js/charts_library", "listener.graphs.php?USER_STORAGE_USAGE={$cyrus->USER_STORAGE_USAGE}&STORAGE_LIMIT={$cyrus->USER_STORAGE_LIMIT}&FREE={$orgfree}", 200, 167, "", true, $users->ChartLicence);
        } else {
            $graph1 = "<H3>{no_mailbox_user}</H3>";
        }
        $mailboxInfos = "<div>\n\t\t\t<i>" . FormatBytes($cyrus->USER_STORAGE_USAGE) . "/" . FormatBytes($cyrus->USER_STORAGE_LIMIT) . "<br>\n\t\t\t ({$free} {free})</i><br><strong>" . FormatBytes($size) . " used</strong>\n\t\t\t </div>";
    }
    $tpl = new templates();
    $export_mailbox = $tpl->_ENGINE_parse_body('{export_mailbox}');
    $import_mailbox = $tpl->_ENGINE_parse_body('{import_mailbox}');
    if (strlen($import_mailbox) > strlen($export_mailbox)) {
        $import_mailbox = substr($import_mailbox, 0, strlen($export_mailbox) - 3) . "...";
    }
    //sudo -u cyrusimap /usr/bin/cyrus/bin/reconstruct -r -f user/shortname
    $repair = "<br>\n    <table style='width:100%;border: 1px solid #005447'>\n    <tr>\n    \t<td coslpan=2><H3 style='color:#005447'>{tools}</H3></td>\n    </tr>\n    \t<tr " . CellRollOver() . ">\n    \t\t\t<td width=99% class=legend nowrap>" . texttooltip('{repair_mailbox}', '{repair_mailbox_text}', "javascript:Loadjs('{$page}?script=repair_mailbox&uid={$uid}');") . "</td>\n\t\t\t\t<td width=1%>" . imgtootltip("icon_roles.gif", '{repair_mailbox_text}', "Loadjs('{$page}?script=repair_mailbox&uid={$uid}');") . "</td>    \t\t\t\n    \t</tr>\n    \t<tr " . CellRollOver() . ">\n    \t\t\t<td width=99% class=legend nowrap>" . texttooltip($export_mailbox, '{export_mailbox_text}', "javascript:Loadjs('{$page}?script=export_script&uid={$uid}');") . "</td>\n\t\t\t\t<td width=1%>" . imgtootltip("icon_roles.gif", '{export_mailbox_text}', "Loadjs('{$page}?script=export_script&uid={$uid}');") . "</td>    \t\t\t\n    \t</tr> \n    \t\n\t\t<tr " . CellRollOver() . ">\n    \t\t\t<td width=99% class=legend nowrap>" . texttooltip($import_mailbox, '{import_mailbox_text}', "javascript:Loadjs('mailsync.php?uid={$uid}');") . "</td>\n\t\t\t\t<td width=1%>" . imgtootltip("icon_sync.gif", '{export_mailbox_text}', "Loadjs('mailsync.php?uid={$uid}');") . "</td>    \t\t\t\n    \t</tr>  \n    \t\n    \t<tr " . CellRollOver() . ">\n    \t\t\t<td width=99% class=legend nowrap>" . texttooltip('{empty_this_mailbox}', '{empty_this_mailbox_text}', "javascript:Loadjs('domains.edit.user.empty.mailbox.php?&userid={$uid}');") . "</td>\n\t\t\t\t<td width=1%>" . imgtootltip("ed_delete.gif", '{delete_this_mailbox}', "Loadjs('domains.edit.user.empty.mailbox.php?&userid={$uid}');") . "</td>    \t\t\t\n    \t</tr>     \t     \t   \t\n    \t\n    \t   \t\n    \t<tr " . CellRollOver() . ">\n    \t\t\t<td width=99% class=legend nowrap>" . texttooltip('{delete_this_mailbox}', '{delete_this_mailbox_text}', "javascript:Loadjs('{$page}?script=delete_mailbox&uid={$uid}');") . "</td>\n\t\t\t\t<td width=1%>" . imgtootltip("ed_delete.gif", '{delete_this_mailbox}', "Loadjs('{$page}?script=delete_mailbox&uid={$uid}');") . "</td>    \t\t\t\n    \t</tr> \n    \t\n    \t\n    \t\n     \t   \t\n   \t\n    \t   \t\n    </table>";
    $img_left_mbx = imgtootltip('folder-mailbox-96.png', "{debug}", "Loadjs('{$page}?debug-mailbox-js={$uid}')");
    if (!$RealMailBox) {
        $repair = null;
    }
    $priv = new usersMenus();
    $ini = new Bs_IniHandler();
    $ini->loadString($user->MailboxSecurityParameters);
    $button = "    \n      \t<tr>\n      \t\t<td colspan=2 align='right'>\n      \t\t<hr>\n      \t\t" . button("{change}", "Loadjs('domains.edit.user.create.mbx.php?uid={$uid}')") . "\n      \t\t</td>\n      \t</tr>\n      \t";
    if ($priv->AllowAddUsers == false) {
        $button = null;
        $img_left_mbx = "<img src='img/folder-mailbox-96.png'>";
    }
    $subtitle = "{user_quota}";
    $main_graph = "<div style='border:1px solid #005447;padding:5px;margin:3px'><span id='mailbox_graph'>{$graph1}</span></div>";
    if ($user->MailBoxMaxSize == 0) {
        $subtitle = "{user_has_no_quota}";
        $graph1 = null;
        $mailboxInfos = "<strong>" . FormatBytes($size) . " used</strong>";
        $mailboxInfos = null;
        $main_graph = null;
    }
    if ($ldap->ldap_last_error != null) {
        return nl2br($ldap->ldap_last_error);
    }
    $html = "\n      \t<table style='width:100%'>\n      \t<tr>\n      \t<td width=1% valign='top'>{$img_left_mbx}</td>\n      \t\t<td>\n\t\t      \t<h1>{$user->DisplayName} {mailbox}</h1>\n\t\t      \t<form name='FFUserMailBox'>\n\t\t      \t<input type='hidden' name='UserMailBoxEdit' value='{$uid}'>\n\t\t      \t<table style='width:100%'>\n\t\t      \t<tr><td colspan=2>\n\t\t      \t\t<H3 style='font-size:18px;color:#005447'>{settings}</h3>\n\t\t      \t\t<hr style='border-color:#005447'>\n\t\t      \t</td>\n\t\t      \t<tr>\n\t\t      \t<td valign='top'>\n\t\t      \t{$no_mailbox}\n\t\t      \t<table style='width:100%'>\n\t\t      \t\n\t\t      \t<tr>\n\t\t      \t\t<td  align='right' width=1%>" . Field_TRUEFALSE_checkbox_img('MailboxActive', $user->MailboxActive) . "</td>\n\t\t\t      \t<td class=legend style='text-align:left'>{MailboxActive}</td>\t\t\t      \t\n\t\t      \t</tr>\n\t\t      \t<tr>\n\t\t\t      \t<td class=legend>{mailbox account}:</td>\n\t\t\t      \t<td>{$uid}</td>\n\t\t      \t</tr>      \t\n\t\t      \t<tr>\n\t\t\t      \t<td  align='right' nowrap class=legend valign='top'>{mailbox quota}:</td>\n\t\t\t      \t<td>\n\t\t\t      \t\t<table style='width:100%'>\n\t\t\t      \t\t\t<tr>\n\t\t\t      \t\t\t\t<td width=1% nowrap>" . Field_text('MailBoxMaxSize', $user->MailBoxMaxSize, 'width:45px') . "&nbsp;MB</td>\n\t\t\t      \t\t\t\t<td align='left'>" . help_icon($mailboxInfos, true) . "</td>\n\t\t\t      \t\t\t</tr>\n\t\t\t      \t\t\t<tr>\n\t\t\t      \t\t\t<td colspan=2><strong>{$subtitle}</strong></td>\n\t\t\t      \t\t\t</tr>\n\t\t\t      \t\t\t\n\t\t\t      \t\t</table>\n\t\t\t      \t</td>\n\t\t      \t</tr>\n\t\t      \t<tr><td colspan=2><br><H3 style='font-size:18px;color:#005447'>{mailbox_priv}</h3><hr style='border-color:#005447'></td>\n\t\t      \t<tr><td colspan=2 align='left'>\n\t\t      \t\t\t<table style='width:60%'>\n\t\t      \t\t\t\t<tr>\n\t\t\t\t      \t\t\t<td class=legend>{mplt}:</td> \n\t\t\t\t      \t\t\t<td>" . Field_checkbox('mp_l', 1, $ini->_params["mailbox"]["l"], null, '{mpl}') . "</td>\n\t\t\t      \t\t\t</tr>  \n\t\t\t      \t\t\t<tr>\n\t\t\t\t      \t\t\t<td class=legend nowrap>{mprt}:</td>\n\t\t\t\t      \t\t\t<td>" . Field_checkbox('mp_r', 1, $ini->_params["mailbox"]["r"], null, '{mpr}') . "</td>\n\t\t\t      \t\t\t</tr> \n\t\t\t      \t\t\t<tr>\n\t\t\t\t      \t\t\t<td class=legend nowrap>{mpst}:</td>\n\t\t\t\t      \t\t\t<td>" . Field_checkbox('mp_s', 1, $ini->_params["mailbox"]["s"], null, '{mps}') . "</td>\n\t\t\t      \t\t\t</tr> \n\t\t\t      \t\t\t<tr>\n\t\t\t\t      \t\t\t<td class=legend nowrap>{mpwt}:</td>\n\t\t\t\t      \t\t\t<td>" . Field_checkbox('mp_w', 1, $ini->_params["mailbox"]["w"], null, '{mpw}') . "</td>\n\t\t\t      \t\t\t</tr> \t\n\t\t\t      \t\t\t<tr>\n\t\t\t\t      \t\t\t<td class=legend nowrap>{mpit}:</td>\n\t\t\t\t      \t\t\t<td>" . Field_checkbox('mp_i', 1, $ini->_params["mailbox"]["i"], null, '{mpi}') . "</td>\n\t\t\t      \t\t\t</tr> \t\n\t\t\t      \t\t\t<tr>\n\t\t\t\t      \t\t\t<td class=legend nowrap>{mppt}:</td>\n\t\t\t\t      \t\t\t<td>" . Field_checkbox('mp_p', 1, $ini->_params["mailbox"]["p"], null, '{mpp}') . "</td>\n\t\t\t      \t\t\t</tr>\n\t\t\t      \t\t\t<tr>\n\t\t\t\t      \t\t\t<td class=legend nowrap>{mpct}:</td>\n\t\t\t\t      \t\t\t<td>" . Field_checkbox('mp_c', 1, $ini->_params["mailbox"]["c"], null, '{mpc}') . "</td>\n\t\t\t      \t\t\t</tr>\t\n\t\t\t      \t\t\t<tr>\n\t\t\t\t      \t\t\t<td class=legend nowrap>{mpdt}:</td>\n\t\t\t\t      \t\t\t<td>" . Field_checkbox('mp_d', 1, $ini->_params["mailbox"]["d"], null, '{mpd}') . "</td>\n\t\t\t      \t\t\t</tr>\t\n\t\t\t      \t\t\t<tr>\n\t\t\t\t      \t\t\t<td class=legend nowrap><strong>{mpat}</strong>:</td>\n\t\t\t\t      \t\t\t<td>" . Field_checkbox('mp_a', 1, $ini->_params["mailbox"]["a"], null, '{mpa}') . "</td>\n\t\t\t      \t\t\t</tr>\t\t      \t\t\t\t      \t\t\t\t\t      \t\t\t\t\t      \t\t\t\t      \t\t\t\t      \t\t\t\t\t      \t\t\t\t\t      \t\t\t\n\t\t\t      \t\t</table>\n\t\t      \t\t</td>\n\t\t      \t</tr>\n\t\t      \t\n\t\t      \t\n\t\t \t\t\t{$button}\n\t\t      \t</table>\n\t\t      \t</td>\n\t\t      \t<td valign='top' class=legend style='border-left:3px solid #005447;padding:5px'>\n\t\t\t\t\t\t{$main_graph}\n      \t\t\t\t\t{$mailboxInfos}\n      \t\t\t\t\t{$repair}\n      \t\t\t</td>\n\t\t      \t</table>\n\t\t      \t</form></td>\n\t\t  </tr>\n\t\t </table>";
    $html = "{$html}";
    return $tpl->_ENGINE_parse_body($html);
}
Ejemplo n.º 6
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");
    }
}
Ejemplo n.º 7
0
function pie_single_mailbox_user()
{
    $tpl = new Templates();
    $users = new usersMenus();
    $uid = $_SESSION["uid"];
    if ($users->cyrus_imapd_installed == 0) {
        return null;
    }
    $ldap = new clladp();
    $hash = $ldap->UserDatas($_SESSION["uid"]);
    if ($hash["MailboxActive"] != 'TRUE') {
        return null;
    }
    $cyrus = new cyrus();
    $res = $cyrus->get_quota_array($uid);
    $size = $cyrus->MailboxInfosSize($uid);
    $free = $cyrus->USER_STORAGE_LIMIT - $cyrus->USER_STORAGE_USAGE;
    if (!$cyrus->MailBoxExists($uid)) {
        return null;
    }
    $USER_STORAGE_USAGE = $cyrus->USER_STORAGE_USAGE;
    $USER_STORAGE_LIMIT = $cyrus->USER_STORAGE_LIMIT;
    $FREE = $free;
    writelogs("USER_STORAGE_USAGE={$USER_STORAGE_USAGE}", __FUNCTION__, __FILE__);
    writelogs("STORAGE_LIMIT={$USER_STORAGE_LIMIT}", __FUNCTION__, __FILE__);
    if ($USER_STORAGE_LIMIT == null) {
        $USER_STORAGE_LIMIT = 1000000;
        $USER_STORAGE_USAGE = 0;
        $FREE = $USER_STORAGE_LIMIT;
    }
    $USER_STORAGE_RESTANT = $USER_STORAGE_LIMIT - $USER_STORAGE_USAGE;
    if ($USER_STORAGE_RESTANT > 1) {
        $reste = round($USER_STORAGE_RESTANT / 1024);
        $data = array($USER_STORAGE_USAGE, $USER_STORAGE_RESTANT);
    } else {
        $data = array($USER_STORAGE_USAGE);
    }
    $title = $tpl->_ENGINE_parse_body("{your mailbox usage} ({$reste} mb free)");
    writelogs("USER_STORAGE_USAGE={$USER_STORAGE_USAGE} - USER_STORAGE_LIMIT={$USER_STORAGE_LIMIT} FREE={$FREE}", __FUNCTION__, __FILE__);
    $date = date('Y-m-d');
    $textes = array();
    $donnees = array();
    $zlabel = array();
    $date = date('Y-m-d');
    $donnees[] = $FREE;
    $textes[] = "{$FREE} Free";
    $donnees[] = $USER_STORAGE_USAGE;
    $textes[] = "{$USER_STORAGE_USAGE} used";
    $data = $donnees;
    $graph = new PieGraph(370, 350, 'auto');
    //$graph->SetShadow();
    $graph->title->Set($title);
    $graph->title->SetFont(FF_FONT1, FS_BOLD);
    $p1 = new PiePlot3D($data);
    $p1->SetLabels($textes, 1);
    $p1->SetEdge('black', 0);
    $p1->SetAngle(55);
    $p1->SetLabelMargin(2);
    $p1->SetCenter(0.4, 0.5);
    $p1->ExplodeAll(10);
    $graph->Add($p1);
    $graph->SetFrame(false);
    $graph->StrokeCSIM();
}