Ejemplo n.º 1
0
 /**
  * Gets the historical journal for an object from the log database.
  * Objects will have VirtualAttributes available to lookup login, date, and action information from the journal object.
  * @param integer intShortcutId
  * @return Shortcut[]
  */
 public static function GetJournalForId($intShortcutId)
 {
     $objDatabase = Shortcut::GetDatabase()->JournalingDatabase;
     $objResult = $objDatabase->Query('SELECT * FROM shortcut WHERE shortcut_id = ' . $objDatabase->SqlVariable($intShortcutId) . ' ORDER BY __sys_date');
     return Shortcut::InstantiateDbResult($objResult);
 }
Ejemplo n.º 2
0
    /**
     * Load an array of Shortcut objects,
     * by QApplication::$objRoleModule->RoleModuleId and by the Role Edit Access to the Built-in Fields of the Module.
     * @param string $strOrderBy
     * @param string $strLimit
     * @param array $objExpansionMap map of referenced columns to be immediately expanded via early-binding
     * @return Shortcut[]
     */
    public static function LoadArrayByRoleModule($strOrderBy = null, $strLimit = null, $objExpansionMap = null)
    {
        // Call to ArrayQueryHelper to Get Database Object and Get SQL Clauses
        Shortcut::ArrayQueryHelper($strOrderBy, $strLimit, $strLimitPrefix, $strLimitSuffix, $strExpandSelect, $strExpandFrom, $objExpansionMap, $objDatabase);
        // Properly Escape All Input Parameters using Database->SqlVariable()
        $intModuleId = $objDatabase->SqlVariable(QApplication::$objRoleModule->ModuleId, true);
        $intRoleId = $objDatabase->SqlVariable(QApplication::$objRoleModule->RoleId, true);
        $objViewRoleModuleAuthorization = RoleModuleAuthorization::LoadByRoleModuleIdAuthorizationId(QApplication::$objRoleModule->RoleModuleId, 1);
        if (!$objViewRoleModuleAuthorization) {
            throw new Exception('No valid RoleModuleAuthorization for this User Role.');
        } elseif ($objViewRoleModuleAuthorization->AuthorizationLevelId == 1 || $objViewRoleModuleAuthorization->AuthorizationLevelId == 2) {
            $blnView = true;
        } else {
            $blnView = false;
        }
        $objEditRoleModuleAuthorization = RoleModuleAuthorization::LoadByRoleModuleIdAuthorizationId(QApplication::$objRoleModule->RoleModuleId, 2);
        if (!$objEditRoleModuleAuthorization) {
            throw new Exception('No valid RoleModuleAuthorization for this User Role.');
        } elseif ($objEditRoleModuleAuthorization->AuthorizationLevelId == 1 || $objEditRoleModuleAuthorization->AuthorizationLevelId == 2) {
            $blnEdit = true;
        } else {
            $blnEdit = false;
        }
        if ($blnView && $blnEdit) {
            $strAuthorizationSql = 'AND (`shortcut`.`authorization_id` = 1 OR `shortcut`.`authorization_id` = 2)';
        } elseif ($blnView) {
            $strAuthorizationSql = 'AND `shortcut`.`authorization_id` = 1';
        } elseif ($blnEdit) {
            $strAuthorizationSql = 'AND `shortcut`.`authorization_id` = 2';
        } else {
            $strAuthorizationSql = 'AND `shortcut`.`authorization_id` != 1 AND `shortcut`.`authorization_id` != 2';
        }
        //Set the entities sql according to the Module
        switch (QApplication::$objRoleModule->ModuleId) {
            case 2:
                $strEntitiesSql = 'AND (`FLA`.`entity_qtype_id`=1 OR `FLA`.`entity_qtype_id`=4)';
                break;
            case 3:
                $strEntitiesSql = 'AND (`FLA`.`entity_qtype_id`=2)';
                break;
            case 4:
                $strEntitiesSql = 'AND (`FLA`.`entity_qtype_id`=7 OR `FLA`.`entity_qtype_id`=8 OR `FLA`.`entity_qtype_id`=9)';
                break;
            case 5:
                $strEntitiesSql = 'AND (`FLA`.`entity_qtype_id`=10)';
                break;
            case 6:
                $strEntitiesSql = 'AND (`FLA`.`entity_qtype_id`=11)';
                break;
            case 7:
                $strEntitiesSql = '';
                break;
        }
        // Setup the SQL Query that checks "edit" authorization to the module
        $strQuery = sprintf('
				SELECT
				%s
					`shortcut`.`shortcut_id` AS `shortcut_id`,
					`shortcut`.`module_id` AS `module_id`,
					`shortcut`.`authorization_id` AS `authorization_id`,
					`shortcut`.`short_description` AS `short_description`,
					`shortcut`.`link` AS `link`,
					`shortcut`.`image_path` AS `image_path`,
					`shortcut`.`entity_qtype_id` AS `entity_qtype_id`,
					`shortcut`.`create_flag` AS `create_flag`
					%s
				FROM
					`shortcut` AS `shortcut`,
					`role_entity_qtype_built_in_authorization` AS `FLA`					
					%s
				WHERE
					(`FLA`.`role_id` %s
					%s
					AND `FLA`.`authorization_id`=2)				
					AND `shortcut`.`module_id` %s
					%s
					AND (`shortcut`.`entity_qtype_id`=`FLA`.`entity_qtype_id`)
					AND (`shortcut`.`create_flag`=0 OR `FLA`.`authorized_flag`=1)					
				%s
				%s', $strLimitPrefix, $strExpandSelect, $strExpandFrom, $intRoleId, $strEntitiesSql, $intModuleId, $strAuthorizationSql, $strOrderBy, $strLimitSuffix);
        // Perform the Query and Instantiate the Result
        $objDbResult = $objDatabase->Query($strQuery);
        return Shortcut::InstantiateDbResult($objDbResult);
    }
Ejemplo n.º 3
0
 /**
  * Static Qcodo Query method to query for an array of Shortcut objects.
  * Uses BuildQueryStatment to perform most of the work.
  * @param QQCondition $objConditions any conditions on the query, itself
  * @param QQClause[] $objOptionalClausees additional optional QQClause objects for this query
  * @param mixed[] $mixParameterArray a array of name-value pairs to perform PrepareStatement with
  * @return Shortcut[] the queried objects as an array
  */
 public static function QueryArray(QQCondition $objConditions, $objOptionalClauses = null, $mixParameterArray = null)
 {
     // Get the Query Statement
     try {
         $strQuery = Shortcut::BuildQueryStatement($objQueryBuilder, $objConditions, $objOptionalClauses, $mixParameterArray, false);
     } catch (QCallerException $objExc) {
         $objExc->IncrementOffset();
         throw $objExc;
     }
     // Perform the Query and Instantiate the Array Result
     $objDbResult = $objQueryBuilder->Database->Query($strQuery);
     return Shortcut::InstantiateDbResult($objDbResult, $objQueryBuilder->ExpandAsArrayNodes);
 }