Fix on track chairs serializer
Updated member serializer rights Change-Id: I5255a7baf9e115652d026249be7c893d34aca312 Signed-off-by: smarcet <smarcet@gmail.com>
This commit is contained in:
parent
08d4973336
commit
08cb3cbe52
@ -14,6 +14,7 @@
|
||||
|
||||
use App\Http\Exceptions\HTTP403ForbiddenException;
|
||||
use App\Http\Utils\EpochCellFormatter;
|
||||
use App\Models\Foundation\Main\IGroup;
|
||||
use App\Models\Foundation\Summit\Repositories\ISummitTrackChairRepository;
|
||||
use App\Services\Model\ITrackChairService;
|
||||
use Illuminate\Support\Facades\Input;
|
||||
@ -41,7 +42,6 @@ final class OAuth2SummitTrackChairsApiController
|
||||
*/
|
||||
private $summit_repository;
|
||||
|
||||
|
||||
/**
|
||||
* @var ITrackChairService
|
||||
*/
|
||||
@ -118,6 +118,16 @@ final class OAuth2SummitTrackChairsApiController
|
||||
return $filter;
|
||||
},
|
||||
function () {
|
||||
$current_user = $this->resource_server_context->getCurrentUser();
|
||||
if(!is_null($current_user)){
|
||||
if(
|
||||
$current_user->isOnGroup(IGroup::Administrators) ||
|
||||
$current_user->isOnGroup(IGroup::SuperAdmins) ||
|
||||
$current_user->isOnGroup(IGroup::TrackChairsAdmins) ||
|
||||
$current_user->isOnGroup(IGroup::SummitAdministrators)
|
||||
)
|
||||
return SerializerRegistry::SerializerType_Private;
|
||||
}
|
||||
return SerializerRegistry::SerializerType_Public;
|
||||
}
|
||||
);
|
||||
|
@ -219,6 +219,7 @@ final class SerializerRegistry
|
||||
|
||||
$this->registry['SummitTrackChair'] = [
|
||||
self::SerializerType_Public => SummitTrackChairSerializer::class,
|
||||
self::SerializerType_Private => AdminSummitTrackChairSerializer::class,
|
||||
self::SerializerType_CSV => SummitTrackChairCSVSerializer::class
|
||||
];
|
||||
|
||||
|
@ -0,0 +1,24 @@
|
||||
<?php namespace ModelSerializers;
|
||||
/**
|
||||
* Copyright 2021 OpenStack Foundation
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
**/
|
||||
|
||||
/**
|
||||
* Class AdminSummitTrackChairSerializer
|
||||
* @package ModelSerializers
|
||||
*/
|
||||
class AdminSummitTrackChairSerializer extends SummitTrackChairSerializer
|
||||
{
|
||||
protected function getMemberSerializerType():string{
|
||||
return SerializerRegistry::SerializerType_Private;
|
||||
}
|
||||
}
|
@ -19,7 +19,7 @@ use ModelSerializers\SilverStripeSerializer;
|
||||
* Class SummitTrackChairSerializer
|
||||
* @package ModelSerializers
|
||||
*/
|
||||
final class SummitTrackChairSerializer extends SilverStripeSerializer
|
||||
class SummitTrackChairSerializer extends SilverStripeSerializer
|
||||
{
|
||||
protected static $array_mappings = [
|
||||
'SummitId' => 'summit_id:json_int',
|
||||
@ -30,6 +30,10 @@ final class SummitTrackChairSerializer extends SilverStripeSerializer
|
||||
'categories',
|
||||
];
|
||||
|
||||
protected function getMemberSerializerType():string{
|
||||
return SerializerRegistry::SerializerType_Public;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param null $expand
|
||||
* @param array $fields
|
||||
@ -73,7 +77,11 @@ final class SummitTrackChairSerializer extends SilverStripeSerializer
|
||||
|
||||
if ($track_chair->getMemberId() > 0) {
|
||||
unset($values['member_id']);
|
||||
$values['member'] = SerializerRegistry::getInstance()->getSerializer($track_chair->getMember())->serialize(AbstractSerializer::filterExpandByPrefix($expand, $relation));
|
||||
$values['member'] = SerializerRegistry::getInstance()->getSerializer
|
||||
(
|
||||
$track_chair->getMember(),
|
||||
$this->getMemberSerializerType()
|
||||
)->serialize(AbstractSerializer::filterExpandByPrefix($expand, $relation));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user