Files
Classeo/Makefile
Mathias STRASSER c5e6c1d810 feat: Activation de compte utilisateur avec validation token
L'inscription Classeo se fait via invitation : un admin crée un compte,
l'utilisateur reçoit un lien d'activation par email pour définir son
mot de passe. Ce flow sécurisé évite les inscriptions non autorisées
et garantit que seuls les utilisateurs légitimes accèdent au système.

Points clés de l'implémentation :
- Tokens d'activation à usage unique stockés en cache (Redis/filesystem)
- Validation du consentement parental pour les mineurs < 15 ans (RGPD)
- L'échec d'activation ne consume pas le token (retry possible)
- Users dans un cache séparé sans TTL (pas d'expiration)
- Hot reload en dev (FrankenPHP sans mode worker)

Story: 1.3 - Inscription et activation de compte
2026-01-31 19:34:03 +01:00

156 lines
4.2 KiB
Makefile

.PHONY: help up down restart rebuild logs ps test lint phpstan arch cs-fix warmup frontend-lint frontend-test e2e clean shell bash console
# Default target
help:
@echo "Classeo - Commandes disponibles"
@echo ""
@echo "Docker:"
@echo " make up - Lancer tous les services"
@echo " make down - Arreter tous les services"
@echo " make restart - Redemarrer tous les services"
@echo " make rebuild - Reconstruire et relancer les services"
@echo " make build - Reconstruire les images"
@echo " make logs - Voir les logs (Ctrl+C pour quitter)"
@echo " make ps - Statut des services"
@echo " make clean - Supprimer volumes et images"
@echo ""
@echo "Shell:"
@echo " make shell - Shell bash dans le container PHP"
@echo " make bash - Alias pour make shell"
@echo " make console - Console Symfony (ex: make console c='debug:router')"
@echo " make shell-frontend - Shell dans le container frontend"
@echo ""
@echo "Backend:"
@echo " make phpstan - Analyse statique PHPStan"
@echo " make arch - Tests d'architecture (PHPat)"
@echo " make cs-fix - Correction code style PHP"
@echo " make test-php - Tests PHPUnit"
@echo " make warmup - Warmup du cache Symfony"
@echo ""
@echo "Frontend:"
@echo " make lint - ESLint frontend"
@echo " make test-js - Tests Vitest"
@echo " make e2e - Tests Playwright"
@echo ""
@echo "All:"
@echo " make test - Tous les tests"
@echo " make check - Tous les linters"
# =============================================================================
# Docker
# =============================================================================
up:
docker compose up -d
down:
docker compose down
restart:
docker compose down
docker compose up -d
rebuild:
docker compose down
docker compose build --no-cache
docker compose up -d
build:
docker compose build --no-cache
logs:
docker compose logs -f
ps:
docker compose ps
clean:
docker compose down -v --rmi local
# =============================================================================
# Shell
# =============================================================================
shell:
docker compose exec php sh
bash: shell
console:
docker compose exec php php bin/console $(c)
shell-frontend:
docker compose exec frontend sh
# =============================================================================
# Backend
# =============================================================================
phpstan:
docker compose exec php composer phpstan
arch:
docker compose exec php composer arch
cs-fix:
docker compose exec php composer cs-fix
cs-check:
docker compose exec php composer cs-check
test-php:
docker compose exec php composer test
warmup:
docker compose exec php php bin/console cache:warmup
# =============================================================================
# Frontend
# =============================================================================
lint:
docker compose exec frontend pnpm run lint
check-types:
docker compose exec frontend pnpm run check
test-js:
docker compose exec frontend pnpm run test
e2e:
docker compose exec frontend pnpm run test:e2e
# =============================================================================
# All
# =============================================================================
test: test-php test-js
check: phpstan cs-check lint check-types
# =============================================================================
# Scripts
# =============================================================================
check-bc:
./scripts/check-bc-isolation.sh
check-naming:
./scripts/check-naming.sh
check-tenants:
./scripts/check-tenants.sh
# =============================================================================
# Dev helpers
# =============================================================================
# Creer un token d'activation de test
# Usage: make token [email=user@test.com] [role=PARENT] [minor=1]
token:
docker compose exec php php bin/console app:dev:create-test-activation-token \
$(if $(email),--email=$(email),) \
$(if $(role),--role=$(role),) \
$(if $(minor),--minor,) \
--base-url=http://localhost:5174