Ceci est une ancienne révision du document !
TD n°3 - Contrôleurs, ACL
Institut Universitaire de Technologie
Département Informatique - Campus III Ifs
Janvier-Février 2017
-- Pré-requis
-- Cours/lecture
- Lire la section relative aux contrôleurs
- Lire la section relative aux vues
- Lire l'aide Phalcon relative au Dispatcher
-- Fonctionnalités
Retour à l'application permettant de gérer les utilisateurs :
Implémentez les éléments ci-dessous, en créant dans un premier temps les contrôleurs, les actions, et les vues (sans implémenter leur contenu).
Connexion à l'application
Contrôleur/actions | LoginController |
---|---|
asAdminAction() Établit une connexion d'utilisateur (instance de User mise en session) à partir du premier utilisateur de type admin trouvé dans la base de données |
|
asUserAction() Établit une connexion d'utilisateur (instance de User mise en session) à partir du premier utilisateur de type user trouvé dans la base de données |
|
indexAction() Appelle le formulaire de connexion(GET) |
|
authAction() Reçoit le résultat de la connexion et affiche son résultat (réussite ou non) |
Ajouter sur la page d'accueil (/Index/index) des boutons permettant d'accéder à ces trois fonctionnalités.
Librairie | Auth (app/library/Auth.php) |
---|---|
isAuth($session) Retourne vrai si un utilisateur est connecté |
|
hasRole($session,string $role) Retourne vrai si l'utilisateur connecté possède le rôle passé en paramètre |
|
infoUser($session) Retourne la présentation de l'utilisateur connecté (login & email) ou l'info “non connecté” si aucun utilisateur n'est connecté |
Gestion des URLs
Le model Url permet le contrôle d'accès aux pages (controller/action).
Un utilisateur connecté dispose d'un rôle (user, admin ou superadmin) et pourra accéder à une page à condition que la page soit accessible pour son rôle.
Mettre en place le contrôle d'accès en utilisant le dispatch Phalcon
Contrôleur/actions | ErrorController |
---|---|
show404Action() Affiche une erreur 404 (page non trouvée) |
|
show401Action() Affiche une erreur 401 (non autorisé), et propose la connexion |
|
show403Action() Affiche une erreur 403 (Accès interdit), le rôle actuel ne permet pas d'accéder à la ressource |
|
show500Action() Affiche une erreur 500 (Erreur interne du serveur) |
|
Vues | views/Error/message.voltVue unique affichant les messages d'erreur dans un Message Semantic |