function domain_taxonomy_query_term_access_alter in Domain Taxonomy 7
Same name and namespace in other branches
- 7.3 domain_taxonomy.module \domain_taxonomy_query_term_access_alter()
File
- ./
domain_taxonomy.module, line 561
Code
function domain_taxonomy_query_term_access_alter($query) {
if (path_is_admin(current_path()) && arg(0) != 'node') {
return;
}
$tables = $query
->getTables();
$query
->getMetaData('vid');
foreach ($tables as $alias => $tableinfo) {
$table = $tableinfo['table'];
if ($table == 'taxonomy_term_data') {
$query
->join('domain_taxonomy_access', 'dta', $alias . '.tid = dta.tid');
global $user, $_domain;
static $_modules;
$grants = array();
$grants_list = array();
$account = $user;
if ($_domain['site_grant']) {
$grants['domain_site'][] = 0;
}
$grants['domain_id'][] = $_domain['domain_id'];
$or = db_or();
foreach ($grants as $realm => $gids) {
foreach ($gids as $gkey => $gid) {
$or
->condition(db_and()
->condition('dta.gid', $gid)
->condition('dta.realm', $realm));
}
}
$condition = db_and()
->condition('dta.grant_view', 1)
->condition($or);
$disabled_vocs = _domain_taxonomy_get_disabled_vocabulares();
if (count($disabled_vocs)) {
$condition = db_or()
->condition($alias . '.vid', $disabled_vocs, 'IN')
->condition($condition);
}
$query
->condition($condition);
}
}
$query
->distinct();
}