feat: Liaison parents-enfants avec gestion des tuteurs
Les parents doivent pouvoir suivre la scolarité de leurs enfants (notes, emploi du temps, devoirs). Cela nécessite un lien formalisé entre le compte parent et le compte élève, géré par les administrateurs. Le lien est établi soit manuellement via l'interface d'administration, soit automatiquement lors de l'activation du compte parent lorsque l'invitation inclut un élève cible. Ce lien conditionne l'accès aux données scolaires de l'enfant (autorisations vérifiées par un voter dédié).
This commit is contained in:
@@ -29,6 +29,11 @@ framework:
|
||||
adapter: cache.adapter.filesystem
|
||||
default_lifetime: 900 # 15 minutes
|
||||
|
||||
# Pool dédié aux liaisons parents-enfants (pas de TTL - données persistantes)
|
||||
student_guardians.cache:
|
||||
adapter: cache.adapter.filesystem
|
||||
default_lifetime: 0 # Pas d'expiration
|
||||
|
||||
# Pool dédié aux sessions (7 jours TTL max)
|
||||
sessions.cache:
|
||||
adapter: cache.adapter.filesystem
|
||||
@@ -60,6 +65,10 @@ when@test:
|
||||
adapter: cache.adapter.redis
|
||||
provider: '%env(REDIS_URL)%'
|
||||
default_lifetime: 900
|
||||
student_guardians.cache:
|
||||
adapter: cache.adapter.redis
|
||||
provider: '%env(REDIS_URL)%'
|
||||
default_lifetime: 0
|
||||
sessions.cache:
|
||||
adapter: cache.adapter.redis
|
||||
provider: '%env(REDIS_URL)%'
|
||||
@@ -93,6 +102,10 @@ when@prod:
|
||||
adapter: cache.adapter.redis
|
||||
provider: '%env(REDIS_URL)%'
|
||||
default_lifetime: 900 # 15 minutes
|
||||
student_guardians.cache:
|
||||
adapter: cache.adapter.redis
|
||||
provider: '%env(REDIS_URL)%'
|
||||
default_lifetime: 0 # Pas d'expiration
|
||||
sessions.cache:
|
||||
adapter: cache.adapter.redis
|
||||
provider: '%env(REDIS_URL)%'
|
||||
|
||||
@@ -23,6 +23,8 @@ services:
|
||||
Psr\Cache\CacheItemPoolInterface $passwordResetTokensCache: '@password_reset_tokens.cache'
|
||||
# Bind sessions cache pool (7-day TTL)
|
||||
Psr\Cache\CacheItemPoolInterface $sessionsCache: '@sessions.cache'
|
||||
# Bind student guardians cache pool (no TTL - persistent data)
|
||||
Psr\Cache\CacheItemPoolInterface $studentGuardiansCache: '@student_guardians.cache'
|
||||
# Bind named message buses
|
||||
Symfony\Component\Messenger\MessageBusInterface $eventBus: '@event.bus'
|
||||
Symfony\Component\Messenger\MessageBusInterface $commandBus: '@command.bus'
|
||||
@@ -147,6 +149,14 @@ services:
|
||||
App\Administration\Domain\Repository\GradingConfigurationRepository:
|
||||
alias: App\Administration\Infrastructure\Persistence\Doctrine\DoctrineGradingConfigurationRepository
|
||||
|
||||
# Student Guardian Repository (Story 2.7 - Liaison parents-enfants)
|
||||
App\Administration\Infrastructure\Persistence\Cache\CacheStudentGuardianRepository:
|
||||
arguments:
|
||||
$inner: '@App\Administration\Infrastructure\Persistence\Doctrine\DoctrineStudentGuardianRepository'
|
||||
|
||||
App\Administration\Domain\Repository\StudentGuardianRepository:
|
||||
alias: App\Administration\Infrastructure\Persistence\Cache\CacheStudentGuardianRepository
|
||||
|
||||
# GradeExistenceChecker (stub until Notes module exists)
|
||||
App\Administration\Application\Port\GradeExistenceChecker:
|
||||
alias: App\Administration\Infrastructure\Service\NoOpGradeExistenceChecker
|
||||
|
||||
Reference in New Issue
Block a user