Fixed track chairs filter condition on get presentations
Change-Id: I53537a4a3e42665e6592d97c3d5d28646e6810ac Signed-off-by: smarcet <smarcet@gmail.com>
This commit is contained in:
parent
263840990a
commit
51153b726f
|
@ -402,9 +402,10 @@ final class OAuth2SummitSelectionPlansApiController extends OAuth2ProtectedContr
|
|||
if(!is_null($current_member)) {
|
||||
$filter->addFilterCondition(FilterElement::makeEqual('current_member_id', $current_member->getId()));
|
||||
}
|
||||
// filter by tracks
|
||||
$track_id_filters = $filter->getFilter("track_id");
|
||||
if(!is_null($track_id_filters)){
|
||||
|
||||
if(!is_null($track_id_filters) && count($track_id_filters) > 0){
|
||||
// if exists , check if we have persmissions
|
||||
foreach ($track_id_filters as $filterElement){
|
||||
$value = $filterElement->getValue();
|
||||
if(!is_array($value)){
|
||||
|
@ -420,6 +421,13 @@ final class OAuth2SummitSelectionPlansApiController extends OAuth2ProtectedContr
|
|||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
// if not , only filter by track allowed
|
||||
$track_chair = $summit->getTrackChairByMember($current_member);
|
||||
if(!is_null($track_chair)){
|
||||
$filter->addFilterCondition(FilterElement::makeEqual("track_id", $track_chair->getCategoriesIds(), "AND"));
|
||||
}
|
||||
}
|
||||
}
|
||||
return $filter;
|
||||
},
|
||||
|
@ -548,9 +556,10 @@ final class OAuth2SummitSelectionPlansApiController extends OAuth2ProtectedContr
|
|||
$filter->addFilterCondition(FilterElement::makeEqual('current_member_id', $current_member->getId()));
|
||||
}
|
||||
|
||||
// filter by tracks
|
||||
$track_id_filters = $filter->getFilter("track_id");
|
||||
if(!is_null($track_id_filters)){
|
||||
|
||||
if(!is_null($track_id_filters) && count($track_id_filters) > 0){
|
||||
// if exists , check if we have persmissions
|
||||
foreach ($track_id_filters as $filterElement){
|
||||
$value = $filterElement->getValue();
|
||||
if(!is_array($value)){
|
||||
|
@ -566,6 +575,13 @@ final class OAuth2SummitSelectionPlansApiController extends OAuth2ProtectedContr
|
|||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
// if not , only filter by track allowed
|
||||
$track_chair = $summit->getTrackChairByMember($current_member);
|
||||
if(!is_null($track_chair)){
|
||||
$filter->addFilterCondition(FilterElement::makeEqual("track_id", $track_chair->getCategoriesIds(), "AND"));
|
||||
}
|
||||
}
|
||||
}
|
||||
return $filter;
|
||||
},
|
||||
|
|
|
@ -150,4 +150,12 @@ class SummitTrackChair extends SilverstripeBaseModel
|
|||
public function clearMember():void{
|
||||
$this->member = null;
|
||||
}
|
||||
|
||||
public function getCategoriesIds():array{
|
||||
$res = [];
|
||||
foreach ($this->categories as $c){
|
||||
$res[] = $c->getId();
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
}
|
|
@ -909,7 +909,7 @@ final class OAuth2SelectionPlansApiTest extends ProtectedApiTest
|
|||
'filter' => [
|
||||
'status==Received',
|
||||
'is_chair_visible==1',
|
||||
sprintf('track_id==%s', self::$defaultTrack->getId()),
|
||||
// sprintf('track_id==%s', self::$defaultTrack->getId()),
|
||||
],
|
||||
];
|
||||
|
||||
|
|
Loading…
Reference in New Issue