Raccourcis : Contenu - rubriques - sous rubriques
EN FR

La commande app:init-admin

La commande app:init-admin permet d'ajouter facilement une interface d'administration à votre application. Elle active le module master_admin, et peut configurer automatiquement l'authentification (jAuth) et/ou le système de droit (jAcl2).

  • *Important** : pour des raisons de sécurité, de facilité d'utilisation du framework etc, il est fortement recommandé de créer une application spécifique pour une interface d'administration.

Pour créer une interface d'administration, vous devez d'abord configurer jDb. Exécutez ensuite dans votre application :


   php dev.php app:init-admin index

index est le nom du point d'entrée (sans l'extension .php), dédiée à l'interface d'administration.

Si vous tenez absolument à créer cette interface dans une application existante utilisant déjà index.php, indiquez un autre point d'entrée, "admin" par exemple, ou un autre nom.

La commande crée le point d'entrée s'il n'existe pas déjà. La configuration du point d'entrée sera modifiée afin d'avoir une interface totalement fonctionnelle. Par exemple, deux nouvelles réponses sont ajoutées dans le répertoire app/responses/. Vous pouvez ainsi personnaliser l'interface générale.

Notez qu'avant d'exécuter cette commande, vous devez avoir configuré correctement l'accès à la base de donnée dans le fichier profiles.ini.php, car les tables pour jAuth et jAcl2 seront créés. Si vous préférez configurer jAuth et/ou jAcl2 par vous même (ou utiliser d'autres modules implémentant l'authentification ou la gestion de droits), indiquez les options --no-jauth, --no-jauthdb, --no-jauthdb-admin et/ou --no-acl2db à la commande.

Après avoir créé l'interface (et configuré jAuth et jAcl2 si vous avez choisi de le faire vous-même), vous pouvez démarrer l'application en appelant le point d'entrée créé (http://example.com/admin.php par exemple).

Vous verrez alors un écran demandant votre login et mot de passe (affiché par le module jauth). Par défaut, un utilisateur "admin" avec le mot de passe "admin" est créé. Tapez ces informations, et vous pourrez alors entrer dans l'interface. Voir plus de détails sur la page du module master_admin.

  • *Rappelez-vous : vous ne pouvez pas utiliser les contrôleurs d'un module sur deux points d'entrée en même temps**. Aussi, si vous utilisez déjà le contrôleur et les zones de jAuth dans votre application, pour autre chose que l'interface d'admin, vous allez avoir des problèmes d'Url, et donc des comportements bizarres, comme par exemple le formulaire de login de l'admin qui est soumis sur le point d'entrée du site web au lieu de l'admin. Si vous voulez utiliser les contrôleurs et formulaires de jauth sur deux points d'entrées, il vous faut séparer l'application en deux.

Interface d'administration et les urls

Les modules d'administration ne devraient être accessible que par le point d'entrée dédié à l'administration. Il faut donc déclarer ces modules dans le fichier app/system/urls.xml, au niveau du point d'entrée correspondant.

Par exemple :


 <entrypoint name="admin">
     <url pathinfo="/" module="master_admin" action="default:index" />
     <url module="jauth"/>
     <url module="jauthdb_admin"/>
     <url module="jacl2db_admin"/>
     <!-- etc... -->
 </entrypoint>

Sans cela, votre interface d'administration sera inaccessible puisque les urls ne seront pas connues, ou alors ne seront accessibles que depuis un autre point d'entrée ce qui peut poser des soucis.

L'exemple ci-dessus permet de configurer rapidement les urls, mais peut-être voudriez vous avoir des urls plus sympas : chacun des modules d'administration propose un fichier d'urls préconfiguré.

L'administration utilise le système d'authentification de jelix jAuth. On peut donc inclure le fichier urls.xml fourni avec le module jauth.


 <entrypoint name="admin">
     <url pathinfo="/" module="master_admin" action="default:index" />

     <url pathinfo="/login/" module="jauth" include="urls.xml" />

 </entrypoint>

Si vous n'avez pas désactivé l'authentification via jAuthDb et la gestion des droits via jAcl2Db, lors de l'appel à la commande init-admin, il faut aussi définir les urls pour les modules respectifs, jauthdb_admin et jacl2db_admin. Il faut alors inclure leurs fichiers urls.xml.


 <entrypoint name="admin">
     <url pathinfo="" module="master_admin" action="default:index" />

     <url pathinfo="/login/" module="jauth" include="urls.xml" />
     <url pathinfo="/acl/" module="jacl2db_admin"  include="urls.xml"/>
     <url pathinfo="/auth/" module="jauthdb_admin"  include="urls.xml"/>

 </entrypoint>

Votre interface d'administration est alors opérationnelle.