diff --git a/src/app/entity/controllers/ListTemplateController.php b/src/app/entity/controllers/ListTemplateController.php index d335c351b251bfb6ee0971c55ebd06a807803dc3..5cb9eeaec1bfd817aa9940200b76010606b821eb 100644 --- a/src/app/entity/controllers/ListTemplateController.php +++ b/src/app/entity/controllers/ListTemplateController.php @@ -49,6 +49,7 @@ class ListTemplateController if (empty($listTemplates)) { return $response->withStatus(400)->withJson(['errors' => 'List template not found']); } + foreach ($listTemplates as $key => $value) { if ($value['item_type'] == 'entity_id') { $listTemplates[$key]['idToDisplay'] = EntityModel::getById(['entityId' => $value['item_id'], 'select' => ['entity_label']])['entity_label']; @@ -58,12 +59,25 @@ class ListTemplateController $listTemplates[$key]['descriptionToDisplay'] = UserModel::getPrimaryEntityByUserId(['userId' => $value['item_id']])['entity_label']; } } + + $roles = EntityModel::getRoles(); + $listTemplateTypes = ListTemplateModel::getTypes(['select' => ['difflist_type_roles'], 'where' => ['difflist_type_id = ?'], 'data' => [$listTemplates[0]['object_type']]]); + $rolesForService = empty($listTemplateTypes[0]['difflist_type_roles']) ? [] : explode(' ', $listTemplateTypes[0]['difflist_type_roles']); + foreach ($roles as $key => $role) { + if (!in_array($role['id'], $rolesForService)) { + unset($roles[$key]); + } elseif ($role['id'] == 'copy') { + $entity['roles'][$key]['id'] = 'cc'; + } + } + $listTemplate = [ 'object_id' => $listTemplates[0]['object_id'], 'object_type' => $listTemplates[0]['object_type'], 'title' => $listTemplates[0]['title'], 'description' => $listTemplates[0]['description'], - 'diffusionList' => $listTemplates + 'diffusionList' => $listTemplates, + 'roles' => array_values($roles) ]; return $response->withJson(['listTemplate' => $listTemplate]);