/** * Override to add ReadPermissionOptimization query parts. * @param string $tableName * @param RedBeanModelJoinTablesQueryAdapter $joinTablesAdapter * @param null|int $offset * @param null|int $count * @param null|string $where * @param null|string $orderBy * @param bool $selectCount * @param bool $selectDistinct * @param array $quotedExtraSelectColumnNameAndAliases * @return string * @throws NoCurrentUserSecurityException */ public static function makeSubsetOrCountSqlQuery($tableName, RedBeanModelJoinTablesQueryAdapter $joinTablesAdapter = null, $offset = null, $count = null, $where = null, $orderBy = null, $selectCount = false, $selectDistinct = false, array $quotedExtraSelectColumnNameAndAliases = array()) { assert('is_string($tableName) && $tableName != ""'); assert('$offset === null || is_integer($offset) && $offset >= 0'); assert('$count === null || is_integer($count) && $count >= 1'); assert('$where === null || is_string ($where) && $where != ""'); assert('$orderBy === null || is_string ($orderBy) && $orderBy != ""'); assert('is_bool($selectCount)'); assert('is_bool($selectDistinct)'); $user = Yii::app()->user->userModel; if (!$user instanceof User) { throw new NoCurrentUserSecurityException(); } if ($joinTablesAdapter == null) { $joinTablesAdapter = new RedBeanModelJoinTablesQueryAdapter(get_called_class()); } static::resolveReadPermissionsOptimizationToSqlQuery($user, $joinTablesAdapter, $where, $selectDistinct); return parent::makeSubsetOrCountSqlQuery($tableName, $joinTablesAdapter, $offset, $count, $where, $orderBy, $selectCount, $selectDistinct, $quotedExtraSelectColumnNameAndAliases); }