コード例 #1
0
ファイル: generateQuery.php プロジェクト: jeffcao/fzglsys_v5
 public static function modifySqlWhereForAsolDomainsQuery(&$sqlWhere, $domainReportTable, $current_user, $schedulerCall, $asolReportDomainId, $domainField = null, $aliasSuffix = '')
 {
     global $db;
     if (!empty($asolReportDomainId) || $schedulerCall) {
         require_once "modules/asol_Domains/AlineaSolDomainsFunctions.php";
         $domainsBean = BeanFactory::getBean('asol_Domains', $asolReportDomainId);
         if ($domainsBean->asol_domain_enabled) {
             if ($domainField !== null) {
                 if ($domainField != "") {
                     $externalIdUsage = isset($domainField["externalIdUsage"]) && $domainField["externalIdUsage"];
                     $domainFieldName = $domainField["fieldName"];
                     $domainIsNumeric = $externalIdUsage ? false : $domainField["isNumeric"];
                     $domainShowUpperLevels = isset($domainField["showUpperLevels"]) ? $domainField["showUpperLevels"] : false;
                     $asolReportDomainValue = $externalIdUsage ? $domainsBean->external_id : $asolReportDomainId;
                     if (isset($domainField["domainRelation"])) {
                         $domainReportTable = $domainField["domainRelation"]["relatedTable"];
                     }
                     $domainFieldChar = $domainIsNumeric ? "" : "'";
                     $sqlWhere .= (empty($sqlWhere) ? " WHERE " : " AND ") . " ( (" . $domainReportTable . $aliasSuffix . "." . $domainFieldName . "=" . $domainFieldChar . $asolReportDomainValue . $domainFieldChar . ") ";
                     //***asol_child_domains***//
                     $childDomainsIds = asol_manageDomains::getChildDomainsArray($asolReportDomainId);
                     $childDomainsStr = array();
                     foreach ($childDomainsIds as $key => $domainId) {
                         if (!$domainId['enabled']) {
                             array_splice($childDomainsIds, $key, 1);
                         } else {
                             $childDomainsStr[] = $externalIdUsage ? $domainId['external_id'] : $domainId['id'];
                         }
                     }
                     $sqlWhere .= count($childDomainsIds) > 0 ? "OR (" . $domainReportTable . $aliasSuffix . "." . $domainFieldName . " IN (" . $domainFieldChar . implode($domainFieldChar . "," . $domainFieldChar, $childDomainsStr) . $domainFieldChar . ")) " : " ";
                     //***asol_child_domains***//
                     //***asol_parent_domains***//
                     if ($domainShowUpperLevels) {
                         $parentDomainIds = asol_manageDomains::getParentDomainsIds($asolReportDomainId);
                         if (!empty($parentDomainIds)) {
                             $sqlWhere .= "OR (" . $domainReportTable . $aliasSuffix . "." . $domainFieldName . " IN (" . $domainFieldChar . implode($domainFieldChar . "," . $domainFieldChar, $parentDomainIds) . $domainFieldChar . ")) ";
                         }
                     }
                     //***asol_parent_domains***//
                     $sqlWhere .= ") ";
                 }
             } else {
                 $sqlWhere .= " AND ( (" . $domainReportTable . $aliasSuffix . ".asol_domain_id='" . $asolReportDomainId . "')";
                 if ($current_user->asol_only_my_domain == 0 || $schedulerCall) {
                     //***asol_domain_child_share_depth***//
                     $sqlWhere .= asol_manageDomains::getChildShareDepthQuery($domainReportTable . $aliasSuffix . '.', $asolReportDomainId);
                     //***asol_domain_child_share_depth***//
                     //***asol_multi_create_domain***//
                     if ($domainReportTable != 'users') {
                         $sqlWhere .= asol_manageDomains::getMultiCreateQuery($domainReportTable . $aliasSuffix . '.', $asolReportDomainId);
                     }
                     //***asol_multi_create_domain***//
                     //***asol_publish_to_all***//
                     $sqlWhere .= asol_manageDomains::getPublishToAllQuery($domainReportTable . $aliasSuffix . '.', $asolReportDomainId);
                     //***asol_publish_to_all***//
                     //***asol_child_domains***//
                     $sqlWhere .= asol_manageDomains::getChildHierarchyQuery($domainReportTable . $aliasSuffix . '.', $asolReportDomainId);
                     //***asol_child_domains***//
                 } else {
                     $sqlWhere .= ") ";
                 }
             }
         } else {
             $sqlWhere .= " AND (1!=1) ";
         }
     }
 }
