Ticket #624 (closed defect: fixed)
DC_AUTH_CLASS : Vérifier tous les parents
Reported by: | olab | Owned by: | olivier |
---|---|---|---|
Priority: | high | Milestone: | 2.2 |
Component: | module:core | Version: | 2.1 |
Severity: | normal | Keywords: | auth |
Cc: |
Description
Dans la fonction authInstance est utilisée la classe ReflectionClass?, en faisant appel à getParentClass pour vérifier si la classe d'authentification est bien une sous-classe de dcAuth. Il est alors impossible de sous-classer une sous-classe de dcAuth puisqu'on regarde seulement le parent immédiat.
L'utilisation de isSubclassOf permet d'observer toute la hiérarchie d'héritage, autorisant ainsi toute une palette de systèmes d'authentification.
if ($c != 'dcAuth') { $r = new ReflectionClass($c); if (!$r->isSubclassOf(new ReflectionClass('dcAuth'))) { throw new Exception('Authentication class '.$c.' does not inherit dcAuth.'); } }
Change History
comment:2 follow-up: ↓ 3 Changed 17 years ago by olivier
- Status changed from new to closed
- Resolution set to fixed
comment:3 in reply to: ↑ 2 Changed 17 years ago by olab
Hello,
Ligne 94
if ($c != 'dcAuth' && !is_subclass_of($c,'dcAut')) {
devrait plutôt être
if ($c != 'dcAuth' && !is_subclass_of($c,'dcAuth')) {
Une petite coquille due au champagne sans doute ;-) Et bonne année !
Note: See
TracTickets for help on using
tickets.
(In [2666]) sandbox: Verifies that dcAuth is an ancestor (and not a parent) of DC_AUTH_CLASS. See #624 (solved)