Files
AggloSign/backend/config/signature.php
T

64 lines
2.9 KiB
PHP

<?php
/*
|--------------------------------------------------------------------------
| Signatures CABM
|--------------------------------------------------------------------------
| Paramètres de l'application. Les valeurs sensibles viennent du .env.
| Voir docs/01-entra-app-registrations.md pour l'origine de chaque identifiant.
*/
return [
// Tenant d'origine (CABM). D'autres tenants (communes) pourront être ajoutés en base plus tard.
'default_tenant' => [
'name' => env('SIGNATURE_TENANT_NAME', 'CA Béziers Méditerranée'),
'entra_tenant_id' => env('ENTRA_TENANT_ID'),
],
// App Registration « back-office » (confidentielle) : connexion admin + synchro Graph.
'graph' => [
'client_id' => env('GRAPH_CLIENT_ID'),
'client_secret' => env('GRAPH_CLIENT_SECRET'),
'base_url' => 'https://graph.microsoft.com/v1.0',
// Seuls les groupes dont le nom commence par ce préfixe sont synchronisés
// (signature_mail_* pour les templates, signature_role_* pour les rôles).
'group_prefix' => env('SIGNATURE_GROUP_PREFIX', 'signature_'),
'timeout' => 30,
],
// App Registration « add-in » (SPA + NAA) : audience des jetons reçus par l'API.
'addin' => [
'client_id' => env('ADDIN_CLIENT_ID'),
// Audiences acceptées (client id et/ou Application ID URI).
'audiences' => array_filter(array_map('trim', explode(',', (string) env('ADDIN_API_AUDIENCES', env('ADDIN_CLIENT_ID', ''))))),
'required_scope' => env('ADDIN_API_SCOPE_NAME', 'access_as_user'),
'jwks_cache_seconds' => 86400,
'leeway_seconds' => 120,
],
// Rôles du back-office : nom exact du groupe AD synchronisé -> rôle.
// Un utilisateur membre de plusieurs groupes reçoit le rôle le plus élevé.
'roles' => [
'superadmin' => env('SIGNATURE_ROLE_SUPERADMIN_GROUP', 'signature_role_superadmin'),
'admin' => env('SIGNATURE_ROLE_ADMIN_GROUP', 'signature_role_admin'),
'editor' => env('SIGNATURE_ROLE_EDITOR_GROUP', 'signature_role_editeur'),
],
// Variante utilisée en réponse / transfert quand l'agent n'a rien choisi : short | full | none
'default_reply_variant' => env('SIGNATURE_DEFAULT_REPLY_VARIANT', 'short'),
// Dossier des images de signature (servi par Nginx sous /img). Surchargé dans les tests.
'image_path' => env('SIGNATURE_IMAGE_PATH', public_path('img')),
'image_max_kb' => 2048,
// Fuseau des dates saisies et affichées dans le back-office (périodes de campagne).
'timezone' => env('SIGNATURE_TIMEZONE', 'Europe/Paris'),
// URL publique (images, liens).
'public_url' => rtrim((string) env('APP_URL', 'https://signature.beziers-mediterranee.fr'), '/'),
// Réseaux autorisés pour /admin (vide = pas de filtrage). Ex. "10.0.0.0/8,192.168.0.0/16"
'admin_allowed_cidrs' => array_filter(array_map('trim', explode(',', (string) env('SIGNATURE_ADMIN_ALLOWED_CIDRS', '')))),
];