Section: Créer une interface d'administration
« Configurer une application | ^ Créer une application |
− Table des matières
La commande initadmin ¶
La commande initadmin
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).
Pour créer une interface d'administration, exécutez:
php jelix.php --myapp initadmin admin
- "myapp" est le nom de votre application
- "admin" est le nom du point d'entrée (sans l'extension
.php
), dédiée à l'interface d'administration.
Bien sûr, vous pouvez choisir un autre nom pour le point d'entrée. 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 myapp/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 dbprofils.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, indiquez les options -noauthdb
et -noacl2db
à 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éé.
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.
Interface d'administration et moteur d'url significatives ¶
A cause de certaines contraintes (hébergement notamment) ou de certains besoins, vous voudriez peut-être utiliser la même configuration que le reste de l'application, et donc peut-être utiliser le moteur d'urls significatives si celui ci est activé dans votre application (ce qui n'est pas le cas par défaut).
Dans ce cas, il faudra effectuer quelques modifications dans votre fichier urls.xml
. En effet sans cela, votre interface d'administration sera inaccessible puisque les urls ne seront pas connues.
Tout d'abord il faut ajouter le nouveau point d'entrée pour l'admin :
<classicentrypoint name="admin">
<url pathinfo="" module="master_admin" action="default:index" />
</classicentrypoint>
L'administration utilise le système d'authentification de jelix jAuth. Il faut donc définir pour votre point d'entrée, les urls permettant l'affichage du formulaire de connexion, celle de la validation de ce formulaire et celle de déconnexion.
<classicentrypoint name="admin">
<url pathinfo="" module="master_admin" action="default:index" />
<url pathinfo="/login/form" module="jauth" action="login:form" />
<url pathinfo="/login/in" module="jauth" action="login:in" />
<url pathinfo="/login/out" module="jauth" action="login:out" />
</classicentrypoint>
Si vous n'avez pas désactivé l'authentification via jAuthDb et la gestion des droits via jAcl2Db, lors de l'appel à la commande initadmin, il faut aussi définir les urls pour les modules respectifs, jauthdb_admin et jacl2db_admin.
Pour vous y aider, dans les répertoires de ces 2 modules respectivement :
lib/jelix-admin-modules/jauthdb_admin/install/
lib/jelix-admin-modules/jacl2db_admin/install/
vous trouverez un fichier urls_example.xml
dont vous pourrez vous inspirez.
Dans notre cas pour jacl2db_admin :
<classicentrypoint name="admin">
<url pathinfo="" module="master_admin" action="default:index" />
<url pathinfo="/login/form" module="jauth" action="login:form" />
<url pathinfo="/login/in" module="jauth" action="login:in" />
<url pathinfo="/login/out" module="jauth" action="login:out" />
<url pathinfo="/acl/groups" module="jacl2db_admin" action="groups:index"/>
<url pathinfo="/acl/groups/rights" module="jacl2db_admin" action="groups:rights"/>
<url pathinfo="/acl/groups/saverights" module="jacl2db_admin" action="groups:saverights"/>
<url pathinfo="/acl/groups/new" module="jacl2db_admin" action="groups:newgroup"/>
<url pathinfo="/acl/groups/rename" module="jacl2db_admin" action="groups:changename"/>
<url pathinfo="/acl/groups/delete" module="jacl2db_admin" action="groups:delgroup"/>
<url pathinfo="/acl/users" module="jacl2db_admin" action="users:index"/>
<url pathinfo="/acl/users/:user" module="jacl2db_admin" action="users:rights" actionoverride="users:removegroup,users:addgroup,users:saverights"/>
</classicentrypoint>
Faites de même pour le module jauthdb_admin et votre interface d'administration sera maintenant opérationnelle.