Framework de Programmation des Serveurs Web

Initiation à Ruby on Rails (RoR)

Olivier Dalle (@unice.fr)

Université de Nice Sophia Antipolis

Gestion des utilisateurs


Mise-à-jour


Par rapport à la création:

Mise-à-jour


Par rapport à la création:

Mise-à-jour


Par rapport à la création:

Mise-à-jour


Par rapport à la création:

Formulaire d’Edition

Tests

spec/requests/user_pages_spec.rb

Action d’edition


app/controllers/users_controller.rb

la Vue d’edition

app/views/users/edit.html.erb

LA page de mise a jour du profile

Ajout d’un lien apres authentification


On ajout un lien vers la page de modification du profile.

Ajout d’un lien apres authentification


On ajout un lien vers la page de modification du profile.

Ajout d’un lien apres authentification


On ajout un lien vers la page de modification du profile.

Ajout d’un lien apres authentification


On ajout un lien vers la page de modification du profile.

Ajout d’un lien apres authentification

Echec d’edition


L’action update est tres similaire a l’action create:

Echec d’edition

Edition réussie : les tests

spec/requests/user/pages_spec.rb

h1. L’action d’Edition


app/controllers/users_controller.rb:

Autorisations


Autorisations


Autorisations


Dans la version actuelle, les actions edit et update ne sont pas reglementées!

Autorisations


Dans la version actuelle, les actions edit et update ne sont pas reglementées!

Fonctionnement de l’autorisation


Un accès non autorisé doit aboutir a la page de connexion

Test que les pages edit et update sont protegees

mise en place de la protection


Dans le contrôleur, on utilise un filtre before:

mise en place de la protection


Dans le contrôleur, on utilise un filtre before:

la protection fait échouer des tests!


On doit corriger les tests:
spec/requests/user_pages_spec.rb

Autoriser le bon utilisateur

Ajouter un filtre

app/controllers/users_controller.rb

Redirection Amicale


Problème:

Redirection Amicale


Problème:

Redirection Amicale


Problème:

Redirection Amicale


Problème:

→ Redirection amicale: aller sur la page demander après authentification

Redirection amicale : les tests

spec/requests/authentication_pages_spec.rb

Redirection amicale : l’implémentation


app/helpers/sessions_helper.rb

Redirection amicale : l’implémentation


Modification du filtre before signed_in_user dans le modèle

Redirection amicale : l’implémentation


Modification de l’action create dans le contrôleur de session

Voir la liste de tous les utilisateurs


Voir la liste de tous les utilisateurs


C’est l’action index dans le contrôleur…

Voir la liste de tous les utilisateurs

Voir la liste de tous les utilisateurs


On suppose que l’action est protégée:

Voir la liste de tous les utilisateurs


On suppose que l’action est protégée:

Le test: intégration ou unitaire??

Voir la liste de tous les utilisateurs


On suppose que l’action est protégée:

Voir la liste de tous les utilisateurs


On suppose que l’action est protégée:

Voir la liste de tous les utilisateurs : test

spec/requests/authentication_pages_spec.rb

Voir la liste de tous les utilisateurs


Implémentation app/controllers/users_controller.rb

Voir la liste de tous les utilisateurs : test 2


Vérifier que la page existe

Voir la liste de tous les utilisateurs : test 2

Voir la liste de tous les utilisateurs


Implémentation: contrôleur

Voir la liste de tous les utilisateurs


Implémentation: contrôleur

app/controllers/users_controller.rb

Voir la liste de tous les utilisateurs


Implémentation: vue

Voir la liste de tous les utilisateurs


Implémentation: vue

app/views/users/index.html.erb

Voir la liste de tous les utilisateurs


Implémentation: style

Voir la liste de tous les utilisateurs


Implémentation: style

Voir la liste de tous les utilisateurs


Implémentation: navigation

Voir la liste de tous les utilisateurs


Implémentation: test de navigation

Voir la liste de tous les utilisateurs

spec/requests/authentication_pages_spec.rb

Voir la liste de tous les utilisateurs

app/views/layouts/_header.html.erb

Fabriquer des utilisateurs factices

Fabriquer des utilisateurs factices


Fabriquer des utilisateurs factices


Fabriquer des utilisateurs factices


lib/tasks/sample_data.rake

Fabriquer des utilisateurs factices


Fabriquer des utilisateurs factices


Pagination


Pagination


Pagination


Tests: Créer 30 utilisateurs avec FactoryGirls?

Pagination


Tests: Créer 30 utilisateurs avec FactoryGirls?

spec/factories.rb

Pagination


Tests: Créer 30 utilisateurs avec FactoryGirls?

spec/factories.rb

+

Pagination : tests

Pagination : tests

Pagination


Enfin, la page d’index:
app/views/users/index.html.erb

Pagination


Enfin, la page d’index, avec un peu d’aide du contrôleur: app/controllers/users_controller.rb

Pagination