From: Raphaël Barrois Date: Wed, 1 Sep 2010 09:15:23 +0000 (+0200) Subject: Fix return value of UFCs when VIS_PUBLIC and filtering on private data. X-Git-Tag: xorg/1.0.1~236 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=9f169a65993780eaee226924e6dfd148b398bdb9;p=platal.git Fix return value of UFCs when VIS_PUBLIC and filtering on private data. Signed-off-by: Raphaël Barrois --- diff --git a/classes/userfilter.php b/classes/userfilter.php index 8259517..1c757b7 100644 --- a/classes/userfilter.php +++ b/classes/userfilter.php @@ -559,7 +559,7 @@ class UFC_Group implements UserFilterCondition { // Groups have AX visibility. if ($uf->getVisibilityLevel() == ProfileVisibility::VIS_PUBLIC) { - return ''; + return PlFilter::COND_TRUE; } $sub = $uf->addGroupFilter($this->group); $where = 'gpm' . $sub . '.perms IS NOT NULL'; @@ -588,7 +588,7 @@ class UFC_Binet implements UserFilterCondition { // Binets are private. if ($uf->getVisibilityLevel() != ProfileVisibility::VIS_PRIVATE) { - return ''; + return PlFilter::COND_TRUE; } $sub = $uf->addBinetsFilter(); return XDB::format($sub . '.binet_id IN {?}', $this->val); @@ -613,7 +613,7 @@ class UFC_Section implements UserFilterCondition { // Sections are private. if ($uf->getVisibilityLevel() != ProfileVisibility::VIS_PRIVATE) { - return ''; + return PlFilter::COND_TRUE; } $uf->requireProfiles(); return XDB::format('p.section IN {?}', $this->section); @@ -1058,7 +1058,11 @@ class UFC_Job_Description implements UserFilterCondition $jsub = $uf->addJobFilter(); // CV is private => if only CV requested, and not private, // don't do anything. Otherwise restrict to standard job visibility. - if ($this->fields != UserFilter::JOB_CV || $uf->getVisibilityLevel() == ProfileVisibility::VIS_PRIVATE) { + if ($this->fields == UserFilter::JOB_CV) { + if ($uf->getVisibilityLevel() != ProfileVisibility::VIS_PRIVATE) { + return PlFilter::COND_TRUE; + } + } else { $conds[] = $uf->getVisibilityCondition($jsub . '.pub'); }