redirection en fonction du login propre et affichage d'un dashboard en fonction du rôle de l'uitilisateur

This commit is contained in:
sermandm 2025-04-18 09:18:52 +02:00
commit dc0a7e915a
9 changed files with 70 additions and 24 deletions

View File

@ -3,6 +3,7 @@
<component name="NewModuleRootManager"> <component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$"> <content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" packagePrefix="App\" /> <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" packagePrefix="App\" />
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" packagePrefix="App\Tests\" /> <sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" packagePrefix="App\Tests\" />
<excludeFolder url="file://$MODULE_DIR$/vendor/composer" /> <excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/cache" /> <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/cache" />

4
.idea/dataSources.xml generated
View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true"> <component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="HegreEtConfort@localhost" uuid="21423ae4-3232-4641-affb-06399f70655a"> <data-source source="LOCAL" name="HegreEtConfort@172.20.96.1" uuid="21423ae4-3232-4641-affb-06399f70655a">
<driver-ref>postgresql</driver-ref> <driver-ref>postgresql</driver-ref>
<synchronize>true</synchronize> <synchronize>true</synchronize>
<jdbc-driver>org.postgresql.Driver</jdbc-driver> <jdbc-driver>org.postgresql.Driver</jdbc-driver>
<jdbc-url>jdbc:postgresql://localhost:5433/HegreEtConfort</jdbc-url> <jdbc-url>jdbc:postgresql://172.20.96.1:5432/HegreEtConfort</jdbc-url>
<working-dir>$ProjectFileDir$</working-dir> <working-dir>$ProjectFileDir$</working-dir>
</data-source> </data-source>
</component> </component>

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,9 @@
/** /**
<<<<<<< HEAD
* Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2. * Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
=======
* Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.39.0.
>>>>>>> b29391d6550c182d7b75efab8795a238c1936a27
* Original file: /npm/@hotwired/turbo@7.3.0/dist/turbo.es2017-esm.js * Original file: /npm/@hotwired/turbo@7.3.0/dist/turbo.es2017-esm.js
* *
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files

View File

@ -35,6 +35,7 @@
"symfony/property-info": "7.1.*", "symfony/property-info": "7.1.*",
"symfony/runtime": "7.1.*", "symfony/runtime": "7.1.*",
"symfony/security-bundle": "7.1.*", "symfony/security-bundle": "7.1.*",
"symfony/security-csrf": "7.1.*",
"symfony/serializer": "7.1.*", "symfony/serializer": "7.1.*",
"symfony/stimulus-bundle": "^2.20", "symfony/stimulus-bundle": "^2.20",
"symfony/string": "7.1.*", "symfony/string": "7.1.*",

38
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "e99a99b4ca2d6b58821cb711cb543c93", "content-hash": "69565ad2398a468ae94c92c449ee3c20",
"packages": [ "packages": [
{ {
"name": "composer/semver", "name": "composer/semver",
@ -3466,16 +3466,16 @@
}, },
{ {
"name": "symfony/form", "name": "symfony/form",
"version": "v7.1.5", "version": "v7.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/form.git", "url": "https://github.com/symfony/form.git",
"reference": "6b8b53ad6d42f14b158c896163b96ff260d78222" "reference": "7a48dda96fe16711fc042df38ca1a7dd4d9d6387"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/form/zipball/6b8b53ad6d42f14b158c896163b96ff260d78222", "url": "https://api.github.com/repos/symfony/form/zipball/7a48dda96fe16711fc042df38ca1a7dd4d9d6387",
"reference": "6b8b53ad6d42f14b158c896163b96ff260d78222", "reference": "7a48dda96fe16711fc042df38ca1a7dd4d9d6387",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3543,7 +3543,7 @@
"description": "Allows to easily create, process and reuse HTML forms", "description": "Allows to easily create, process and reuse HTML forms",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/form/tree/v7.1.5" "source": "https://github.com/symfony/form/tree/v7.1.6"
}, },
"funding": [ "funding": [
{ {
@ -3559,7 +3559,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-09-20T08:28:38+00:00" "time": "2024-10-09T08:46:59+00:00"
}, },
{ {
"name": "symfony/framework-bundle", "name": "symfony/framework-bundle",
@ -5648,16 +5648,16 @@
}, },
{ {
"name": "symfony/security-bundle", "name": "symfony/security-bundle",
"version": "v7.1.4", "version": "v7.1.11",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/security-bundle.git", "url": "https://github.com/symfony/security-bundle.git",
"reference": "5e10107856ff64d477c61fed7bcbb8a16125ea01" "reference": "4012dbc0884fc7cbf555615a5aaa16f7c0d3f222"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/security-bundle/zipball/5e10107856ff64d477c61fed7bcbb8a16125ea01", "url": "https://api.github.com/repos/symfony/security-bundle/zipball/4012dbc0884fc7cbf555615a5aaa16f7c0d3f222",
"reference": "5e10107856ff64d477c61fed7bcbb8a16125ea01", "reference": "4012dbc0884fc7cbf555615a5aaa16f7c0d3f222",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5734,7 +5734,7 @@
"description": "Provides a tight integration of the Security component into the Symfony full-stack framework", "description": "Provides a tight integration of the Security component into the Symfony full-stack framework",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/security-bundle/tree/v7.1.4" "source": "https://github.com/symfony/security-bundle/tree/v7.1.11"
}, },
"funding": [ "funding": [
{ {
@ -5750,7 +5750,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-08-20T11:38:55+00:00" "time": "2024-12-31T17:57:35+00:00"
}, },
{ {
"name": "symfony/security-core", "name": "symfony/security-core",
@ -5840,16 +5840,16 @@
}, },
{ {
"name": "symfony/security-csrf", "name": "symfony/security-csrf",
"version": "v7.1.1", "version": "v7.1.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/security-csrf.git", "url": "https://github.com/symfony/security-csrf.git",
"reference": "27cd1bce9d7f3457a152a6ca9790712d6954dd21" "reference": "23b460d3447fd61970e0ed5ec7a0301296a17f06"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/security-csrf/zipball/27cd1bce9d7f3457a152a6ca9790712d6954dd21", "url": "https://api.github.com/repos/symfony/security-csrf/zipball/23b460d3447fd61970e0ed5ec7a0301296a17f06",
"reference": "27cd1bce9d7f3457a152a6ca9790712d6954dd21", "reference": "23b460d3447fd61970e0ed5ec7a0301296a17f06",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5888,7 +5888,7 @@
"description": "Symfony Security Component - CSRF Library", "description": "Symfony Security Component - CSRF Library",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/security-csrf/tree/v7.1.1" "source": "https://github.com/symfony/security-csrf/tree/v7.1.6"
}, },
"funding": [ "funding": [
{ {
@ -5904,7 +5904,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-05-31T14:57:53+00:00" "time": "2024-09-25T14:20:29+00:00"
}, },
{ {
"name": "symfony/security-http", "name": "symfony/security-http",

View File

@ -1,4 +1,5 @@
security: security:
<<<<<<< HEAD
# https://symfony.com/doc/current/security.html#registering-the-user-hashing-passwords # https://symfony.com/doc/current/security.html#registering-the-user-hashing-passwords
password_hashers: password_hashers:
Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto' Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto'
@ -25,6 +26,37 @@ security:
# activate different ways to authenticate # activate different ways to authenticate
# https://symfony.com/doc/current/security.html#the-firewall # https://symfony.com/doc/current/security.html#the-firewall
=======
# https://symfony.com/doc/current/security.html#registering-the-user-hashing-passwords
password_hashers:
Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto'
# https://symfony.com/doc/current/security.html#loading-the-user-the-user-provider
providers:
# used to reload user from session & other features (e.g. switch_user)
app_user_provider:
entity:
class: App\Entity\Utilisateur
property: email
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
lazy: true
provider: app_user_provider
form_login:
login_path: app_login
check_path: app_login
enable_csrf: true
csrf_token_id: authenticate
logout:
path: app_logout
target: app_login
>>>>>>> b29391d6550c182d7b75efab8795a238c1936a27
# https://symfony.com/doc/current/security/impersonating_user.html # https://symfony.com/doc/current/security/impersonating_user.html
# switch_user: true # switch_user: true

View File

@ -10,7 +10,7 @@ use Doctrine\Migrations\AbstractMigration;
/** /**
* Auto-generated Migration: Please modify to your needs! * Auto-generated Migration: Please modify to your needs!
*/ */
final class Version20250410124208 extends AbstractMigration final class Version20250410150126 extends AbstractMigration
{ {
public function getDescription(): string public function getDescription(): string
{ {

View File

@ -9,7 +9,7 @@ use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
class AuthenticationController extends AbstractController class AuthenticationController extends AbstractController
{ {
#[Route(path: '/', name: '_login')] #[Route(path: '/', name: 'app_login')]
public function login(AuthenticationUtils $authenticationUtils): Response public function login(AuthenticationUtils $authenticationUtils): Response
{ {
// get the login error if there is one // get the login error if there is one
@ -24,7 +24,7 @@ class AuthenticationController extends AbstractController
]); ]);
} }
#[Route(path: '/logout', name: '_logout')] #[Route(path: '/logout', name: 'app_logout')]
public function logout(): void public function logout(): void
{ {
throw new \LogicException('This method can be blank - it will be intercepted by the logout key on your firewall.'); throw new \LogicException('This method can be blank - it will be intercepted by the logout key on your firewall.');