Table des matières

TD n°3 - Contrôleurs, ACL

Institut Universitaire de Technologie
Département Informatique - Campus III Ifs
Janvier-Février 2017

-- Pré-requis



-- Cours/lecture

  1. Lire la section relative aux contrôleurs
  2. Lire la section relative aux vues
  3. 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), soumission par POST vers login/auth
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