diff --git a/RECIPES.md b/RECIPES.md
index e0835ff1..2105e8c8 100644
--- a/RECIPES.md
+++ b/RECIPES.md
@@ -213,6 +213,7 @@ Additional recipes can be found on the [Main Recipes Repository](https://github.
| [expertcoder/swiftmailer-send-grid-bundle](https://packagist.org/packages/expertcoder/swiftmailer-send-grid-bundle) | [2.0](expertcoder/swiftmailer-send-grid-bundle/2.0) |
| [explicatis/dynamics-api-bundle](https://packagist.org/packages/explicatis/dynamics-api-bundle) | [0.1](explicatis/dynamics-api-bundle/0.1) |
| [facile-it/mongodb-bundle](https://packagist.org/packages/facile-it/mongodb-bundle) | [0.6](facile-it/mongodb-bundle/0.6) |
+| [fastfony/identity-bundle](https://packagist.org/packages/fastfony/identity-bundle) | [1.0](fastfony/identity-bundle/1.0) |
| [fastfony/quality-pack](https://packagist.org/packages/fastfony/quality-pack) | [1.0](fastfony/quality-pack/1.0) |
| [fastfony/tailwind-webpack-encore-pack](https://packagist.org/packages/fastfony/tailwind-webpack-encore-pack) | [1.0](fastfony/tailwind-webpack-encore-pack/1.0) |
| [fd6130/exabytes-sms-bundle](https://packagist.org/packages/fd6130/exabytes-sms-bundle) | [1.0](fd6130/exabytes-sms-bundle/1.0) |
diff --git a/archived/fastfony.identity-bundle/d937719459748a8edfa84e36ab3957018bef7efb.json b/archived/fastfony.identity-bundle/d937719459748a8edfa84e36ab3957018bef7efb.json
new file mode 100644
index 00000000..66bd1d98
--- /dev/null
+++ b/archived/fastfony.identity-bundle/d937719459748a8edfa84e36ab3957018bef7efb.json
@@ -0,0 +1,123 @@
+{
+ "manifests": {
+ "fastfony/identity-bundle": {
+ "manifest": {
+ "bundles": {
+ "Fastfony\\IdentityBundle\\FastfonyIdentityBundle": [
+ "all"
+ ]
+ },
+ "copy-from-recipe": {
+ "config/": "%CONFIG_DIR%/"
+ },
+ "add-lines": [
+ {
+ "file": "config/packages/stof_doctrine_extensions.yaml",
+ "content": " orm:\n default:\n timestampable: true\n",
+ "position": "after_target",
+ "target": "stof_doctrine_extensions:",
+ "warn_if_missing": true
+ },
+ {
+ "file": "config/packages/security.yaml",
+ "content": " fastfony_identity_user_provider:\n entity:\n class: Fastfony\\IdentityBundle\\Entity\\Identity\\User # if you extend the User class, change this to your class\n property: email\n\n",
+ "position": "after_target",
+ "target": " providers:",
+ "warn_if_missing": true
+ },
+ {
+ "file": "config/packages/security.yaml",
+ "content": "\n fastfony_identity:\n lazy: true\n provider: fastfony_identity_user_provider\n user_checker: Fastfony\\IdentityBundle\\Security\\UserChecker\n form_login:\n login_path: form_login\n check_path: form_login\n enable_csrf: true\n csrf_token_id: login\n form_only: true\n login_link:\n check_route: login_check\n signature_properties: [ id, email ]\n max_uses: 3\n entry_point: Fastfony\\IdentityBundle\\Security\\CustomEntryPoint\n remember_me:\n always_remember_me: true\n signature_properties: [ 'id', 'email', 'password' ]\n switch_user: true\n login_throttling:\n max_attempts: 3\n logout:\n path: /logout\n clear_site_data:\n - cookies\n - storage\n\n",
+ "position": "after_target",
+ "target": " security: false",
+ "warn_if_missing": true
+ },
+ {
+ "file": "config/packages/security.yaml",
+ "content": " - { path: ^/secure-area/, roles: ROLE_USER } # Adjust as needed\n",
+ "position": "after_target",
+ "target": " access_control:",
+ "warn_if_missing": true
+ }
+ ],
+ "post-install-output": [
+ "Fastfony/IdentityBundle is almost ready:",
+ "",
+ "1. A config/packages/fastfony_identity.yaml> and a config/routes/fastfony_identity.yaml> file has been created for you.",
+ "",
+ "2. The config/packages/security.yaml> and config/packages/stof_doctrine_extensions.yaml> files have been updated where the expected configuration lines were found; please verify these changes.",
+ "",
+ "3. Merge the content of config/packages/mailer.yaml.dist> into your config/packages/mailer.yaml> file and set your MAILER_DSN> environment variable if it is not already done.",
+ "",
+ "4. Create the database schema:",
+ "",
+ " Option 1 - Generate and run migrations to create the database tables:",
+ "",
+ " php bin/console doctrine:migrations:diff",
+ " php bin/console doctrine:migrations:migrate>",
+ "",
+ " Option 2 - Or without migrations, you can create the schema directly:",
+ "",
+ " php bin/console doctrine:schema:update --force>",
+ "",
+ "Enjoy!"
+ ]
+ },
+ "files": {
+ "config/packages/fastfony_identity.yaml": {
+ "contents": [
+ "fastfony_identity:",
+ " user:",
+ " # Your custom User entity class extends Fastfony\\IdentityBundle\\Entity\\Identity\\User (optional)",
+ " #class: 'App\\Entity\\User'",
+ " #require_email_verification: true # Require email verification for new users (default: false)",
+ " role:",
+ " # Your custom Role entity class extends Fastfony\\IdentityBundle\\Entity\\Identity\\Role (optional)",
+ " #class: 'App\\Entity\\Role'",
+ " # Default role assigned to new users (if you want to assign one different from ROLE_USER)",
+ " #default_role: 'ROLE_ADMIN'",
+ " group:",
+ " # Your custom Group entity class extends Fastfony\\IdentityBundle\\Entity\\Identity\\Group (optional)",
+ " #class: 'App\\Entity\\Group'",
+ " login:",
+ " #default_method: 'login_link' # Default login method: 'form_login' or 'login_link' (default: 'form_login')",
+ " registration:",
+ " #enabled: true # Enable or disable user registration (default: false)",
+ " login_link:",
+ " #enabled: false # Enable or disable login via email link (default: true)",
+ " #email_subject: 'Your login link' # Subject of the email sent with the login link (text or translation key)",
+ " #limit_max_ask_by_minute: 3 # Maximum number of login link requests in one minute",
+ " request_password:",
+ " #email_subject: 'Reset your password' # Subject of the email sent with the password reset link (text or translation key)",
+ " #email_content: 'Click on the button below to reset your password.' # Content of the email sent with the password reset link (text or translation key)",
+ " #email_action_text: 'Reset my password' # Text of the action button in the email sent with the password reset link (text or translation key)",
+ " #lifetime: 900 # Lifetime of the password reset token in seconds (default: 900 seconds = 15 minutes)",
+ " #redirect_route: 'app_homepage' # Route to redirect to after a successful password reset",
+ "",
+ ""
+ ],
+ "executable": false
+ },
+ "config/packages/mailer.yaml.dist": {
+ "contents": [
+ "framework:",
+ " mailer:",
+ " envelope:",
+ " sender: 'noreply@your-website.com'",
+ ""
+ ],
+ "executable": false
+ },
+ "config/routes/fastfony_identity.yaml": {
+ "contents": [
+ "fastfony_identity:",
+ " resource: \"@FastfonyIdentityBundle/config/routes/all.yaml\"",
+ ""
+ ],
+ "executable": false
+ }
+ },
+ "ref": "d937719459748a8edfa84e36ab3957018bef7efb"
+ }
+ }
+}
diff --git a/fastfony.identity-bundle.1.0.json b/fastfony.identity-bundle.1.0.json
new file mode 100644
index 00000000..66bd1d98
--- /dev/null
+++ b/fastfony.identity-bundle.1.0.json
@@ -0,0 +1,123 @@
+{
+ "manifests": {
+ "fastfony/identity-bundle": {
+ "manifest": {
+ "bundles": {
+ "Fastfony\\IdentityBundle\\FastfonyIdentityBundle": [
+ "all"
+ ]
+ },
+ "copy-from-recipe": {
+ "config/": "%CONFIG_DIR%/"
+ },
+ "add-lines": [
+ {
+ "file": "config/packages/stof_doctrine_extensions.yaml",
+ "content": " orm:\n default:\n timestampable: true\n",
+ "position": "after_target",
+ "target": "stof_doctrine_extensions:",
+ "warn_if_missing": true
+ },
+ {
+ "file": "config/packages/security.yaml",
+ "content": " fastfony_identity_user_provider:\n entity:\n class: Fastfony\\IdentityBundle\\Entity\\Identity\\User # if you extend the User class, change this to your class\n property: email\n\n",
+ "position": "after_target",
+ "target": " providers:",
+ "warn_if_missing": true
+ },
+ {
+ "file": "config/packages/security.yaml",
+ "content": "\n fastfony_identity:\n lazy: true\n provider: fastfony_identity_user_provider\n user_checker: Fastfony\\IdentityBundle\\Security\\UserChecker\n form_login:\n login_path: form_login\n check_path: form_login\n enable_csrf: true\n csrf_token_id: login\n form_only: true\n login_link:\n check_route: login_check\n signature_properties: [ id, email ]\n max_uses: 3\n entry_point: Fastfony\\IdentityBundle\\Security\\CustomEntryPoint\n remember_me:\n always_remember_me: true\n signature_properties: [ 'id', 'email', 'password' ]\n switch_user: true\n login_throttling:\n max_attempts: 3\n logout:\n path: /logout\n clear_site_data:\n - cookies\n - storage\n\n",
+ "position": "after_target",
+ "target": " security: false",
+ "warn_if_missing": true
+ },
+ {
+ "file": "config/packages/security.yaml",
+ "content": " - { path: ^/secure-area/, roles: ROLE_USER } # Adjust as needed\n",
+ "position": "after_target",
+ "target": " access_control:",
+ "warn_if_missing": true
+ }
+ ],
+ "post-install-output": [
+ "Fastfony/IdentityBundle is almost ready:",
+ "",
+ "1. A config/packages/fastfony_identity.yaml> and a config/routes/fastfony_identity.yaml> file has been created for you.",
+ "",
+ "2. The config/packages/security.yaml> and config/packages/stof_doctrine_extensions.yaml> files have been updated where the expected configuration lines were found; please verify these changes.",
+ "",
+ "3. Merge the content of config/packages/mailer.yaml.dist> into your config/packages/mailer.yaml> file and set your MAILER_DSN> environment variable if it is not already done.",
+ "",
+ "4. Create the database schema:",
+ "",
+ " Option 1 - Generate and run migrations to create the database tables:",
+ "",
+ " php bin/console doctrine:migrations:diff",
+ " php bin/console doctrine:migrations:migrate>",
+ "",
+ " Option 2 - Or without migrations, you can create the schema directly:",
+ "",
+ " php bin/console doctrine:schema:update --force>",
+ "",
+ "Enjoy!"
+ ]
+ },
+ "files": {
+ "config/packages/fastfony_identity.yaml": {
+ "contents": [
+ "fastfony_identity:",
+ " user:",
+ " # Your custom User entity class extends Fastfony\\IdentityBundle\\Entity\\Identity\\User (optional)",
+ " #class: 'App\\Entity\\User'",
+ " #require_email_verification: true # Require email verification for new users (default: false)",
+ " role:",
+ " # Your custom Role entity class extends Fastfony\\IdentityBundle\\Entity\\Identity\\Role (optional)",
+ " #class: 'App\\Entity\\Role'",
+ " # Default role assigned to new users (if you want to assign one different from ROLE_USER)",
+ " #default_role: 'ROLE_ADMIN'",
+ " group:",
+ " # Your custom Group entity class extends Fastfony\\IdentityBundle\\Entity\\Identity\\Group (optional)",
+ " #class: 'App\\Entity\\Group'",
+ " login:",
+ " #default_method: 'login_link' # Default login method: 'form_login' or 'login_link' (default: 'form_login')",
+ " registration:",
+ " #enabled: true # Enable or disable user registration (default: false)",
+ " login_link:",
+ " #enabled: false # Enable or disable login via email link (default: true)",
+ " #email_subject: 'Your login link' # Subject of the email sent with the login link (text or translation key)",
+ " #limit_max_ask_by_minute: 3 # Maximum number of login link requests in one minute",
+ " request_password:",
+ " #email_subject: 'Reset your password' # Subject of the email sent with the password reset link (text or translation key)",
+ " #email_content: 'Click on the button below to reset your password.' # Content of the email sent with the password reset link (text or translation key)",
+ " #email_action_text: 'Reset my password' # Text of the action button in the email sent with the password reset link (text or translation key)",
+ " #lifetime: 900 # Lifetime of the password reset token in seconds (default: 900 seconds = 15 minutes)",
+ " #redirect_route: 'app_homepage' # Route to redirect to after a successful password reset",
+ "",
+ ""
+ ],
+ "executable": false
+ },
+ "config/packages/mailer.yaml.dist": {
+ "contents": [
+ "framework:",
+ " mailer:",
+ " envelope:",
+ " sender: 'noreply@your-website.com'",
+ ""
+ ],
+ "executable": false
+ },
+ "config/routes/fastfony_identity.yaml": {
+ "contents": [
+ "fastfony_identity:",
+ " resource: \"@FastfonyIdentityBundle/config/routes/all.yaml\"",
+ ""
+ ],
+ "executable": false
+ }
+ },
+ "ref": "d937719459748a8edfa84e36ab3957018bef7efb"
+ }
+ }
+}
diff --git a/index.json b/index.json
index f622eb0f..69169d12 100644
--- a/index.json
+++ b/index.json
@@ -671,6 +671,9 @@
"facile-it/mongodb-bundle": [
"0.6"
],
+ "fastfony/identity-bundle": [
+ "1.0"
+ ],
"fastfony/quality-pack": [
"1.0"
],