Example #1
0
function reportUser($smarty, $module_name, $local_templates_dir, &$pDB, $arrConf, $credentials)
{
    global $arrPermission;
    $pACL = new paloACL($pDB);
    $pORGZ = new paloSantoOrganization($pDB);
    $idOrgFil = getParameter("idOrganization");
    $username = getParameter("username");
    $total = 0;
    if ($credentials['userlevel'] == "superadmin") {
        if (!empty($idOrgFil)) {
            $total = $pACL->getNumUsers($idOrgFil, $username);
        } else {
            $idOrgFil = 0;
            //opcion default se muestran todos los usuarios
            $total = $pACL->getNumUsers(null, $username);
        }
    } else {
        $idOrgFil = $credentials['id_organization'];
        $total = $pACL->getNumUsers($idOrgFil, $username);
    }
    if ($total === false) {
        $total = 0;
        $smarty->assign("mb_title", _tr("Error"));
        $smarty->assign("mb_message", _tr("Couldn't be retrieved user data"));
    }
    //url
    $url['menu'] = $module_name;
    $url['idOrganization'] = $idOrgFil;
    $url['username'] = $module_name;
    $limit = 20;
    $oGrid = new paloSantoGrid($smarty);
    $oGrid->setLimit($limit);
    $oGrid->setTotal($total);
    $offset = $oGrid->calculateOffset();
    $end = $offset + $limit <= $total ? $offset + $limit : $total;
    $oGrid->setTitle(_tr('User List'));
    $oGrid->setIcon("../web/_common/images/user.png");
    $oGrid->setURL($url);
    $oGrid->setWidth("99%");
    $oGrid->setStart($total == 0 ? 0 : $offset + 1);
    $oGrid->setEnd($end);
    $arrColumns = array();
    if ($credentials["userlevel"] == "superadmin") {
        $arrColumns[] = _tr("Organization");
        //delete
    }
    $arrColumns[] = _tr("Username");
    $arrColumns[] = _tr("Name");
    $arrColumns[] = _tr("Group");
    $arrColumns[] = _tr("Extension") . " / " . _tr("Fax Extension");
    $arrColumns[] = _tr("Used Space") . " / " . _tr("Email Quota");
    if (in_array('reconstruct_mailbox', $arrPermission)) {
        $arrColumns[] = "";
    }
    //reconstruct mailbox
    $oGrid->setColumns($arrColumns);
    $arrData = array();
    if ($credentials['userlevel'] == "superadmin") {
        if ($idOrgFil != 0) {
            $arrUsers = $pACL->getUsersPaging($limit, $offset, $idOrgFil, $username);
        } else {
            $arrUsers = $pACL->getUsersPaging($limit, $offset, null, $username);
        }
    } else {
        $arrUsers = $pACL->getUsersPaging($limit, $offset, $idOrgFil, $username);
    }
    if ($arrUsers === false) {
        $smarty->assign("mb_title", _tr("ERROR"));
        $smarty->assign("mb_message", _tr($pACL->errMsg));
    }
    //si es un usuario solo se ve a si mismo
    //si es un administrador ve a todo los usuarios de
    foreach ($arrUsers as $user) {
        $arrTmp = array();
        if ($credentials["userlevel"] == "superadmin") {
            $arrOgz = $pORGZ->getOrganizationById($user[4]);
            $arrTmp[] = htmlentities($arrOgz["name"], ENT_COMPAT, 'UTF-8');
            //organization
        }
        $arrTmp[] = "&nbsp;<a href='?menu=userlist&action=view&id={$user['0']}'>" . $user[1] . "</a>";
        //username
        $arrTmp[] = htmlentities($user[2], ENT_COMPAT, 'UTF-8');
        //name
        $gpTmp = $pACL->getGroupNameByid($user[7]);
        $arrTmp[] = $gpTmp == "superadmin" ? _tr("NONE") : $gpTmp;
        if (!isset($user[5]) || $user[5] == "") {
            $ext = _tr("Not assigned");
        } else {
            $ext = $user[5];
        }
        if (!isset($user[6]) || $user[6] == "") {
            $faxExt = _tr("Not assigned");
        } else {
            $faxExt = $user[6];
        }
        $arrTmp[] = $ext . " / " . $faxExt;
        if ($user[4] != 1) {
            //user that belong organization 1 do not have email account
            $arrTmp[] = obtener_quota_usuario($user[1], $module_name);
            //email quota
            if (in_array('reconstruct_mailbox', $arrPermission)) {
                $arrTmp[] = "&nbsp;<a href='#' onclick=mailbox_reconstruct('{$user[1]}')>" . _tr('Reconstruct Mailbox') . "</a>";
                //reconstruct mailbox
            }
        } else {
            $arrTmp[] = '';
            $arrTmp[] = '';
        }
        $arrData[] = $arrTmp;
        $end++;
    }
    $smarty->assign("USERLEVEL", $credentials['userlevel']);
    $smarty->assign("SEARCH", "<input name='search_org' type='submit' class='button' value='" . _tr('Search') . "'>");
    if ($pORGZ->getNumOrganization(array()) > 0) {
        $arrOrgz = array(0 => _tr("all"));
        if (in_array('create_user', $arrPermission)) {
            $oGrid->addNew("create_user", _tr("Create New User"));
        }
        if ($credentials['userlevel'] == "superadmin") {
            foreach ($pORGZ->getOrganization(array()) as $value) {
                $arrOrgz[$value["id"]] = $value["name"];
            }
            $_POST["idOrganization"] = $idOrgFil;
            $oGrid->addFilterControl(_tr("Filter applied ") . _tr("Organization") . " = " . $arrOrgz[$idOrgFil], $_POST, array("idOrganization" => 0), true);
            //organization
        }
        $arrFormElements = createFieldFilter($arrOrgz);
        $oFilterForm = new paloForm($smarty, $arrFormElements);
        $oGrid->addFilterControl(_tr("Filter applied ") . _tr("Username") . " = " . $username, $_POST, array("username" => ""));
        //username
        $htmlFilter = $oFilterForm->fetchForm("{$local_templates_dir}/filter.tpl", "", $_POST);
        $oGrid->showFilter(trim($htmlFilter));
    } else {
        $smarty->assign("mb_title", _tr("MESSAGE"));
        $smarty->assign("mb_message", _tr("In order to use this module must exist at least 1 organization in the Elastix Server"));
    }
    $contenidoModulo = $oGrid->fetchGrid(array(), $arrData);
    $mensaje = showMessageReload($module_name, $pDB, $credentials);
    $contenidoModulo = $mensaje . $contenidoModulo;
    return $contenidoModulo;
}
Example #2
0
function viewFormAccount($smarty, $module_name, $local_templates_dir, &$pDB, $arrConf, $arrLang)
{
    $pEmail = new paloEmail($pDB);
    $oGrid = new paloSantoGrid($smarty);
    $id_domain = 0;
    /*if (isset($_POST['domain'])) $id_domain=$_POST['domain'];
      if (isset($_GET['id_domain'])) $id_domain=$_GET['id_domain'];*/
    if (isset($_POST['domain']) || isset($_GET['domain'])) {
        $id_domain = getParameter('domain');
        if ($id_domain == null) {
            $id_domain = 0;
        }
    }
    $_POST['domain'] = $id_domain;
    $arrDominios = array("0" => '-- ' . $arrLang["Select a domain"] . ' --');
    $arrDomains = $pEmail->getDomains();
    foreach ($arrDomains as $domain) {
        $arrDominios[$domain[0]] = $domain[1];
    }
    $arrFormElements = createFieldFormAccount($arrLang, $arrDominios);
    $oFilterForm = new paloForm($smarty, $arrFormElements);
    $smarty->assign("SHOW", $arrLang["Show"]);
    $smarty->assign("CREATE_ACCOUNT", $arrLang["Create Account"]);
    // $oGrid->pagingShow(true);
    $url = array("menu" => $module_name);
    if ($id_domain == 0) {
        $url = array("menu" => $module_name);
    } else {
        $url = array("menu" => $module_name, "domain" => $id_domain);
    }
    $oGrid->setURL($url);
    $oGrid->setTitle(_tr("Email Account List"));
    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    $arrData = array();
    $pACL = new paloACL(new paloDB($arrConf['elastix_dsn']['acl']));
    $userAccount = isset($_SESSION['elastix_user']) ? $_SESSION['elastix_user'] : "";
    $isAdministrator = $pACL->isUserAdministratorGroup($userAccount);
    $reconstruir = _tr("Reconstruct");
    if ($id_domain > 0) {
        $arrAccounts = $pEmail->getAccountsByDomain($id_domain);
    } else {
        $arrAccounts = $pEmail->getAccountsByDomain();
    }
    if (is_array($arrAccounts)) {
        //username, password, id_domain, quota
        $end = count($arrAccounts);
        //$configPostfix2 = isPostfixToElastix2();// in misc.lib.php
        foreach ($arrAccounts as $account) {
            $arrTmp = array();
            $username = $account[0];
            $arrTmp[0] = "&nbsp;<a href='?menu={$module_name}&action=view&username={$username}'>{$username}</a>";
            $arrTmp[1] = obtener_quota_usuario($pEmail, $username, $module_name, $arrLang, $id_domain);
            if ($isAdministrator) {
                $arrTmp[2] = "&nbsp;<a href='?menu={$module_name}&action=reconstruir&username={$username}&domain={$id_domain}'>{$reconstruir}</a>";
            }
            $link_agregar_direccion = "<a href='?action=add_address&id_domain={$id_domain}&username={$username}'>Add Address</a>";
            $link_modificar_direccion = "<a href='?action=edit_addresses&id_domain={$id_domain}&username={$username}'>Addresses</a>";
            //$arrTmp[3]=$link_agregar_direccion."&nbsp;&nbsp; ".$link_modificar_direccion;
            $arrData[] = $arrTmp;
        }
    } else {
        $smarty->assign("mb_title", _tr("Error"));
        $smarty->assign("mb_message", $pEmail->errMsg);
    }
    $total = count($arrData);
    $limit = 20;
    $oGrid->setLimit($limit);
    $oGrid->setTotal($total);
    $offset = $oGrid->calculateOffset();
    $inicio = $total == 0 ? 0 : $offset + 1;
    $fin = $offset + $limit <= $total ? $offset + $limit : $total;
    $leng = $fin - $inicio;
    $arrDatosGrid = array_slice($arrData, $inicio - 1, $leng + 1);
    if ($isAdministrator) {
        $oGrid->setColumns(array(_tr("Account Name"), _tr("Used Space"), _tr("Reconstruct MailBox")));
    } else {
        $oGrid->setColumns(array(_tr("Account Name"), _tr("Used Space")));
    }
    $arrGrid = array("width" => "99%", "start" => $inicio, "end" => $fin, "total" => $total);
    $oGrid->addComboAction("domain", _tr("Create Account"), $arrDominios, $id_domain, "submit_create_account", "this.form.submit();");
    if ($id_domain != 0) {
        $oGrid->addLinkAction("?menu={$module_name}&action=export&domain={$id_domain}&rawmode=yes", _tr("Export Accounts"));
        $smarty->assign("id_domain", $id_domain);
    }
    $content = $oGrid->fetchGrid($arrGrid, $arrDatosGrid, $arrLang);
    return $content;
}