Table des matières

Analyse fonctionnelle

L’analyse fonctionnelle constitue une étape essentielle dans le processus de développement d’un système. Elle consiste à détailler les besoins métiers et à définir les fonctionnalités attendues du système. Ce processus rigoureux permet de :

En résumé, l’analyse fonctionnelle joue un rôle crucial dans la réussite d’un projet en garantissant que le système développé répond aux besoins métiers et aux attentes des utilisateurs.

Diagamme de cas d’utilisation : gestion d’autorisation

Diagamme de cas d'utilisation : gestion d'autorisation Diagamme de cas d’utilisation : gestion d’autorisation

Diagramme de séquence : Ajouter une autorisation

Conception - gestion d'autorisation Diagramme de séquence : Ajouter une autorisation

Conception

Conception - Gestion d’autorisation

Diagramme de séquence dynamique : Ajouter une autorisation

Conception - gestion d'autorisation Diagramme de séquence dynamique : Ajouter une autorisation

Diagramme de classes

Conception - gestion d'autorisation Diagramme de classes - gestion d’autorisation

Réalisation

command sync


php artisan sync:ControllersActions

Question v4 : Créer une interface utilisateur intuitive pour gérer les actions.

Question v4 : Intégrer un bouton à l’interface de gestion des actions pour l’ajout automatique de contrôleurs et d’actions Laravel dans la base de données.

Question v2 : Développer une interface gestion de controller avec insertion automatique des actions Laravel dans la base de données.

pkg_autorisations

Variant 1: class - Action

Variant 2: class - Controller

pkg_autorisations

Variant 1 : class - Autorisation

pkg_autorisations

Création de la base de données

php artisan make:migration create_posts_table
php artisan make:migration create_tags_table
php artisan make:migration create_post_tag_table

Création de la base de données


php artisan make:model Action -m
php artisan make:model Controller -m
php artisan make:model Autorisation -m

 php artisan make:migration add_nom_and_controller_id_to_actions_table --table=actions
 php artisan make:migration add_role_id_and_action_id_to_autorisations_table --table=autorisations
 php artisan migrate 

Question v1 : Installer et gérer les dépendances logicielles du projet à l’aide de Node Package Manager (npm).

Question v2 : Intégrer un système d’authentification et d’autorisation robuste dans l’application en utilisant le package Spatie Laravel-Permission.

Question v3 : Implémenter une fonction de recherche efficace en utilisant des requêtes Ajax et la pagination.

Réalisation - gestion d’autorisation

Liste des cas d’utilisation :

Question v5 : Développer une interface utilisateur pour gérer les contrôleurs de l’application.

Générer des données de test avec des seeders


php artisan make:seeder pkg_autorisations/AutorisationSeeder
php artisan db:seed 

Valider les actions CRUD à l’aide de tests unitaires


php artisan make:test  pkg_autorisations/ActionTest
php artisan test --filter=ActionTest

pkg_rh

Variant 3 : class - Autorisation

Requêtes SQL :

Réponse

SELECT a.nom AS ActionNonAutorisee
FROM actions a
LEFT JOIN autorisations au ON a.id = au.action_id
LEFT JOIN roles r ON au.role_id = r.id
LEFT JOIN model_has_roles mr ON r.id = mr.role_id
LEFT JOIN users u ON mr.model_id = u.id AND mr.model_type = 'App\\Models\\User'
WHERE a.id NOT IN (
    SELECT a2.id
    FROM actions a2
    JOIN autorisations au2 ON a2.id = au2.action_id
    JOIN model_has_roles mr2 ON au2.role_id = mr2.role_id
    JOIN users u2 ON mr2.model_id = u2.id AND mr2.model_type = 'App\\Models\\User'
    WHERE u2.name = 'Madani Ali'
);