51 $alias =
function (
$column) use ($table_alias) {
52 return $table_alias ?
"{$table_alias}.{$column}" :
$column;
55 if (!isset($this->viewer_guid)) {
56 $this->viewer_guid =
_elgg_services()->session->getLoggedInUserGuid();
59 if (!isset($this->ignore_access)) {
60 $this->ignore_access =
_elgg_services()->userCapabilities->canBypassPermissionsCheck($this->viewer_guid);
63 if (!isset($this->use_enabled_clause)) {
64 $this->use_enabled_clause = !
_elgg_services()->session->getDisabledEntityVisibility();
70 $ands[] = parent::prepare($qb, $table_alias);
72 if (!$this->ignore_access) {
73 if ($this->viewer_guid) {
79 $access_list =
_elgg_services()->accessCollections->getAccessArray($this->viewer_guid);
83 if ($this->use_enabled_clause) {
88 'table_alias' => $table_alias,
96 'query_builder' =>
$qb,
99 $clauses =
_elgg_services()->hooks->trigger(
'get_sql',
'access', $hook_params, [
104 $ors = array_filter($clauses[
'ors']);
105 $ands = array_filter($clauses[
'ands']);
108 $ands[] = $qb->
merge($ors,
'OR');
111 return $qb->
merge($ands);
const ELGG_VALUE_INTEGER
Value types.
Database abstraction query builder.
prepare(QueryBuilder $qb, $table_alias=null)
{}
compare($x, $comparison, $y=null, $type=null, $case_sensitive=null)
Build value comparison clause.
Builds a clause from closure or composite expression.
merge($parts=null, $boolean= 'AND')
Merges multiple composite expressions with a boolean.
_elgg_services()
Get the global service provider.
Builds queries to restrict access.