Aller au contenu principal

API Acteurs

Objectif

Consulter et gérer les acteurs locaux, leurs tags, documents, XP et actions administratives.

Périmètre

Acteurs publics, gestion authentifiée, validation backoffice et droits liés aux acteurs.

Acteurs/applications consommatrices

  • DMV public.
  • Backoffice.
  • AssoSuite.
  • Mairie.
  • PlayLoop admin selon acteur propriétaire.

Authentification requise

  • Lecture publique avec X-App-Source.
  • Écriture avec auth:sanctum.
  • Admin avec ensure.admin.

Permissions/RBAC

  • Le socle d’autorité acteur est désormais :
    • acteur_collaborateurs
    • acteur_roles
    • acteur_permissions
    • acteur_role_permissions
    • acteur_modules
  • user_acteurs reste une projection technique de compatibilité workspace, mais n’est plus la source d’autorité RBAC.
  • Admin global : platform_admin via users_roles, avec bypass contrôlé côté Laravel.
  • Un accès acteur effectif exige :
    • un collaborateur active
    • un rôle valide
    • des permissions explicites
    • et, si la fonctionnalité est modulaire, le module actif correspondant.

Rôles système initiaux

  • owner
  • admin
  • editor
  • publisher
  • viewer

Permissions initiales

  • manage_actor
  • manage_collaborators
  • manage_publications
  • publish_publications
  • manage_documents
  • view_statistics
  • manage_infos
  • manage_services
  • manage_elus
  • manage_collectes
  • manage_alertes

Endpoints actuels visibles si confirmés

MéthodeRouteStatut
GET/api/v1/acteursConfirmé.
GET/api/v1/acteurs/{slug}Confirmé.
GET/api/v1/acteurs/{slug}/tagsConfirmé.
GET/api/v1/acteurs/{slug}/documentsConfirmé.
GET/api/v1/acteurs/{slug}/xpConfirmé, authentifié.
POST/api/v1/acteursConfirmé, authentifié.
PATCH/api/v1/acteurs/{id}Confirmé, authentifié.
DELETE/api/v1/acteurs/{id}Confirmé, authentifié.
POST/api/v1/acteurs/{id}/tagsConfirmé.
POST/api/v1/acteurs/{id}/documentsConfirmé.
DELETE/api/v1/acteurs/{id}/documents/{documentId}Confirmé.
PATCH/api/v1/acteurs/{id}/documents/{documentId}/pinConfirmé.
POST/api/v1/acteurs/{id}/xpConfirmé.
GET/api/v1/acteurs/{acteurId}/access-contextConfirmé, authentifié.
GET/api/v1/acteurs/{acteurId}/collaborateursConfirmé, authentifié.
GET/api/v1/acteurs/{acteurId}/collaborateurs/search-usersConfirmé, authentifié.
POST/api/v1/acteurs/{acteurId}/collaborateurs/inviteConfirmé, authentifié.
POST/api/v1/acteurs/{acteurId}/collaborateurs/attachConfirmé, authentifié.
PATCH/api/v1/acteurs/{acteurId}/collaborateurs/{collaborateurId}Confirmé, authentifié.
POST/api/v1/acteurs/{acteurId}/collaborateurs/{collaborateurId}/suspendConfirmé, authentifié.
POST/api/v1/acteurs/{acteurId}/collaborateurs/{collaborateurId}/reactivateConfirmé, authentifié.
DELETE/api/v1/acteurs/{acteurId}/collaborateurs/{collaborateurId}Confirmé, authentifié.
GET/api/v1/admin/acteursConfirmé admin.
PATCH/api/v1/admin/acteurs/{id}/validateConfirmé admin.
PATCH/api/v1/admin/acteurs/{id}/badgeConfirmé admin.
DELETE/api/v1/admin/acteurs/{id}/restoreConfirmé admin.
POST/api/v1/admin/acteurs/{id}/can-publishConfirmé admin.

Endpoints cibles proposés si utile

  • Endpoint d’acceptation d’invitation collaborateur à expliciter si l’invitation sort du simple rattachement interne.

Exemple de requête

GET /api/v1/acteurs?commune_id=commune-id&q=boulangerie
X-App-Source: dmv

Exemple de réponse succès

{
"data": [
{
"id": "acteur-id",
"nom": "Nom acteur",
"slug": "nom-acteur",
"kind": "pro",
"commune_id": "commune-id"
}
]
}

Exemple d’erreur

{
"error": "forbidden",
"message": "Vous ne pouvez pas modifier cet acteur."
}

Pagination si applicable

Applicable sur /acteurs et /admin/acteurs.

Rate limiting si applicable

Recommandé sur création, mise à jour, documents et XP.

Audit/logs si applicable

Obligatoire pour validation, badge, restauration, droits de publication et changements sensibles.

Sécurité

  • Séparer données publiques et données de gestion.
  • Les droits acteur doivent être contrôlés côté Laravel.
  • Les documents uploadés doivent suivre les règles média.

État actuel vs cible

SujetÉtat actuelCible
Lecture/écriture acteurRoutes visibles.Contrats payload stabilisés.
RBAC acteurEn place via collaborateurs + rôles + permissions + modules.Supprimer la dépendance workspace résiduelle à user_acteurs.

Points à confirmer

  • Payloads exacts.
  • Règles de documents.
  • Règle finale d’acceptation d’invitation collaborateur.
  • Cycle de suppression/restauration.