Esempio n. 1
0
 public static function beforeViewDataQuery(&$select, &$filter, &$group, &$order, &$limit, &$options, &$runtime)
 {
     // Dynamic data setup
     //Crm\ActivityTable::ProcessQueryOptions($options);
     if (!isset($select['CRM_ACTIVITY_COMPANY_BY_ID'])) {
         foreach ($select as $k => $v) {
             if (strpos($k, 'CRM_ACTIVITY_COMPANY_BY_') === 0) {
                 $select['CRM_ACTIVITY_COMPANY_BY_ID'] = 'COMPANY_BY.ID';
                 break;
             }
         }
     }
     // permission
     $addClause = CCrmActivity::BuildPermSql('crm_activity');
     if ($addClause === false) {
         // access dinied
         $filter = array($filter, '=ID' => '0');
     } elseif (!empty($addClause)) {
         global $DB;
         // HACK: add escape chars for ORM
         $addClause = str_replace('crm_activity.ID', $DB->escL . 'crm_activity' . $DB->escR . '.ID', $addClause);
         $filter = array($filter, '=IS_ALLOWED' => '1');
         $runtime['IS_ALLOWED'] = array('data_type' => 'integer', 'expression' => array('CASE WHEN ' . $addClause . ' THEN 1 ELSE 0 END'));
     }
 }