コード例 #2
0
 public static function getFilteredReportList($sDatabase = '-1', $sModule = '', $sScope = '', $sName = '')
 {
     global $db, $current_user;
     $sqlAllowedModules = "";
     $allowedModules = asol_ReportsUtils::getCurrentUserAvailableModules(false);
     foreach ($allowedModules as $key => $isAllowed) {
         if ($isAllowed) {
             $sqlAllowedModules .= "'" . $key . "',";
         }
     }
     $sqlAllowedModules = substr($sqlAllowedModules, 0, -1) . ",''";
     //***********************//
     //***AlineaSol Premium***//
     //***********************//
     $extraParams = array('report_database' => $sDatabase);
     $sqlExternalModules = asol_ReportsUtils::managePremiumFeature("externalDatabasesReports", "reportFunctions.php", "getExternalDatabasesExtendedWhereQuery", $extraParams);
     $sqlExternalModules = !$sqlExternalModules ? " )" : $sqlExternalModules;
     //***********************//
     //***AlineaSol Premium***//
     //***********************//
     if ($sDatabase != '-1') {
         $sModule = '';
         $sqlAllowedModules = '\'\'';
     }
     $sqlReport = "SELECT id, name FROM asol_reports WHERE deleted=0";
     $sqlReport .= !empty($sName) ? " AND name LIKE '%" . $sName . "%'" : "";
     $sqlReport .= !empty($sModule) ? " AND report_module LIKE '%" . $sModule . "%'" : "";
     //***********************//
     //***AlineaSol Premium***//
     //***********************//
     $wsReportQueryExt = asol_ReportsUtils::managePremiumFeature("webServiceReports", "reportFunctions.php", "getWebServiceReportQueryExt", null);
     //***********************//
     //***AlineaSol Premium***//
     //***********************//
     $sqlReport .= " AND ((asol_reports.report_module IN (" . $sqlAllowedModules . ")" . $wsReportQueryExt . ")";
     $sqlReport .= $sqlExternalModules;
     $sqlReport .= !empty($sScope) ? " AND report_scope LIKE '%" . $sScope . "%'" : "";
     if (!$current_user->is_admin) {
         $idsRoles = array();
         $queryUserRoles = $db->query("SELECT DISTINCT role_id FROM acl_roles_users WHERE user_id='" . $current_user->id . "' AND deleted=0");
         while ($queryRow = $db->fetchByAssoc($queryUserRoles)) {
             $idsRoles[] = $queryRow['role_id'];
         }
         $sqlReport .= " AND (report_scope = 'public' OR asol_reports.assigned_user_id = '" . $current_user->id . "' OR asol_reports.created_by = '" . $current_user->id . "'";
         $sqlWhereRoles = " OR (";
         foreach ($idsRoles as $idRole) {
             $sqlWhereRoles .= " report_scope LIKE '%" . $idRole . "%' OR";
         }
         $sqlWhereRoles = substr($sqlWhereRoles, 0, -2) . ")";
         if (empty($idsRoles)) {
             $sqlWhereRoles = "";
         }
         $sqlReport .= $sqlWhereRoles . " )";
     }
     //**************************//
     //***Is Domains Installed***//
     //**************************//
     if (asol_ReportsUtils::isDomainsInstalled()) {
         if (!$current_user->is_admin || $current_user->is_admin && !empty($current_user->asol_default_domain)) {
             $domainsBean = BeanFactory::getBean('asol_Domains', $current_user->asol_default_domain);
             if ($domainsBean->asol_domain_enabled) {
                 $sqlReport .= " AND ( (asol_reports.asol_domain_id='" . $current_user->asol_default_domain . "')";
                 if ($current_user->asol_only_my_domain == 0) {
                     //asol_domain_child_share_depth
                     $sqlReport .= asol_manageDomains::getChildShareDepthQuery('asol_reports.');
                     //asol_domain_child_share_depth
                     //asol_multi_create_domain
                     $sqlReport .= asol_manageDomains::getMultiCreateQuery('asol_reports.');
                     //asol_multi_create_domain
                     //***asol_publish_to_all***//
                     $sqlReport .= asol_manageDomains::getPublishToAllQuery('asol_reports.');
                     //***asol_publish_to_all***//
                 }
                 $sqlReport .= ") ";
             } else {
                 $sqlReport .= " AND (1!=1) ";
             }
         }
     }
     //**************************//
     //***Is Domains Installed***//
     //**************************//
     $sqlReport .= " ORDER BY date_entered ASC";
     $reportsArray = array();
     $queryReport = $db->query($sqlReport);
     while ($queryRow = $db->fetchByAssoc($queryReport)) {
         $reportsArray[] = $queryRow;
     }
     foreach ($reportsArray as $value) {
         $reportList[$value['id']] = $value['name'];
     }
     return $reportList;
 }
コード例 #3
0
ファイル: index.php プロジェクト: jeffcao/fzglsys_v5
        $sqlWhereRoles = "";
    }
    $sqlWhere .= $sqlWhereRoles . " )";
}
//**************************//
//***Is Domains Installed***//
//**************************//
if (asol_ReportsUtils::isDomainsInstalled()) {
    if (!$current_user->is_admin || $current_user->is_admin && !empty($current_user->asol_default_domain)) {
        require_once "modules/asol_Domains/AlineaSolDomainsFunctions.php";
        $domainsBean = BeanFactory::getBean('asol_Domains', $current_user->asol_default_domain);
        if ($domainsBean->asol_domain_enabled) {
            $sqlWhere .= " AND ( (asol_reports.asol_domain_id='" . $current_user->asol_default_domain . "')";
            if ($current_user->asol_only_my_domain == 0) {
                //asol_domain_child_share_depth
                $sqlWhere .= asol_manageDomains::getChildShareDepthQuery('asol_reports.');
                //asol_domain_child_share_depth
                //asol_multi_create_domain
                $sqlWhere .= asol_manageDomains::getMultiCreateQuery('asol_reports.');
                //asol_multi_create_domain
                //***asol_publish_to_all***//
                $sqlWhere .= asol_manageDomains::getPublishToAllQuery('asol_reports.');
                //***asol_publish_to_all***//
                //***asol_child_domains***//
                $sqlWhere .= asol_manageDomains::getChildHierarchyQuery('asol_reports.');
                //***asol_child_domains***//
            } else {
                $sqlWhere .= ") ";
            }
        } else {
            $sqlWhere .= " AND (1!=1) ";