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[] = " <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[] = " <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; }
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] = " <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] = " <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." ".$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; }