32 lines
2.0 KiB
PHP
32 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace App\Services;
|
|
|
|
/** Task descriptions share the existing permission keys; they are not extra grants. */
|
|
class WorkflowTasks
|
|
{
|
|
/** @return array<string,list<array{key:string,label:string}>> */
|
|
public function catalogue(): array
|
|
{
|
|
$specific = [
|
|
'requester' => ['requisition.prepare' => 'Preparar e submeter requisições próprias; acompanhar decisões'],
|
|
'department_head' => ['requisition.approve.department_head' => 'Decidir a etapa de aprovação do próprio departamento'],
|
|
'procurement' => ['requisition.approve.procurement' => 'Decidir a etapa de Compras quando exigida pelo percurso', 'procurement.prepare' => 'Preparar e acompanhar consulta ao mercado e aquisição'],
|
|
'finance' => ['requisition.approve.finance' => 'Decidir a etapa de Finanças quando exigida pelo percurso', 'finance.operations' => 'Exercer as conferências e operações financeiras permitidas pelo perfil'],
|
|
'people_service_prepare' => ['people.service.prepare' => 'Preparar processo, candidaturas, proposta de selecção e minuta de prestador individual'],
|
|
'people_staff_prepare' => ['people.staff.prepare' => 'Preparar processo, candidaturas, proposta de selecção e minuta de recrutamento'],
|
|
'people_service_review' => ['people.service.review' => 'Conferir abertura, avaliar e decidir selecção de prestador individual conforme a equipa atribuída'],
|
|
'people_staff_review' => ['people.staff.review' => 'Conferir abertura, avaliar e decidir selecção de recrutamento conforme a equipa atribuída'],
|
|
];
|
|
$catalogue = [];
|
|
foreach (OrganizationAccess::PERMISSIONS as $permission => $label) {
|
|
$catalogue[$permission] = [];
|
|
foreach ($specific[$permission] ?? ['function.'.$permission => $label] as $key => $task) {
|
|
$catalogue[$permission][] = ['key' => $key, 'label' => $task];
|
|
}
|
|
}
|
|
|
|
return $catalogue;
|
|
}
|
|
}
|