$id d'autoriser() trop strict : accepter string | int
C'est en parti un questionnement (car je ne sais pas forcément tout l'historique) et une requête d'assouplissement qui me semble impératif et logique.
TLDR : l'identifiant le plus précis est désormais trop strict en forçant un cast en int, alors qu'une autorisation n'est pas du tout que pour un objet/idobjet : ça devrait donc accepter string | int.
- Dans un CMS/framework, on n'a pas plusieurs API d'autorisation, qu'une seule.
- Cette API doit donc valoir pour tester n'importe quelles autorisations.
- Il serait totalement faux de dire que l'API actuelle n'est prévue que pour des objet/id_objet puisqu'elle est déjà utilisée dans plein d'endroits pour totalement autre chose : autoriser('configurer', 'truc'), etc. (Et elle n'a surtout pas à être que pour des objet/id_objet de toute façon.)
- Le paramètre $id qui permet de préciser encore plus que $type n'a donc strictement aucune obligation à être un identifiant entier mais doit pouvoir être un identifiant du genre slug.
Exemples
// Autoriser une action sur un plugin précis
autoriser('configurer', 'plugin', 'patate')
// Autoriser l'accès un tunnel précis (concept non objet)
autoriser('voir', 'tunnel', 'commande')`
// Autoriser l'accès à telle étape d'un tunnel
autoriser('voir_tunnel', 'commande', 'paiement')
// Etc